概述
目录
- 一、串口协议与RS-232标准
-
-
- 1、串口协议
- 2、RS-232标准
- 3、RS232电平与TTL电平
-
- 二、USART
-
-
- 1、介绍
- 2、功能框图
- 3、USART初始化结构体
-
- 三、STM32的串口通讯
-
-
- 1、创建工程
- 2、主要代码
- 3、编译
- 4、程序烧录
- 5、运行结果
-
- 四、总结
- 参考文献
一、串口协议与RS-232标准
1、串口协议
串口通信指串口按位(bit)发送和接收字节。尽管比特字节(byte)的串行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。串口通信协议是指规定了数据包的内容,内容包含了起始位、主体数据、校验位及停止位,双方需要约定一致的数据包格式才能正常收发数据的有关规范。在串口通信中,常用的协议包括RS-232
、RS-422
和RS-485
。
想要加强理解,我们可以通过分层来简化这个复杂的问题。将通讯协议分为物理层和协议层
。物理层规定通讯系统中具有机械、电子功能部分的特性,确保原始数据在物理媒体的传输。协议层主要规定通讯逻辑,统一收发双方的数据打包、解包标准。
下面主要介绍RS-232
标准
2、RS-232标准
RS-232标准主要规定了信号的用途、通讯接口以及信号的电平标准。
使用RS-232标准的串口设备间常见的通讯结构见图。
在上面的通讯方式中,两个通讯设备的"DB9接口"之间通过串口信号线建立起连接,串口信号线中使用"RS-232标准"传输数据信号。由于RS-232电平标准的信号不能直接被控制器直接识别,所以这些信号会经过一个"电平转换芯片"转换成控制器能识别的"TTL校准"的电平信号,才能实现通讯。
3、RS232电平与TTL电平
根据通讯使用的电平标准不同,串口通讯可分为TTL标准及RS-232标准,见表
通讯标准 | 电平标准(发送端) |
---|---|
5V TTL | 逻辑1:2.4V~5V 逻辑0:0~0.5V |
RS-232 | 逻辑1:-15V~-3V 逻辑0:+3V~+15V |
我们知道常见的电子电路中常使用TTL的电平标准,理想状态下,使用5V
表示二进制逻辑1
,使用0V
表示逻辑0
。
而为了增加串口通讯的远距离传输及抗干扰能力,它使用-15V
表示逻辑1
,+15V
表示逻辑0
。
使用RS232与TTL电平校准表示同一个信号时的对比见图
因为控制器一般使用TTL电平标准,所以常常会使用MA3232芯片对TTL及RS-232电平的信号进行互相转换。
二、USART
1、介绍
通用同步异步收发器USART是一个串行通信设备,可以灵活地与外部设备进行全双工数据交换。有别于 USART 还有一个UART,它相比USART来说没有同步通信功能,只有异步通信。简单区分同步和异步就是看通信时需不需要对外提供时钟输出,我们平时用的串口通信基本都是 UART。串行通信一般是以帧格式传输数据,即是一帧一帧的传输,每帧包含有起始信号、数据信息、停止信息,可能还有校验信息。USART 就是对这些传输参数有具体规定,当然也不是只有唯一一个参数值,很多参数值都可以自定义设置,只是增强它的兼容性。
2、功能框图
- 功能引脚
TX:发送数据输出引脚。
RX:接收数据输入引脚。
SW_RX:数据接收引脚,只用于单线和智能卡模式,属于内部引脚,没有具体外部引
脚。
nRTS:请求以发送(Request To Send), n 表示低电平有效。如果使能 RTS 流控制,当
USART 接收器准备好接收新数据时就会将 nRTS 变成低电平;当接收寄存器已满时,
nRTS 将被设置为高电平。该引脚只适用于硬件流控制。
nCTS:清除以发送(Clear To Send), n 表示低电平有效。如果使能 CTS 流控制,发送
器在发送下一帧数据之前会检测 nCTS 引脚,如果为低电平,表示可以发送数据,如果为高电平则在发送完当前数据帧之后停止发送。该引脚只适用于硬件流控制。
SCLK:发送器时钟输出引脚。这个引脚仅适用于同步模式。
3、USART初始化结构体
标准库函数对每个外设都建立了一个初始化结构体。结构体成员用于设置外设工作参数,并由外设初始化配置函数,比如USART_Init()调用,这些设定参数将会设置外设相应的寄存器,达到配置外设工作环境的目的。
USART初始化结构体
1 typedef struct {
2 uint32_t USART_BaudRate; // 波特率
3 uint16_t USART_WordLength; // 字长
4 uint16_t USART_StopBits; // 停止位
5 uint16_t USART_Parity; // 校验位
6 uint16_t USART_Mod
最后
以上就是自觉玉米为你收集整理的基于 MDK实现STM32串口通信一、串口协议与RS-232标准二、USART三、STM32的串口通讯四、总结参考文献的全部内容,希望文章能够帮你解决基于 MDK实现STM32串口通信一、串口协议与RS-232标准二、USART三、STM32的串口通讯四、总结参考文献所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复