STM32
直播中

贾飞世

7年用户 1764经验值
私信 关注
[问答]

通用同步异步收发器常用的串口相关寄存器有哪些

通用同步异步收发器的原理是什么?

通用同步异步收发器常用的串口相关寄存器有哪些?




回帖(1)

李可仪

2021-12-10 11:20:22
串行通信:数据按位传输,速度慢,占用资源少
串行通信的通信方式:同步通信:带时钟同步信号传输; SPI,IIC通信
异步通信:不带时钟同步信号; UART

  

  

通用同步异步收发器的原理框图

  

  

常用的串口相关寄存器:
USART_SR状态寄存器
USART_DR数据寄存器
USART_BRR波特率寄存器
常用的串口操作相关库函数:
USART_Init(); //串口初始化,波特率,数据字长,奇偶校验,收发使能
USART_Cmd(); //使能串口
USART_ITConfig(); //使能相关中断
USART_SendData(); //发送数据到串口,DR
USART_ReceiveData(); //接受数据,从DR读取接收到的数据
FlagStatus USART_GetFlagStatus(); //获取状态标志位
USART_ClearFlag(); //清除状态标志位
ITStatus USART_GetITStatus(); //获取中断状态标志位
USART_ClearITPendingBit(); //清除中断状态标志位

  

  

  STM32串口通信过程:

  
  

  

STM32串口异步通信定义的参数传送格式:
① 起始位 ② 数据位(8位) ③ 奇偶校验位(第9位)
④ 停止位(1,1.5,2位) ⑤ 波特率设置

  

  


  

  

  串口配置的一般步骤:
①串口时钟使能 :RCC_APBxPeriphClockCmd();
GPIO时钟使能:RCC_AHB1PeriphClockCmd();
②引脚复用映射
GPIO_PinAFConfig();
③GPIO端口模式设置:GPIO_Init(); //模式设置为GPIO_Mode_AF
④串口参数初始化: USART_Init();
⑤开启中断并且初始化 (如果需要开启中断才需要这个步骤)
NVIC_Init();
USART_ITConfig();
⑥使能串口:USART_Cmd();
⑦编写中断处理函数:USARTx_IRQHandler();
⑧串口数据收发:
USART_SendData(); // 发送数据到串口,DR
USART_ReceiveData(); // 接受数据,从DR读取接收数据
⑨串口传输状态获取:
FlagStatus USART_GetFlagStatus();
USART_ClearITPendingBit();
⑩中断入口函数
void USARTx_IRQHandler();
举报

更多回帖

发帖
×
20
完善资料,
赚取积分