HAL库串口中断接收的回掉函数没起作用

2019-07-14 14:21发布

大家的void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)这个接收完成回掉函数可以设置断点吗hal中断接收我理解只有
1,配置中断
2,在主函数中调用一次HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)开启标志位;
3,编写HAL_UART_RxCpltCallback函数
我也只做了这几步,进入调试发现这个回掉函数不仅没起作用,连断点都设置不了,这是为什么呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
60user171
1楼-- · 2019-07-15 08:34
谦谦三君子 发表于 2019-1-28 12:05
用过,之前是用串口中断模式接收一个字节的数据,回调函数里做帧头判断,然后再开启接收下一个字节。
结果只接收了第一个字节,然后就进不了回调函数了,后来调试判断出是数据溢出了。是因为接收第一个字节后,回调函数处理部分太大了,还没处理完下一个数据就来了。
后来我改成空闲中断。 ...

嗯  看了许多留言 说这个回调函数效率太低了
5616asaqwq
2楼-- · 2019-07-15 14:07
60user171 发表于 2019-1-28 12:12
  HAL_NVIC_SetPriority(USART3_IRQn, 0, 2);
  HAL_NVIC_EnableIRQ(USART3_IRQn);
配置中断应该只有两句代码,是在HAL_UART_MspInit中调用?

你可以追踪下代码看看有没有被执行到
60user171
3楼-- · 2019-07-15 18:10
5616asaqwq 发表于 2019-1-28 12:42
你可以追踪下代码看看有没有被执行到

都执行了,可能是回调函数有问题
60user171
4楼-- · 2019-07-15 18:56
5616asaqwq 发表于 2019-1-28 12:42
你可以追踪下代码看看有没有被执行到

嗯 都执行了 我在想是不是回调函数的问题
谦谦三君子
5楼-- · 2019-07-15 23:23
 精彩回答 2  元偷偷看……
ctwewer
6楼-- · 2019-07-16 04:32
本帖最后由 wenyangzeng 于 2017-1-4 13:20 编辑

这个HAL USART 需要在主循环函数中不断调用HAL_UART_Receive_IT(&UartHandle, (uint8_t *)aRxBuffer, RXBUFFERSIZE),才能响应中断。这与查询方式有何区别?
令人费解!!

一周热门 更多>