UART
通用异步收发接口【时钟线不同,USART才是】
并行
需要多根线
- 速度快
- 总线太多,浪费资源,还有信号干扰
串行(uart,spi,iic)
单根线发送
- 速度较慢,数据比较稳定
半双工和全双工
UART就是全双工的【收发有各自的线】,可以同时收发
IIC就是半双工的,只有一根线SDL
波特率
串口的通信速率,单位是bps,bit/s,每秒钟传输的位数,两个设备需要保证相同的通信速率,否则乱码
累计误差(异步的话,两个的时钟是不同的,会有误差,)
- 如何区分发了一个1还是两个1,或0,通过掐时间
- 如果区分1111111111呢?还需要掐时间
通过波特率解决,同时每次发送一个字节通过也避免了对后续的干扰
UART
每次只能一个一个字节的发【避免了累计误差,下一个重新发送,防止前面错误干扰后面】
格式是
起始位(固定0),与空闲时区分(1),通信开始
数据位,先发低位后发高位
校验位,CRC,奇偶校验啥的,一般不需要,增加传输压力
停止位,固定是1,通信结束,继续保持1(进入空闲)
案例
- TTL转232,这里电路提升了TTL,使其抗干扰能力和传输距离更远
设置引脚功能的本质就是开关连接到不同功能的电路