缘由:
做了五片同样的板子,功能是使用板子上的传感器采集数据后,利用stm32f103串口将数据传输出去,就其中一片板子数据传输比其他的慢,原本正常使用串口115200波特率传输一帧数据只需要1s多,而那块板子传输数据得十几秒。一开始用示波器对时钟测量都是OK的,外部晶振也是8Mhz起振。在看程序时发现是滴答定时器延时不准确,原本延时40ms,可是异常板子几时是将近400ms,所以怀疑滴答定时器问题。
分析:
由于滴答定时器几时频率采用的外部时钟进行倍频72Mhz后分频得到,所以怀疑晶振异常,可是示波器测试晶振又是正常的。怀疑可能有虚焊。
操作:
用风枪吹下晶振,发现晶振有两个引脚没沾锡(使用的4Pin无缘SMD晶振),PCBA的时候应该没有焊接上。
结果:
重新焊接,焊接后程序恢复正常。
总结:
遇得类似及时混乱时,分析时钟信号来源,定位时钟~
书以记之