01-串口(USART)简介
一、同步异步收发器(USART)
1、同步通信
与SPI、I2C类似,收发双方都需要一根时钟线,在同样的时钟线控制之下,可以进行数据的采样。
2、异步通信
没有这一条时钟线,且异步通信也是最常用的一种通信方式。
【比如】三线式异步通信(包含:1、GND共地;2、TxD发送数据的引脚;3、RxD接收数据的引脚)
二、串口与并口
1、串口
只有一条数据线,每次只能传输一个二进制位数据。因此在传输一个字节数据或者大量数据时,只能在一条线上一个一个二进制位的数据进行传输。
2、并口
【比如1】8位并口:通信时有8条数据线(可以同时传输8个二进制位的数据)。
【比如2】16位并口:通信时有16条数据线(可以同时传输16个二进制位的数据)。
三、UART和USART
1、UART
表示异步通信的功能。
2、USART
表示同步通信的功能。
四、RS-232 描述&电平标准


1、TTL电平
在理想状态下使用5V表示逻辑1,使用0V表示逻辑0。
2、RS-232电平
为了提高远距离传输的抗干扰能力,使用-15V表示逻辑1,使用+15V表示逻辑0。

五、HAL库提供的数据处理方式
1、轮询方式。
2、中断方式。
3、DMA方式。
六、CH340描述和使用原因
1、描述
CH340 是一个USB 总线的转接芯片,实现USB 转串口。
2、原因
串口最早使用的是九针串口的形式,但是现在的电脑(尤其是笔记本电脑)上面没有了。为了方便实验就会添加一个CH340、PL2303、FT232这种转USB串口的形式。
七、串口通信的关键参数
关键参数:数据位长度、停止位个数、校验方式、波特率。
1、数据位长度
每帧数据就好比一列火车,有车头也有车尾,即起始位和停止位。

有两种字长可供选择:8位字长、9位字长。
(1)8位字长
一个数据帧发送一个字节数据(一个字节包含8个二进制位)。
(2)9位字长
一个数据帧除了8个二进制位的数据之外,还有一个校验位(奇偶校验位)。
(3)校验位(奇偶校验位)
【作用】通过校验位的方式可以去判断本次收发的字节是否产生了误码,是否在数据的传输过程中某个二进制位由1变成0(或者由0变成1),造成数据的传输错误。
(4)起始位
相当于一个火车头,起始位是固定的一个二进制位,并且是0(低电平)。
(5)停止位
相当于一个火车尾,停止位是固定的一个二进制位,并且是1(高电平)。但是停止位的个数是可配置的。

停止位的个数:①1个停止位;②0.5个停止位;③2个停止位;④1.5个停止位。
【注】由于起始位是1个、数据位有7个(或者8个)、校验位1个、停止位有4种选择,这样的不同配置和不同组合最终就会决定数据帧中包含的二进制位的个数是不同的。
【比如】在一条串口线上进行数据传输(接收或者发送),串口就是将所有的数据进行一个二进制位一个二进制位的穿成一条串,并且一个挨着一个的通过数据传输的串口线进行传输(接收或者发送),若是同步通信还需要一条时钟线(配置一个时钟的GPIO口),若是异步通信就不需要这条时钟线了。
2、常用的通信方式
平常使用最多的一种通信方式就是8N1。
8N1:是8和N配套来看,N表示不需要校验位,若不需要校验位,就剩下8(9-1)个二进制位(一个字节的数据)。1表示停止位的个数是1个。
【注】起始位是1个 + 8N1的方式,所以一个数据帧就包含了10个二进制位数据。
3、波特率
表示每秒钟可以发送的二进制位的个数。
【比如】波特率是9600,即表示每秒钟可以发送9600个二进制位数据。若是使用8N1(1+8+1 = 10)的方式,即一个数据帧就有10个二进制位数据,然后使用9600的波特率进行数据传输(其中没有任何的间隔,没有任何的空闲帧和断开帧,也没有任何的数据交互),则1秒钟可以传输960(9600 / 10 = 960)个数据帧,其中一个数据帧包含一个字节数据,即1秒钟最多可以发送960个字节数据。
【注】波特率越大表示单位时间内可以传输的字节数据越多,即传输数据的速度越快!

浙公网安备 33010602011771号