UART串口通信:串行、异步通信总线,一共有两根数据线,可以实现全双工的发送和接收。
并行通信与串行通信:
并行通信:总线在传输数据的时候,一次可以发送多个位,比如:总线发送char类型的数据,该数据有八个字节,0x55转换为2进制是01010101,一共八根线,一个线传送一个位数;
串行通信:一根数据线,数据依次传送过去。
速度上:并行快,但是消耗资源(总线过多),线与线之间会出现干扰
单工通信:区分发送器和接收器,传输数据时,只能是发送器给接收器传输数据,不能由接收器给发送器传输数据;

双工通信:比如:A与B两个设备,A可以给B发送数据,B也可以给A发送数据;要求A中有发送器和接收器,B中也有发送器和接收器;
半双工通信:A在给B发送数据的同时,B不能给A发送数据

如图所示,在连接发送器与接收器之间,是一根总线,连接A给B发送数据的时候,内部相应的接收器要断开。
全双工通信:A给B发送数据的同时,B也可以给A发送数据。发送和接收都有一根独立的总线,在发送的同时也可以进行接收。
波特率:描述URAT通信时的通信速度,其单位是bps(bit per second)即每秒传送的bit的数量。
URAT帧格式:(串口控制进行管理)

起始位:发送数据的起始;
数据位:你要发送的具体数据,不如0x55->01010101
校验位:用于验证你发送的数据是否是正确的;
停止位:发送数据的结束
高低电平的问题:对于我们要发送的数据,比如:0x55转换为2进制数:01010101,其中‘1’表示的是高电平,‘0’表示的是低电平;
注意:总线在不发送数据的时候,我们让其电平始终保持在高电平的阶段,也就是‘1’。
由上图可以知道我们在发送数据的时候,并不是直接就发送数据的,而是先要发送一个低电平‘0’;因为如果直接进行发送数据的话,如果我们发送的数据是0XFF->11111111,全是高电平,由于在空闲状态下,总线始终保持高电平,那么就不知道有没有发送数据了。
在串口通信的时候,比如串口通信的时候,规定是先从低位开始发送的,也就是比如发送的数据是:0x55->01010101,最先发送的就是最后一位‘1’;从后向前就是10101010。
校验位:一般都是奇偶位校验,比如之前的数据:01010101,其中1的位数是偶数个,那么我们可以将检验位设置位‘1’,如果接收方不是偶数个,则重新进行发送;注意只能进行校验,不能进行修改。
停止位:高电平。
注意:当发送的数据超过了最大位数时,不如10;要先发送八位然后结束再将剩余的位数进行发送。也要按照帧格式来,起始-数据-校验-结束。
区分发送相同电平格式的数据,比如:01与0011,在电平上都是先低后高的,那么接收方如何进行区分呢?
波特率来进行区分,比如波特率为1,每秒发送1位,那么接收方一秒接收到‘0’,发送的就是01;如果两秒接收到‘0’,那么发送的就是0011
串口为什么只允许发送一个字节,也就是八位:避免累计误差的出现,如果数据太长,接收方接收到数据的时间是没有标准的。
URAT硬件连接:

TXD:发送数据
RXD:接收数据