USART 相关库函数在 stm32f10x_usart.c 和 stm32f10x_usart.h 文件中
- 建立usart.h和usart.c文件,添加基本代码和路径
- 设置USART初始化函数usartx_Init
- [1 ] 串口时钟使能
- [2 ] GPIO_InitTypeDef 结构体配置–注意引脚的模式设置
- [3 ] USART_InitTypeDef 串口结构体配置
- [4 ]NVIC_InitTypeDef 中断优先级结构体配置
- 串口中断服务函数USARTx_IRQHandler
- 主程序初始化usartx_Init()
函数意义:
void USART_Init(USART_TypeDef* USARTx, USART_InitTypeDef*USART_InitStruct);
typedef struct
{
uint32_t USART_BaudRate; //波特率
uint16_t USART_WordLength; //字长
uint16_t USART_StopBits; //停止位
uint16_t USART_Parity; //校验位
uint16_t USART_Mode; //USART 模式
uint16_t USART_HardwareFlowControl; //硬件流控制
} USART_InitTypeDef;
- 串口初始化函数,包括串口选择,结构体配置
void USART_Cmd(USART_TypeDef* USARTx, FunctionalState NewState);
串口使能函数,包括串口选择、串口中断类型
void USART_ITConfig(USART_TypeDef* USARTx, uint16_t USART_IT, FunctionalState NewState);
对串口中断类型和使能设置的函数,包括串口选择、中断类型(USART_IT_RXNE接收时中断、USART_IT_TC接收完中断)
NVIC_Init()
中断优先级配置
USART1_IRQHandler
中断服务函数
USART_GetITStatus(USART_TypeDef* USARTx, uint16_t USART_IT)
判断 USARTx 的中断类型 USART_IT 是否产生中断,状态标志函数
uint16_t USART_ReceiveData(USART_TypeDef* USARTx);
串口接收函数
void USART_SendData(USART_TypeDef* USARTx, uint16_t Data);
串口发送函数
void USART_ClearFlag(USART_TypeDef* USARTx, uint16_t USART_FLAG);
清除中断标志位的函数
USART_GetFlagStatus(USART_TypeDef* USARTx, uint16_t USART_FLAG);
直接读取状态标志函数
疑点:
USART_FLAG