- 打开串口和GPIO的时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1)
- 串口复位 USART_DeInit(USART_TypeDef* USARTx)
- GPIO参数设置
- 串口参数设置
- 初始化NVIC并开启中断
- 使能串口
1,串口时钟使能,GPIO时钟使能
RCC_APB2PeriphClockCmd()
2,串口复位
USART_DeInit();
3,GPIO端口模式设置
GPIO_Init();
4,串口参数初始化
USART_Init()
5,开启中断并初始化NVIC
NVIC_Init();
USART_ITConfig();
6,使能串口
USART_Cmd();
7,中断函数逻辑
USARTx_IRQHandler();
8,串口数据发送
void USART_SendData(USART_TypeDef* USARTx, uint16_t Data);
uint16_t USART_ReceiveData(USART_TypeDef* USARTx);
9,串口传输状态获取
ITStatus USART_GetITStatus(USART_TypeDef* USARTx, uint16_t USART_IT);
void USART_ClearITPendingBit(USART_TypeDef* USARTx, uint16_t USART_IT);
void USART_Init (void)
{
GPIO_InitTypeDef GPIO_Initstructure;
USART_InitTypeDef GPIO_Initstructure;
NVIC_InitTypeDef NVIC_Initstructure;
//打开串口和GPIO的时钟
RCC_APB2PeriphClockCmd(RCC