标题: 经验贴,关于晶振问题 LDR R0, =SystemInit 或程序运行异常缓慢 [打印本页]

作者: liuchao626    时间: 2022-4-3 23:59
标题: 经验贴,关于晶振问题 LDR R0, =SystemInit 或程序运行异常缓慢
LDR R0, =SystemInit/或者程序运行异常缓慢
STM32调试如果卡在这一步,程序进入不了main函数,有如下排除方法:

1,程序问题:程序里面如果使用了printf函数,未勾选USE MICRO LIB,会出现此类问题
2,设置问题:Option选项卡,找到Floating Point Hardware ,默认选项为Double Precision,(我的keil里面没有这个设置)
3, 调试问题:如果设置断点太多,超过了仿真器允许的上限,也会出现此类问题,但程序可以运行,只是仿真卡住。

最后就是硬件问题,查看晶振的两个电容,是否损坏,如果电容没问题,八成是晶振的问题,用示波器查看,检测,更换即可。


如果出现了程序运行太慢的问题,例如
  1. LED(ON);
  2. Delay_ms(500);
  3. LED(OFF);
  4. Delay_ms(500);
复制代码
这种情况,灯的闪烁间隔很长,甚至达到3-4s,首先排除延时函数是不是做了删改,如果没有删改,问题就是出现在硬件上,

首先查看晶振电路中电容是否损坏,(也有同志把大容量的电容错焊上去(非22pf),也出现了这种问题),没有损坏就是晶振问题,
更换晶振即可。


别不信,俺3个小时内换了3颗晶振,才把这问题解决了,真的很幸运。


作者: 点灯工程师    时间: 2024-7-12 11:22
很有用的文章,我在CSDN里找了很久,都是说勾选Micro Lib 微库。看了你的文章是因为断点设置过多,进一步了解得知,STLINK只能设置5个断点!感谢博主!




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1