如何在MX中设置UART中断回调函数?

我在MX中配置了UART的中断使能,但没有找到如何开启接收中断回调,例子中的程序是针对CUBE的使用的吧?好像都是自己写到程序里的,如何用MX配置接收回调函数?
已邀请:

木风

赞同来自: geniusning admin

HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef huart, uint8_t pData, uint16_t Size)这个函数,接收Size字节到pData指针中。我一般将Size大小设为1,然后在回调函数void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)中设置一个标志位。再在主循环中根据标志位再打开中断,这样可以循环接收

geniusning

赞同来自:

这都是在程序中自己添加调用的API函数吧?能在MX中配置好自动生成函数原型,然后自己添加 对应的 User code那样吗?

似水如火

赞同来自:

求,怎么发送函数
__IO ITStatus UartReady = RESET;
-5- Wait for the end of the transfer ############################[size=16]#/ [/size]
while (UartReady != SET)
{
}

/ Reset transmission flag /
UartReady = RESET;
官方历程,这个UartReady 怎么老是RESET,难道是没发送完成?可是串口助手显示接受已经完成了。
接收函数也是一样,为啥只能接收几次,然后就死在串口中断里了。

露枫

赞同来自: Mark2010

采用DMA接收不行吗?利用UART_IT_IDLE中断识别一帧数据接收完毕,在中断中置标志位,然后在主循环中进行处理,这样效率更高。
__HAL_UART_ENABLE_IT(&huart1, UART_IT_IDLE);//使能USART1的总线空闲中断

要回复问题请先登录注册