STM32F103C8T6 程序上电跑飞 前言 某客户反应说他们做回来的板子测试发现程序上电就跑飞了,下载都正常。检查了一个礼拜都不知道哪里出了问题,感觉无从下手。" v) u" Y0 y+ Y' [/ \ 3 Q( c) Y# k j/ f) o/ x* \ 一 问题排查9 u' }! P7 h9 z 1.1 检查电路板6 L: b; A0 e, b1 _% {9 \) K 排除虚焊漏焊现象,查看晶体起震波形正常,查看BOOT引脚配置正常。 1.2 检查软件代码 客户使用了老的标准库,反应说代码在别的板子上验证过,运行正常。 1.3 IDE检查 客户使用KEIL MDK V5.X版本,下载代码正常,连接ST-LINK/v2 仿真DEBUG, 程序跑飞。 停在了一段空白的地址空间中。$ B- {0 _5 i8 r' ^! U 二 测试流程 2.1 编写测试代码5 i) n$ t b6 {# R0 d7 O 在老版本的标准库的基础上,做了一个LED闪烁的DEMO程序,方便直观的观察现象。 测试后,问题同样,代码跑飞。 2.2 重新梳理工程 q3 H, W# l7 A+ u7 ?3 ? 在STM32Cube架构上重新新建工程,确认发现客户使用的晶体频率已经超过了16MHz的上限 马上更换一个合适的晶体后并修改时钟驱动代码后,程序运行正常。LED开始稳定闪烁。" c0 M- G) S" K; W4 A2 T' ] 7 j0 J, u8 j% V5 j 三 小结 虽然很多工程师已经很熟悉老的标准库的使用,但还是应该推荐客户选择使用STM32Cube来进行开发,这样这个问题在一开始就会避免。* c% ~+ J$ I# k" p & n, R; c) f( W) @3 [ 文档下载地址:+ i7 ~9 m& l* v" n M https://www.stmcu.org.cn/document/list/index/category-1015 4 r3 q) e& t' b- ]7 x 实战经验汇总: https://www.stmcu.org.cn/module/forum/thread-576401-1-1.html |
STM32固件库分享,超全系列整理
小马哥STM32F103开源小四轴RoboFly全部资料大放送
【MCU实战经验】+STM32F107的USB使用
基于STM32F103两轮平衡小车设计(开源)
STM32F107VCT6官方原理图和PCB
【福利】用STM32库的朋友有福了:STM32F10x_StdPeriph_Lib_V3.5.0chm...
基于STM32F10xx存储器和系统架构经验分享
基于STM32F1的CAN通信之BH1750
基于STM32F1的CAN通信之OLED
基于STM32F1的CAN通信之之串口IAP