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

说的还真对。