文章目录
- 零处理器与外部设备通信的两种方式:
- 串行通信的通信方式
- STM 32的串口通信接口
- UART异步通信方式引脚连接方法
- STM 32串口异步通信需要定义的参数
- 常用的串口相关寄存器
- 波特率计算方法
- 串口操作相关库函数(省略入口参数)
- 洛谷题
零处理器与外部设备通信的两种方式:
并行通信
传输原理:数据各个位同时传输。
优点:速度快
缺点:占用引脚资源多
串行通信
传输原理:数据按位顺序传输。
优点:占用引脚资源少
缺点:速度相对较慢
串行通信按照数据传送方向,分为:
单工:
数据传输只支持数据在一个方向上传输
半双工:
允许数据在两个方向上传输,但是,在某一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信
全双工:
允许数据同时在两个方向上传输,因此,全双工通信是两个单工通信方式的结合,它要求发送设备和接收设备都有独立的接收和发送能力。
串行通信的通信方式
同步通信:带时钟同步信号传输。
SPI, IIC通信接口
异步通信:不带时钟同步信号。
UART(通用异步收发器) , 单总线
STM 32的串口通信接口
UART:通用异步收发器
USART:通用同步异步收发器
UART异步通信方式引脚连接方法
RXD:数据输入引脚。数据接受。
TXD: 数据发送引脚。数据发送。
STM 32串口异步通信需要定义的参数
①起始位
②数据位(8位或者9位)
③奇偶校验位(第9位)
④停止位(1,15,2位)
⑤波特率设置
常用的串口相关寄存器
- US ART_SR状态寄存器
- US ART_DR数据寄存器
- USA RTL BRR波特率寄存器
波特率计算方法
上式中, fPCLK x是给串口的时钟(PCLK1用于USART 2、3、4、5 PCLK 2)于US0ARTI) ;USARTDIV是一个无符号定点数。我们只要得到USARTDIV的值, 就可以得到串口波特率寄存器USART I>BRR的值, 反过来, 我们得到USART I>BRR的值, 也可以推导出USARTDIV 的值。但我们更关心的是如何从USARTDIV的值得到US ART_BRR的值, 因为一般我们知道的是波特率, 和PCLK x的时钟, 要求的就是US ART_BRR的值。
串口操作相关库函数(省略入口参数)
void USART_lnit();//串口初始化:波特率,数据字长,奇偶校验,硬件流控以及收发使能
void USART_Cmd();//使能串口
void USART_ITConfig();//使能相关中断
void USART_SendData();//发送数据到串口,DR
uint16_tUSARTReceiveData();//接受数据,从DR读取接受到的数据
FlagStatus USART_GetFLAGStatus();//获取状态标志位
void USART_ClearFlag();//清除状态标志位
ITStatus USART_GetITStatus();//获取中断状态标志位
void USART_ClearITPendingBit();//获取中断状态标志位
洛谷题
三连击的解题办法只适用于这道题,需要范围。