STM32基础串口通信
一、前言
在之前的基础上,我讲解了STM32最小系统板进行点灯实验,分两步进行的主要从寄存器和HAL库函数来实现两个方面,对于寄存器来说我们新手大多数是不太明白寄存器原理,所以相对HAL库来讲寄存器实现点灯实验相对比较难,弄寄存器实现的时候注意各个管脚的状态就好了,这里我就不在细说实现LED点灯实验了。大家看我之前的博客,写的算是比较详细的。
点灯实验(1):寄存器实现
点灯实验(2):HAL库实现
注:其中包括CuBe的安装在实验(2)中具体写出了,大家也可以通过第二篇博客完成安装
现在让我们来学习一下串口协议和RS-232标准,RS232电平与TTL电平的区别,以及"USB/TTL转232"模块(以CH340芯片模块为例)的工作原理。
二、串口协议
串口是显控设备与信号处理板之间通信的主要接口,也是显控设备与其他设备、设备与设备之间的协议数据帧通信传输的重要接口。 [2] 串口通信指串口按位(bit)发送和接收字节。尽管比特字节(byte)的串行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。串口通信协议是指规定了数据包的内容,内容包含了起始位、主体数据、校验位及停止位,双方需要约定一致的数据包格式才能正常收发数据的有关规范。串口通信协议是基于串口使得通信双方能够相互沟通信息的一种约定,其定义了双方遵循的协议数据帧格式和其传输方式。 [2] 在串口通信中,常用的协议包括RS-232、RS-422和RS-485。
在上面的通讯方式中,两个通讯设备的"DB9接口"之间通过串口信号线建立起连接,串口信号线中使用"RS-232标准"传输数据信号。由于RS-232电平标准的信号不能直接被控制器直接识别,所以这些信号会经过一个"电平转换芯片"转换成控制器能识别的"TTL校准"的电平信号,才能实现通讯。
(1)浅谈设备通信方式
对于设备通信方式来看就分为两大类,并行通信和串行通信,其中:
| | 串口通信 | 并行通信 |
| 传输原理 | 数据按位顺序传输 |数据各个位同时传输|
| 优点 | 占用引脚资源少 | 速度快 |
| 缺点 | 速度相对较慢 | 占用引脚资源多 |
- 按照数据的传输方向,串口通信分为:
单工:数据传输只支持数据在一个方向上传输;
半双工:允许数据在两个方向上传输。但是,在某一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信;它不需要独立的接收端和发送端,两者可以合并一起使用一个端口;
全双工:允许数据同时在两个方向上传输。因此,全双工通信是两个单工通信方式的结合,需要独立的接收端和发送端。
(2)具体串口协议
1、电平标准
根据通信使用的电平标准不同,串口通信可以分为TTL标准和RS232标准
我们常见的电子电路中使用的TTL电平标准,理想状态下,使用5V表示二级制逻辑1,使用0V表示逻辑0,而为了增加串口通信的远距离传输以及抗干扰能力,它使用-15V表示逻辑1,+15V表示逻辑0,使用RS232与TTL电平标准表示同