单片机串口分析起始位停止位奇偶校验位
串口解析
串口配置
1.波特率
2.停止位
3.数据位
4.奇偶校验位
- 比特率:通讯的频率
- 停止位:可以选择1/1.5/2三个选择
- 数据位:可以选择5/6/7/8四个选择
- 奇偶校验位:可以选择奇校验/偶校验/无奇偶校验位
假设我们选择默认配置为:波特率位9600,停止位为1数据位为8,奇偶校验位为无。那么一个数据的长度=起始位(1)+数据位(8)+奇偶校验位(0)+停止位(1)。
按照默认的配置我们来计算一下10S能传输多少字节的数据。
byte = 10*9600/10 = 9600个字节。
当然这是在最理想的情况下,因为需要做保护所以理论上是做不到9600个字节的最大传输的。
接下来我们分析一下每个字节具体是怎么样的。
1.默认配置下:
我们发送一个字节0xC7下面需要区分两个情况
- LSM:低字节在前高字节在后
- MSB:高位在前低位在后
我们会发现从同样是11100011,在LSB和MSB的读取结果不同,根据字面意思我们也能理解,一个是地位在前一个是高位在前,所以我们读取的结果LSB=0xC7,MSB=0xE3。
2.奇偶校验位
发送0x01和0x02两个字节
-
奇校验
在奇校验下我们会发现0x01的第10位是0 0x02的第10位是1。奇校验就是读取数据位中高电平的个数,如果是奇数那么奇偶校验位就为0。如果高电平的个数位偶数,那么奇偶校验位就为1。
-
偶校验
偶校验顾名思义就是相反与奇校验,所以从波形中我们可以发现同样的数据奇校验和偶校验的第10位刚刚好相反。