|
今天的STM32板子突然出了大問(wèn)題。所以延時(shí)函數(shù)都變慢9倍。
我的延時(shí)函數(shù)是用的SysTick函數(shù)精確延時(shí)。
因?yàn)榈谝徊叫枰跏蓟瘯r(shí)間,一般8M的晶振我們都要初始化72.因?yàn)橄到y(tǒng)一般都是倍頻9倍的。
但是今天貌似是系統(tǒng)沒有倍頻9倍。
所以才導(dǎo)致整體時(shí)間是原來(lái)9倍長(zhǎng)。
后來(lái)發(fā)現(xiàn)倍頻是在
RCC_HSEConfig(RCC_HSE_ON);
HSEStartUpStatus = RCC_WaitForHSEStartUp();
if(HSEStartUpStatus == SUCCESS)
成功后才設(shè)置的如果HSEStartUpStatus不等于1那么就不會(huì)執(zhí)行倍頻。也就是說(shuō)只能使用內(nèi)部自帶的8M晶振了。
后來(lái)單步調(diào),發(fā)現(xiàn)確實(shí)是這個(gè)HSEStartUpStatus一直為0.也就是一直沒有檢查到外部晶振。
于是乎我們開始確實(shí)晶振是不是沒有起振。
用了示波器,確定確實(shí)是晶振沒有起振。
那么是晶振問(wèn)題還是板子問(wèn)題呢。
以前的電路一直都是這么花的,而且都沒出現(xiàn)過(guò)問(wèn)題。
換了一個(gè)晶振還是有問(wèn)題。
難道是電容問(wèn)題。
以前都是用22P的電容。
于是都換成20P居然就好了。
還是有點(diǎn)不解,理論上電容應(yīng)該不會(huì)有這么大的影響。
不過(guò)問(wèn)題是解決了。
希望大家如果遇到相同的問(wèn)題,可以試著換一下電容。
|
|