串口通信原理
串行通讯是指仅用一根接收线和一根发送线就能将数据以位进行传输的一种通讯方式。尽管串行通讯
的比按字节传输的并行通信慢,但是串口可以在仅仅使用两根线的情况下就能实现数据的传输。
典型的串口通信使用 3 根线完成,分别是地线、发送、接收。由于串口通信是异步的,所以端口能够
在一根线上发送数据同时在另一根线上接收数据。串口通信最重要的参数是波特率、数据位、停止位和奇偶的校验。对于两个需要进行串口通信的端口,这些参数必须匹配,这也是能够实现串口通讯的前提。
在串口通信中,主要参数是波特率,波特率是指数据信号对载波的调制速率,它用单位时间内载波调
制状态改变的次数来表示;比如波特率为 9600bps;代表的就是每秒中传输 9600bit。两台设备要想实现串口通讯,这收发端设置的波特率必须相同,否则是没办法实现通讯的。
起始位:起始位必须是持续一个比特时间的逻辑 0 电平,标志传输一个字符的开始,接收方可用起始
位使自己的接收时钟与发送方的数据同步。
数据位:数据位紧跟在起始位之后,是通信中的真正有效信息。数据位的位数可以由通信双方共同约
定。传输数据时先传送字符的低位,后传送字符的高位。
奇偶校验位:奇偶校验位仅占一位,用于进行奇校验或偶校验,奇偶检验位不是必须有的。如果是奇
校验,需要保证传输的数据总共有奇数个逻辑高位;如果是偶校验,需要保证传输的数据总共有偶数个逻辑高位。
停止位:停止位可以是是 1 位、1.5 位或 2 位,可以由软件设定。它一定是逻辑 1 电平,标志着传输
一个字符的结束。
空闲位:空闲位是指从一个字符的停止位结束到下一个字符的起始位开始,表示线路处于空闲状态,
必须由高电平来填充。
STM32 串口通信接口有两种,分别是:UART(通用异步收发器)、USART(通用同步异步收发器)。TX
D:数据发送引脚;RXD:数据输入引脚。对于两芯片的间的连接,两个芯片 GND 共地,同时 TXD 和 RXD 交叉连接,这样两个芯片间可进行 TTL 电平通信。
单片机的电平标准(TTL 电平):+5V 表示 1,0V 表示 0。
串口总线的硬件连接
总线的通讯协议