一、串口相关寄存器
1、USART_SR状态寄存器
FlagStatus USART_GetFlagStatus(USART_TypeDef* USARTx, uint16_t USART_FLAG);
2、USART_DR数据寄存器
void USART_SendData(USART_TypeDef* USARTx, uint16_t Data);
uint16_t USART_ReceiveData(USART_TypeDef* USARTx);
3、USART_BRR波特率寄存器
void USART_Init(USART_TypeDef* USARTx, USART_InitTypeDef* USART_InitStruct);
波特率计算方法
二、串口操作相关库函数
void USART_Init(); //串口初始化:波特率,数据字长,奇偶校验,硬件流控以及收发
void USART_Cmd(); //使能串口
void USART_ITConfig(); //使能相关中断
void USART_SendData(); //发送数据到串口,DR
unit16_t USART_ReceiveData(); //接受数据,从DR读取接受到的数据
FlagStatus USART_GetFlagStatus(); //获取标志状态位
void USART_ClearFlag(); //清除状态标志位
ITStatus USART_GetITStatus(); //获取中断状态标志位
void USART_ClearITPendingBit(); //清除中断状态标志位
三、串口配置的一般步骤(PA9,PA10)
① 串口时钟使能,GPIO时钟使能:RCC_APB2PeriphClockCmd();
② 串口复位:USART_DeInit(); 这一步不是必须的
③GPIO端口模式设置:GPIO_Init(); 模式设置为GPIO_Mode_AF_PP
GPIO设置参考中文手册8.1.11
④串口参数初始化:USART_Init();
⑤开启中断并且初始化NVIC(如果需要开启中断才需要这个步骤)NVIC_Init(); USART_ITConfig();
⑥使能串口:USART_Cmd();
⑦编写中断处理函数:USARTx_IRQHandler();
⑧串口数据收发:
void USART_SendDtata(); //发送数据到串口,DR
unit16_t USART_ReceiveData(); //接受数据,从DR读取接受到的数据
⑨串口传输状态获取:
FlagStatus USART_GetFlagStatus(USART_TypeDef* USARTx,unit16_t USART_FLAG);
void USART_ClearITPendingBit(USART_TypeDef* USARTx,unit16_t USART_IT);