串口通信的数据传输速率通常以波特率来衡量,单位是波特(bps),表示每秒传输的比特数。如果串口设置为9600波特率,这意味着每秒可以传输9600比特。
然而,实际可发送的数据量取决于数据包的大小和传输过程中是否有额外的开销,如起始位、停止位和校验位。以最常见的8位数据位、1位起始位、1位停止位和无校验位的配置为例:
- 数据位:8位
- 起始位:1位
- 停止位:1位
- 校验位:0位(无校验)
总的比特数 = 数据位 + 起始位 + 停止位 = 8 + 1 + 1 = 10位
在9600波特率下,每秒可以发送的数据包数 = 9600 / 10 = 960个数据包。
如果每个数据包是1个字节(8位),那么每秒可以发送的数据量是960字节。如果数据包大小不同,或者有校验位,那么实际发送的数据量会有所不同。
以波特率250000为力 1s÷250,000 = 4us
不是很严谨的以下图反推,一个bit的时间正好就是4usec。波特率的单位应该就是比特每秒bit/s(bsp不好说明到底是bit 还是 byte)
每个字节包含11个bit,也就44usec,大概就是25k byte/s。也就是说每秒可以发送25k个ASCII码。
| 波特率 | 9600 | 115200 | 250k | | |
|–|–|–|–|–|–|–|–|
| byte/s | 960 | 11.5k | 25k | | |