目录
串口通信基本原理
并行通信与串行通信
① 并行通信传送八路信号,一次并行传送传送完整的一个字节信息。串行通信在一个方向上只能传送一路信号,一次只能传送一个二进制位,传送一个字节信息时,只能一位一位地依次传送;
② 串行的传输速度慢,但是对线路的要求低一些。 并行的对线路的要求高,但是速度快;
③ 串行线路仅使用一对信号线,线路成本低并且抗干扰能力强,因此可以用在长距离通讯上;而并行线路使用多对信号线(还不包括额外的控制线路),线路成本高并且抗干扰能力差,因此对通讯距离有非常严格的限制。
串行通信中单工,半双工和全双工的区别
单工,半双工和全双工是通过传输方向不同而分的。具体说明如下:
单工 | 数据传输只支持数据在一个方向上传输 |
半双工 | 允许数据在两个方向上传输,但是,在某一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信; |
全双工 | 允许数据同时在两个方向上传输,因此,全双工通信是两个单工通信方式的结合,它要求发送设备和接收设备都有独立的接收和发送能力。 |
按通信方式不同又可分为异步通信和同步通信
通信方式 | 特点 |
同步通信 | 要求接收端时钟频率和发送端时钟频率一致,发送端根据有效的时钟脉冲发送连续的比特流(我们一般接触到的是上升触发,即只有上升沿脉冲可以触发收发端的动作); |
异步通信 | 不要求接收端时钟和发送端时钟同步,发送端发送完一个字节后,可经过任意长的时间间隔再发送下一个字节,我们一般认为异步通信发送的信息以字节为单位。 |
常见的串行通信接口
注:
注:全双工由于可以同时进行双向通信,因此通信双方都有独立的接收和发送引脚;单工和半双工由于在任何时刻只有且仅有一种信息传输状态,因此通信双方的接收和发送引脚是结合在一起的,不相互独立。
STM32中的5个串口引脚
-RXD(R-Receiver) | 数据输入引脚。数据接受; |
-TXD(T-Transmitter) | 数据发送引脚。数据发送。 |
其中包含3个USART通用异步/同步收发器(1,2,3),2个UART通用同步收发器(4,5)。
STM32中USART的通信过程
STM32串口异步通信需要定义的参数
奇偶矫正位
奇bai偶校验(Parity Check)是一种校验代码传输正确性du的方法。根据被传输的一组二进zhi制代码的数位中“1”的个dao数是奇数或偶数来进行校验。采用奇数的称为奇校验,反之,称为偶校验。采用何种校验是事先规定好的。通常专门设置一个奇偶校验位,用它使这组代码中“1”的个数为奇数或偶数。若用奇校验,则当接收端收到这组代码时,校验“1”的个数是否为奇数,从而确定传输代码的正确性。
奇偶校验位有两种类型:偶校验位与奇校验位。如果一组给定数据位中 1 的个数是奇数,那么偶校验位就置为 1,从而使得总的 1 的个数是偶数。如果给定一组数据位中 1 的个数是偶数,那么奇校验位就置为 1,使得总的 1 的个数是奇数。
如果GPIO作为串口,如何配置输入输出模式?
参考“STM32中文参考手册->通用复用功能I/O->GPIO功能描述->外设的GPIO配置”。
异步串口通信框图讲解
对于进行数据的异步发送与异步接收的两个设备来说,最重要的是要有“同样的波特率”。在上述框图中,波特率产生到送入移位寄存器的方式如下: