緣由:
做了五片同樣的板子,功能是使用板子上的感測器採集資料後,利用stm32f103串列埠將資料傳輸出去,就其中一片板子資料傳輸比其他的慢,原本正常使用串列埠115200波特率傳輸一幀資料只需要1s多,而那塊板子傳輸資料得十幾秒。一開始用示波器對時鐘測量都是ok的,外部晶振也是8mhz起振。在看程式時發現是滴答定時器延時不準確,原本延時40ms,可是異常板子幾時是將近400ms,所以懷疑滴答定時器問題。
分析:由於滴答定時器幾時頻率採用的外部時鐘進行倍頻72mhz後分頻得到,所以懷疑晶振異常,可是示波器測試晶振又是正常的。懷疑可能有虛焊。
操作:用風槍吹下晶振,發現晶振有兩個引腳沒沾錫(使用的4pin無緣smd晶振),pcba的時候應該沒有焊接上。
結果:重新焊接,焊接後程式恢復正常。
總結:遇得類似及時混亂時,分析時鐘訊號**,定位時鐘~
書以記之
STM32F103滴答計時器之delay函式
如果使用freertos void delay us u32 nus delay osschedunlock 原始碼如上,delay us 主要是靠計數值的變化,系統時鐘為72m,每變化一次過1 72m s,從而完成延時。void delay ms u32 nms nms fac ms delay ...
STM32 滴答定時器
在arm cortex m3核心中有乙個systick定時器,它是乙個24位的倒計數定時器,當計數到0時,它就會從load暫存器中自動重灌定時初值,只要不把ctrl暫存器中的enable清0,它就永不停。對於滴答定時器的理解主要分為下面幾項 1.滴答定時器的時鐘 看上面的圖會有乙個錯覺,以為滴答定時...
STM32F103定時器配置
一 什麼是定時器 定時器,顧名思義,就是用於定時或計數,它其實就是乙個加1計數器。二 了解stm32f103定時器 stm32通用暫存器有tim2 tim3 tim4 tim5。功能包括 1 16位向上 向下 向上 向下自動裝載計數器 timx cnt 2 16位可程式設計預分頻器 timx psc...