ST意法半导体
直播中

小黑羊

11年用户 996经验值
擅长:31274
私信 关注
[问答]

如何使用HAL执行idle_line中断呢?

当我设置 UART 时,我激活了 DMA TX 和 RX,并在 MX 程序中打开了 UART 中断。
查看STM32f4xx_hal_uart.h中680行左右的代码
/* 回调注册/注销函数 **************************************/
#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
HAL_StatusTypeDef HAL_UART_RegisterCallback(UART_HandleTypeDef *huart, HAL_UART_CallbackIDTypeDef CallbackID, pUART_CallbackTypeDef pCallback);
HAL_StatusTypeDef HAL_UART_UnRegisterCallback(UART_HandleTypeDef *huart, HAL_UART_CallbackIDTypeDef CallbackID);
#endif /* USE_HAL_UART_REGISTER_CALLBACKS */
那么如何使用 HAL 执行 idle_line 中断?
我正在使用 STM32F446。








回帖(1)

王丹丹

2023-1-6 14:04:55
看起来在 stm32F4xx_hal_uart.c 中的代码中,大约在第 3037 行
如果 USE_HAL_UART_REGISTER_CALLBACKS != 1
/*调用legacy weak Rx完成回调*/
     HAL_UART_RxCpltCallback(huart);
但它只会在 if (--huart->RxXferCount == 0U) 或您完成接收数据时调用该例程。(3023行左右)
举报

更多回帖

发帖
×
20
完善资料,
赚取积分