串行通信的方式
(1)单工通信:数据发送设备只能发送不能接收(数据只允许一个方向传输)数据接收装置只能接收不能发送。
(2)半双工通信:数据允许双向发送但是同一时刻只能一个发送一个接收。
(3)全双工通信:数据允许沿两个方向同时进行传输和发送可以在同一时刻进行数据的接收和发送。
在串行通信中应该确保发送端与接收端的数据同步期中包括字长设置、波特率设置有无奇偶校验等。字长设置通过USART_CR1寄存器的M位。
USART的简介
USART的双向通信至少需要2个脚:RX、TX。相关寄存器包括数据寄存器(USART_DR)、控制寄存器1(USART_CR1)、控制寄存器2(USART_CR2)、控制寄存器3(USART_CR3)状态寄存器(USART_SR)、比特率寄存器(USART_BRR)等。
USART使用流程
最基本就是配置串口的工作方式以及串口的发送和接收。声明GPIO的和USART的初始化结构体,由于USART需要开启GPIO的复用功能根据不同的端口需要设置好不同的GPIO的工作模式。开启GPIO、串口的IO时钟。设置波特率、数据位、校验位、停止位设置串口模式最后完成串口使能等操作。`
在函数开发中使用以下函数设置串口模式(默认输出输出模式)
USART_InitStrue.USART_Mode=USART_Mode_Rx|USART_Mode_Tx;
串口部分代码如下:
USART_InitStrue.USART_BaudRate=115200;
USART_InitStrue.USART_HardwareFlowControl=USART_HardwareFlowControl_None;
USART_InitStrue.USART_Mode=USART_Mode_Rx|USART_Mode_Tx; USART_InitStrue.USART_Parity=USART_Parity_No;
USART_InitStrue.USART_StopBits=USART_StopBits_1;
USART_InitStrue.USART_WordLength=USART_WordLength_8b;
作者水平有限希望读者批评指正。