STM32Fxx HAL库开发UART中断回调函数理解-中断回调函数流程-自己理解的

发布时间:2023年12月20日

STM32HAL库中断服务函数调用过程有2种

第1种:可以直接在中断源对应的中断服务函数中编写我们想要的功能

具体是在void USART1_IRQHandler(void)函数写要执行的任务
在这里插入图片描述
正点原子是重新宏定义函数名,写法如下:
暂时忽略,等找到再贴图

第2种:可以间接调用HAL库的中断回调函数来实现我们想要的功能

具体是在void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)函数写要执行的任务

USARTx_IRQHandler()
                                                    //其实第1种就是在这里面写
 ┗━ HAL_UART_IRQHandler()
          ┗━ UART_Receive_IT()
                 {
                     if (--huart->RxXferCount == 0U)
                          {
                             /* Disable the UART Data Register not empty Interrupt */
                                __HAL_UART_DISABLE_IT(huart, UART_IT_RXNE);
                      .......
                      .......
                      HAL_UART_RxCpltCallback();    //第2中就是在这里面写
                       .......
                   }

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

还可以参考网友分享的《STM32HAL库中断服务函数调用过程》

文章来源:https://blog.csdn.net/qq_21794157/article/details/135106683
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。