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