串口速率(baud rate)定义为数据从串口每秒钟发送或接收的比特数。这是衡量串行通信系统性能的一个重要指标。在串口通信中,串口速率是指每秒钟传输的比特数或波特率。
所谓波特率,最初由法国电报员为纪念爱尔兰人Baudot而命名。在波特率为19200情况下,串口最高可以每秒传输19200个比特(也就是每秒传输1.92KB), 根据串口通信的规定,数据传输要保证发送方和接收方的波特率一致,否则数据无法正确传送,这也是种多项式长除法原理
在实际应用中,要根据通讯双方的能力和要求来选择合适的波特率。若通信双方的波特率越高,则传送数据量的速度也就越快。但是,不同的串口控制器或芯片的波特率有一定的限制范围,因此,选择波特率时需注意下列几点:
1、通信距离和数据传输率高低:
2、硬件设备的改变:
3、通信线路和能源的保护:
4、波特率和数据类型的选择:
控制串口速率需要一个称为波特率发生器的组件。当串口通信开始时,计算机通过波特率发生器向外部电路传输波特率。波特率发生器按照前面设定的波特率,生成时钟信号,并将此时钟信号用于将并行数据转换为串行数据,并将串行数据转换为并行数据。
在Arduino中控制串口速率即是通过Serial.begin()函数和Serial.print()和Serial.println()函数实现的,Serial.begin()函数中传入的参数就是波特率,Arduino Uno的最高传输率是115200bps.
在串行通信设计和调试过程中,可能会遇到一些常见问题:
1、通讯连接不成功,可能是波特率设置不正确或其他硬件错误引起的。
2、串口数据传输不正确,可能是波特率的误差过大或通讯线路出现干扰导致。
3、串口数据一收一发,可能是双方的波特率不一致,或通讯协议的设置不正确。
4、通信过程中出现卡死或无响应的情况,可能是由于软件程序中的阻塞操作引起的。