单片机串口分析起始位停止位奇偶校验位

串口解析

串口配置

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位刚刚好相反。