|
STM32F103C8T6 程序上电跑飞 / O5 O/ T' c# a D" X前言 某客户反应说他们做回来的板子测试发现程序上电就跑飞了,下载都正常。检查了一个礼拜都不知道哪里出了问题,感觉无从下手。 % }9 B' `( _5 s8 E. J 一 问题排查; e5 b3 t) M q3 V( X+ T6 x 1.1 检查电路板/ A; S4 G# ~8 D( Z6 d* @. P" N% q# o5 _ 排除虚焊漏焊现象,查看晶体起震波形正常,查看BOOT引脚配置正常。, A5 t* t' n7 I5 f3 G 1.2 检查软件代码 客户使用了老的标准库,反应说代码在别的板子上验证过,运行正常。 1.3 IDE检查 客户使用KEIL MDK V5.X版本,下载代码正常,连接ST-LINK/v2 仿真DEBUG, 程序跑飞。$ ^' q+ n0 ~$ b' Q. v( x' @ 停在了一段空白的地址空间中。% X2 Z! t! q9 t/ M [; s 8 t" S4 F, r N: O% r+ Z1 U4 \ 二 测试流程 2.1 编写测试代码 在老版本的标准库的基础上,做了一个LED闪烁的DEMO程序,方便直观的观察现象。 测试后,问题同样,代码跑飞。 2.2 重新梳理工程 在STM32Cube架构上重新新建工程,确认发现客户使用的晶体频率已经超过了16MHz的上限' z: p- R( Y; E: k2 c 马上更换一个合适的晶体后并修改时钟驱动代码后,程序运行正常。LED开始稳定闪烁。
5 R9 X' L( G' }5 c# [1 Z 三 小结/ a3 M1 q; h0 S6 E$ q5 m1 R 虽然很多工程师已经很熟悉老的标准库的使用,但还是应该推荐客户选择使用STM32Cube来进行开发,这样这个问题在一开始就会避免。 文档下载地址:9 r, b( Q% Y' V https://www.stmcu.org.cn/document/list/index/category-1015 6 k/ P, p' s1 _ 实战经验汇总: N9 R; H2 E8 H2 D2 ~) i6 i https://www.stmcu.org.cn/module/forum/thread-576401-1-1.html |
DMA 原理从 0 到 1:为什么它能解放 CPU?一文讲透 DMA 的工作流程
【福利三:雨露均沾·逢7狂欢】之五:STM32系统时钟PLL故障排除1例
【福利三:雨露均沾·逢7狂欢】之三:AI帮我查BUG
福利三:雨露均沾·逢7狂欢】之二:STM32F407VG串口通信乱码故障的排除
基于STM32F103的I2C主从机通信
OpenBLT移植到STM32F103战舰开发板上适用于所有STM32F103系列的Bootloader
TFT LCD 与 FSMC 的硬件连接大容量 STM32F10xxx FSMC 接口
单片机:初学者该了解的STM32F103基础知识
2025软件工具兔哥知道
STM32之继电器模块
微信公众号
手机版