LDR R0, =SystemInit/或者程序運行異常緩慢
STM32調試如果卡在這一步,程序進入不了main函數,有如下排除方法:
1,程序問題:程序里面如果使用了printf函數,未勾選USE MICRO LIB,會出現此類問題。
2,設置問題:Option選項卡,找到Floating Point Hardware ,默認選項為Double Precision,(我的keil里面沒有這個設置)
3, 調試問題:如果設置斷點太多,超過了仿真器允許的上限,也會出現此類問題,但程序可以運行,只是仿真卡住。
最后就是硬件問題,查看晶振的兩個電容,是否損壞,如果電容沒問題,八成是晶振的問題,用示波器查看,檢測,更換即可。
如果出現了程序運行太慢的問題,例如- LED(ON);
- Delay_ms(500);
- LED(OFF);
- Delay_ms(500);
復制代碼 這種情況,燈的閃爍間隔很長,甚至達到3-4s,首先排除延時函數是不是做了刪改,如果沒有刪改,問題就是出現在硬件上,
首先查看晶振電路中電容是否損壞,(也有同志把大容量的電容錯焊上去(非22pf),也出現了這種問題),沒有損壞就是晶振問題,
更換晶振即可。
別不信,俺3個小時內換了3顆晶振,才把這問題解決了,真的很幸運。
|