嵌入式开发过程中,常见报错以及解决方法

                                 编写不易,仅供学习,参考谢谢,还望理解。

#常见报错

                                                        文件最后一行没有新行

        翻译:文件的最后一行结束时没有新行 

        解决方法:定位到,提示报错的  .h 文件 报错行 ,加上一个新行

                                        函数定义时与官方提供源文件内命名冲突

         翻译:象征ADC_Init多定义(STM32F4xxx adc.c  和 adc.c)

        解决方法:这里是函数定义,命名重复跟官方定义的头文件里面,这里,只需要更改自定义函数ADC_Init的命名就可以了

            调用函数该函数没有定义(可能是函数名错了,或者是自己没有定义这个函数)

                        

        翻译:函数 Get_Adc_Value  没有声明(就是没有定义)

        解决方法:定位到报错行,检查调用函数,填写正确调用函数名,或者这个调用函数自己没有定义

             
                                     

                                        

                                                没有添加头文件目录,报错

原文:..\..\app\main.c(11): error:  #5: cannot open source input file "rtc.h": No such file or directory

翻译:不能打开资源输入文件 rtc.h 没有文件或者目录(这里指的是头文件目录)

解决方法:本人是因为没有添加头文件路径,添加头文件路径,就能解决了,如果不会添加头文件目录的同学,可以去找找教程。

                                     

                                  定义源文件没有引入,官方提供头文件,报错

                                              

原文:..\..\bsp\RTC\rtc.c(6): warning:  #223-D: function "RCC_APB1PeriphClockCmd" declared implicitly

翻译:函数"RCC_APB1PeriphClockCmd"未声明(这个是库函数,调用提示没有这个函数,就是没有引入对应的头文件啊

解决方法:定义源文件内,加入官方提供头文件,我使用的是嘉立创提供的开发功能模版,头文件不一样,不要差异

          

                                                        宏定义重复报错

原文:..\..\bsp\IIC\iic.h(12): warning:  #47-D: incompatible redefinition of macro "GPIO_SCL"  (declared at line 8)

翻译:..\. \bsp\IIC\ IIC .h(12):警告:#47-D:宏“GPIO_SCL”的不兼容重定义(在第8行声明)

解决方法:这个问题是宏定义出现重复定义,也就是这个宏名称重复了,换一个就好了。

              

                                                        欢迎指正,希望对你有所帮助!!!

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
作为嵌入式工程师,面对各种问题是家常便饭。以下是一些常见问题以及解决方法: 1. 系统崩溃或死机 可能原因: - 软件错误,例如指针越界、内存泄漏等 - 硬件故障,例如电源问题、信号问题等 - 软硬件不匹配,例如驱动程序与硬件不兼容等 解决方法: - 使用调试工具,例如GDB、JTAG等,定位问题所在,并进行修正 - 分析崩溃信息,例如打印日志、生成内存转储等,找出错误原因 - 如果是硬件问题,需要进行硬件排查和修复 2. 性能问题 可能原因: - 程序设计不合理,例如算法效率低下、数据结构不当等 - 系统配置不合理,例如占用资源过多、任务调度策略不当等 解决方法: - 重新设计程序,优化算法、数据结构等 - 调整系统配置,例如调整任务优先级、优化资源使用等 3. 编译问题 可能原因: - 编译器版本不兼容 - 编译选项设置错误 - 代码存在语法错误或语义错误 解决方法: - 更新编译器版本 - 检查编译选项是否正确 - 使用调试工具,查找代码的错误 4. 硬件调试问题 可能原因: - 电路设计问题,例如电源不稳定、信号干扰等 - PCB设计问题,例如走线不当、接口不匹配等 - 其他硬件故障,例如元器件损坏、焊接问题等 解决方法: - 检查电路设计是否合理,例如是否存在电源冲突、信号干扰等 - 检查PCB设计是否合理,例如是否存在走线不当、接口不匹配等 - 使用仪器进行硬件排查,例如万用表、示波器等 总之,嵌入式工程师需要具备良好的问题分析和解决能力,同时熟练掌握调试工具和技巧。在实践不断积累经验,才能更好地应对各种问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值