stm32cube生成串口代码纪要

这里只讲思路,不讲具体代码

第一步:static void MX_USART1_UART_Init(void);

函数为stm32cube 自动生成, 只是用于配置串口传输格式,波特率等

第二步:void HAL_UART_MspInit(UART_HandleTypeDef *huart)

函数为stm32cube 自动生成, 用于配置串口引脚,使能中断通道,设置优先级代码。

说明一点,此函数在函数MX_USART1_UART_Init(void)中被调用。用户不用理会。

eg.         HAL_NVIC_EnableIRQ(USART1_IRQn);                //使能USART1中断通道
             HAL_NVIC_SetPriority(USART1_IRQn,3,3);    

第三部:完善中断函数

//串口1中断服务程序
void USART1_IRQHandler(void)                    

   HAL_UART_IRQHandler(&huart1);
    HAL_UART_Receive_IT(&huart1, (u8 *)aRxBuffer, 2);//需要多次接收时,添加此函数

第四步:完善回调函数(串口接收完成后,会自动调用回调函数) 

void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
    if(huart->Instance==USART1)//如果是串口1
    {
      //用户代码
    }
}

猜你喜欢

转载自blog.csdn.net/muyepiao1/article/details/106229824
今日推荐