STM32板子突然出了大問題。所以延時函數都變慢9倍。
我的延時函數是用的SysTick函數精確延時。
因為第一步需要初始化時間,一般8M的晶振我們都要初始化72.因為系統一般都是倍頻9倍的。
但是今天貌似是系統沒有倍頻9倍。
所以才導致整體時間是原來9倍長。
后來發現倍頻是在
RCC_HSEConfig(RCC_HSE_ON);
HSEStartUpStatus = RCC_WaitForHSEStartUp();
if(HSEStartUpStatus == SUCCESS)
成功后才設置的如果HSEStartUpStatus不等于1那么就不會執行倍頻。也就是說只能使用內部自帶的8M晶振了。
后來單步調,發現確實是這個HSEStartUpStatus一直為0.也就是一直沒有檢查到外部晶振。
于是乎我們開始確實晶振是不是沒有起振。
用了示波器,確定確實是晶振沒有起振。
那么是晶振問題還是板子問題呢。
以前的電路一直都是這么花的,而且都沒出現過問題。
換了一個晶振還是有問題。
難道是電容問題。
以前都是用22P的電容。
于是都換成20P居然就好了。
還是有點不解,理論上電容應該不會有這么大的影響。
不過問題是解決了。
希望大家如果遇到相同的問題,可以試著換一下電容。
晶振不起振原因分析:
(1) PCB板布線錯誤;
(2) 單片機質量有問題;
(3) 晶振質量有問題;
(4) 負載電容或匹配電容與晶振不匹配或者電容質量有問題;
(5) PCB板受潮,導致阻抗失配而不能起振;
(6) 晶振電路的走線過長。
-
pcb
+關注
關注
4319文章
23080瀏覽量
397515 -
電容
+關注
關注
100文章
6036瀏覽量
150267 -
晶振
+關注
關注
34文章
2859瀏覽量
68004 -
STM32
+關注
關注
2270文章
10895瀏覽量
355743
原文標題:stm32 8m晶振不起振的原因
文章出處:【微信號:changxuemcu,微信公眾號:暢學單片機】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論