在使用串口的時候,串口的波特率是一個必須給定的參數。雖然書上說的很明確了,是一bit的時間。可我就是不放心,一直納悶這個波特率到底是發送方波的頻率還是發送一個字節所需要的時間。今天專門測試下,留作備案以免以后再疑惑。
實驗方法:串口以各種波特率發送數據,用示波器查看並測量。
實驗的硬件:STM32F4Discovery 的USART3
實驗方法:將板子上的串口初始化之后,循環發送數據:
while(1)
{
USART_SendData(USART3,0xAA);
}
之后每測量一次改一次波特率。串口初始化的方法,可參考USART1 Init
各種波特率下的實測
9600
14400
19200
38400
56000
57600
115200
128000
256000
512000
1024000
2048000出錯
總結:
波特率是脈沖頻率的二倍。一個波形一秒鍾發送的次數是多少波特率就是多少。比如波特率是9600時候,測得的脈沖寬度是104.2us,波形頻率是4.8k。
看完這么多圖,在看看理論知識:
延伸閱讀:http://baike.baidu.com/link?url=wBg0ne51sJ08Aityf-aNQn0YTCnUfM-nuJw-9KNkw4icyCV2f2GRBk49xTgi07PC
說的還真對。