单片机软件编译问题汇总

这篇具有很好参考价值的文章主要介绍了单片机软件编译问题汇总。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

介绍一下单片机开发过程常见编译报错及解决方法,以及软件使用问题


一、keil相关

1.1 keil报错

1.1.1 错误现象:Error[Pe140]: too many arguments in function call

解决方法:取消括号里的声明,因为与之前定义的函数不一样

1.1.2 错误现象:程序设置波特率和串口调试助手波特率设置不同才能通信

解决方法:把stm32f4xx.h中的HSE_VALUE 设根据外部实际晶振的标称值进行更改。如:

#if !defined  (HSE_VALUE) 
          #define HSE_VALUE    ((uint32_t)8400000)
#endif

1.1.3 错误现象:Error[Li005]: no definition for….

解决方法:缺少XXX定义的头文件,除了自己定义的头文件还有库文件

1.1.4 错误现象:Error[Li006]: duplicate definitions for ……(重复定义)

解决方法:去掉重复定义的部分,去掉之前删除的对应c和h文件

1.1.5 错误现象:Error[Pe065]: expected a “;”

解决方法:符号错误,比如中英文混写

1.1.6 错误现象:Error[Pe165]: too few arguments in function call

解决方法:该错误是由于调用的参数少了导致的,即使某些参数在代码中情况下无效,但也要加上去

1.1.7 错误现象:error: #165: too few arguments in function call

解决方法:原因是调用时缺少输入参数,检查原函数后添加

1.1.8 错误现象:Error: L6218E: Undefined symbol …

解决方法:提示无定义,实际上是.c源文件没有添加进项目列表

1.1.9 错误现象:error: #147-D: declaration is incompatible

解决方法:原因是同一个变量被定义成不同的数据格式,检查删除

1.1.10 错误现象:error: #268: declaration may not appear after executable statement in block

解决方法:原因是变量声明不允许出现在语句之后,将局部变量放在函数开头声明

1.2 keil报警

1.2.1 错误现象:main.c(63): warning: #1-D: last line of file ends without a newline

解决方法:在最后加一行

1.2.2 错误现象:Warning[Pe161]: unrecognized #pragma

解决方法:注释掉

1.2.3 错误现象:Warning[Pe223]: function “XXX” declared implicitly

解决方法:添加头文件,原因缺少XXX定义的头文件

1.2.4 错误现象:warning #1295-D Deprecated declaration xxxxxxx - give arg types

解决方法:其实这个警告是因为函数没有参数的话,需要定义和声明的时候添加void

1.2.5 错误现象:*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS

解决方法:意思定义了一个函数,但是在main等函数中并没调用。不用管

1.2.6 错误现象:warning: #550-D: variable “temp” was set but never used

报错原因:变量’d’定义但从未使用
解决方法:删除或者加volatile关键字修饰变量

1.2.7 错误现象:warning: #177-D: variable “i” was declared but never referenced

原因:有个变量i声明了但没有使用
解决方法:删除或者加__attribute__((unused))来表示这个变量可能会没有使用到

1.2.8 错误现象:warning: #1295-D: Deprecated declaration SiicRbyte - give arg types

警告原因:函数声明没有参数
解决方法:需要定义和声明的时候添加void

1.2.9 错误现象:warning: #186-D: pointless comparison of unsigned integer with zero

原因:无符号整数与零的无意义比较
解决方法:去掉多余部分

1.3 keil使用问题

1.3.1 FCARM - Output Name not specified, please check 'Options for Target - Utilities

原因:添加文件时,C文件变成Image文件
单片机程序编译,嵌入式软件,单片机

解决方法:
方式一:在Options里改回去
方法二:在Manage里添加文件选择Add Files
单片机程序编译,嵌入式软件,单片机

1.3.2 keil中go to definition跳转browser窗口

原因:变量或函数被重复定义,导致隐式调用
单片机程序编译,嵌入式软件,单片机

解决方法:
方式一:将browser窗口上拉,一个个变量寻找
方式二:取消或者减少用volatile和typedef声明的变量,并将头文件直接添加进来

1.3.3 STLINK烧写提示:Not a genuine ST Device! Abort connection

解决办法:进入Target–Debug–Settings–Pack,取消Enable
单片机程序编译,嵌入式软件,单片机

单片机程序编译,嵌入式软件,单片机

二、IAR相关

2.2 IAR报警

2.2.1 错误现象:Warning[Pe550]: variable “mbox” was set but never used

解决方法:原因是定义了无效的变量,在变量前加上volatile或者__IO,或者右击Option——C/C++Compiler——Optimizations——Level选择Medium(中等优化)

2.3 IAR使用问题

2.3.1 无法go to definition

解决方法:
①首先取消中文路径
②重新编译,下面会出现一个绿色或者红色的进度条,编译完成会消失,消失之前无法使用
③在代码界面右击->Options->Project,取消勾选Generate browse informations确定后编译,然后再进来勾选Generate browse informations确定在编译
单片机程序编译,嵌入式软件,单片机

三、STVD使用问题

3.1 STVD无法go to

解决方法:去掉中文路径

3.2 编译时出现“Error creating process for executable cxstm8”

解决方法:
1)先安装软件: cxstm8_32k软件来安装。第一步:先点击截图里面的第一个文件cxstm8_32k.exe安装,安装过程中,会有很多的提示,直接NEXT。点击第二个文件CXSTM8_32k_patch.exe,找到刚才cxstm8_32k.exe的安装路径。点击启动应用按钮,即完成安装。
安装链接

2)再来启动STVD软件,点击project项目中的settings-General如下截图所示:
单片机程序编译,嵌入式软件,单片机

3.3 can’t openfile crtsi0.sm8

用STVD+COSMIC编译工程时出现以下错误(加载的别人的工程时):
#error clnk Debug\demo.lkf:60 can’t openfile libis0.sm8

解决方法:
打开STVD软件,选择Tools-> Options -> Directories -> Show Directories for选择:Libraryfiles 将D:\program files(x86)\COSMIC\CXSTM8_32K\Lib添加进去,如安装在其它目录,添加相应的目录即可。

单片机程序编译,嵌入式软件,单片机

3.4 STVD无法find in file

解决方法:
①在Option-Directories添加路径
单片机程序编译,嵌入式软件,单片机
②在Find in file里勾选Look inproject folders
单片机程序编译,嵌入式软件,单片机

3.5 STVD没有生成文件

解决方法:Settings–Post-Build里Commands里添加(上一行末尾回车可以进入下一行):
①生成.s19文件:

chex -o $(OutputPath)$(TargetSName).s19 $(OutputPath)$(TargetSName).sm8

②生成.hex文件:

chex -fi -o $(OutputPath)$(TargetSName).hex $(OutputPath)$(TargetSName).sm8

单片机程序编译,嵌入式软件,单片机文章来源地址https://www.toymoban.com/news/detail-755197.html

到了这里,关于单片机软件编译问题汇总的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【嵌入式开发-8051】详细:基于AT89C52单片机设计的温控风扇(Proteus仿真设计-含设计原理图、程序源码)

    1、本设计是基于AT89C51/52单片机为核心的温控风扇系统,使用Proteus进行仿真分析。 2、由于上传后图片压缩,可以私信联系获取清晰图片。 3、本次为本人结课设计,整体比较简单,如有疑问欢迎大家交流讨论!   目录 【嵌入式开发-8051】详细:基于AT89C52单片机设计的温控风

    2024年02月07日
    浏览(55)
  • 单片机/嵌入式小白教程—硬件(三)51单片机最小系统

    目录 简介 51单片机器件原理图 复位电路 供电电路 晶振电路 下载电路 最小系统原理图  更加方便的51单片机 传统51单片机最小系统包含:复位电路、供电电路、晶振电路、下载电路   其中, 第9脚(RST)为复位引脚, 第40脚(VCC)第20脚(GND)为供电引脚, 第19脚(XTAL1)第

    2024年02月08日
    浏览(71)
  • 单片机程序死机问题分析

    关于硬件: 经验一:重视墨菲定理,不要忽略细节,保持敏感性! 经验二:异常死机,先查硬件。 经验三:电源!时钟!复位! (1)重视墨菲定理,不要忽略细节,保持敏感性! 产品研发中如果出现异常,请不要忽略掉。要相信墨菲定理。疫情期间由于封控,设计的产品在

    2024年02月06日
    浏览(35)
  • 嵌入式(二)单片机基础 | 单片机特点 内部结构 最小系统 电源 晶振 复位

    上一篇文章我们介绍了嵌入式系统 嵌入式系统(Embedded System)是一种特定用途的计算机系统,它通常嵌入在更大的产品或系统中,用于控制、监测或执行特定的任务。这些系统通常由硬件和软件组成,旨在满足特定的需求,如嵌入在家电、汽车、医疗设备、工业自动化、消费

    2024年02月02日
    浏览(104)
  • 嵌入式和单片机

    凡是从事信息技术相关工作的,一定都听说过嵌入式和单片机。 大家都知道,这两个名词,和硬件系统有着非常密切的关系。 但是,如果要问具体什么是嵌入式,什么是单片机,它们之间究竟有什么区别,我相信大部分人并不能解释清楚。 今天,小编就给大家做一个入门科

    2024年02月07日
    浏览(55)
  • 【单片机毕设选题】stm32实现车牌识别系统 -物联网 嵌入式 单片机

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月20日
    浏览(55)
  • 单片机项目分享 stm32机器视觉的人脸识别系统 - 单片机 物联网 嵌入式

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年01月22日
    浏览(79)
  • 单片机项目分享 基于stm32的便携用电功率统计系统 -物联网 嵌入式 单片机

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月19日
    浏览(108)
  • 7. 嵌入式与单片机

    常见面试题 请说说你对嵌入式的理解。⭐⭐⭐⭐ 嵌入式系统是指以应用为中心,以计算机技术为基础,软件硬件可剪裁,适应应用系统对功能、成本、体积、功耗严格要求的专用计算机系统。 嵌入式系统 主要由 嵌入式微处理器 、 外围硬件设备 、 嵌入式操作系统以及用户

    2024年02月02日
    浏览(79)
  • 单片机项目分享 stm32机器视觉的口罩佩戴检测系统 - 单片机 物联网 嵌入式

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月22日
    浏览(77)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包