怎么测量实际的波特率、比特率? 串口波特率( 二 )


使用STM32时,通常使用外部晶振,如STM32F103系列 。外部晶振的输入范围为4 ~ 16mhz

经验值一般为8MHz,一般演示项目底层代码中的默认值也设置为8MHz,如:

但如果实际晶振没有粘贴8m,就会出现问题(比如串口波特率不正确) 。追溯到源代码,串口波特率是在USART_Init函数中赋值的 。打开此功能:

计算串口的波特率需要一个apbclock变量,这个值来自RCC_GetClocksFreq函数,然后打开这个函数:

所以需要注意的是,HSE_VALUE的取值要与实际情况相对应 。
遇到这种问题找谁谈?是一个积累经验的过程,早点遇到坑可能是好事 。像底层这样的问题很少遇到,但是一旦遇到就要更加困难,需要耐心寻找 。
能够使用稳定的芯片是一件非常幸福的事情 。用一个不稳定不成熟的芯片的时候,那个真的很难 。遇到问题的时候,真的是怀疑人生 。可能软件、硬件、芯片都有问题 。


推荐阅读