在使用串口的时候,串口的波特率是一个必须给定的参数。虽然书上说的很明确了,是一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
说的还真对。