问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

串行通信的基本原理以及相关的串口配置

创作时间:
作者:
@小白创作中心

串行通信的基本原理以及相关的串口配置

引用
CSDN
1.
https://blog.csdn.net/SDTechnology/article/details/143199174

串行通信是一种常见的数据传输方式,在嵌入式系统中应用广泛。本文将介绍串行通信的基本原理以及相关的串口配置,包括UART和USART通信接口的使用,以及具体的串口配置步骤。

串行通信的基本原理

什么是串口:串行通信接口:按位发送和接收的接口。如:RS-232/422/485

LSB是最低有效位

MSB是最高有效位

校验位:可选占1个位长,也可以没有该位

停止位:必须有,可选占0.5、1、1.5、2个位长,保持逻辑1电平

通信接口:

UART:通用异步收发器(异步通信、发送数据、接收数据)【无同步时钟】

USART:通用同步异步收发器(同步通信、异步通信、发送数据、接收数据),我们通常也是使用它的异步通信

USART/UART都可以与外部设备进行全双工异步通信

大容量的STM32F10X系列芯片,包含3个USART和2个UART

通过串口接收或者发送一个字符

数据寄存器DR,要让串口发送数据,就要往DR这个寄存器写入操作。

发送数据寄存器TDR,接收数据寄存器RDR

数据位为八位,第九位为奇偶校验位,双方约定好波特率

串口配置一般步骤:

常用的串口相关的寄存器

  • USART_SR状态寄存器(串口通信的状态位)

  • USART_DR数据寄存器(一般是位0~8)

  • USART_BRR波特率寄存器

  1. 串口时钟使能,GPIO时钟使能:RCC_APB2PeriphClockCmd();

  2. 串口复位:USART_Delnit();(这一步不是必须的)

  3. GPIO端口模式设置:GPIO_Init();模式设备为GPIO_Mode_AF_PP

  4. 串口参数初始化:USART_Init();

  5. 开启中断并且初始化NVIC(如果需要开启中断才打开这个步骤)

NVIC_Init();

USART_ITConfig();

  1. 使能串口:USART_Cmd();

  2. 编写中断处理函数:USARTx_IRQHandler();

  3. 串口数据收发;

void USART_SendData();//发送数据到串口,DR

uint16_t USART_Receivedata();//接受数据,从DR读取接受到的数据

  1. 串口传输状态获取;

FlagStatus USART_GetFlagStatus(USART_TypeDef*USARTx,uint16_t USART_FLAG);

void USART_ClearITPendingBit(USART_TypeDef*USARTx,uint16_t USART_IT);

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号