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条回答
a732538
1楼-- · 2019-07-14 20:24
 精彩回答 2  元偷偷看……
肥肥飞飞
2楼-- · 2019-07-14 20:48
可以设置的,断点设置不了,可能是你配置不对,导致回调函数没有被调用
60user171
3楼-- · 2019-07-14 21:10
嗯  感觉是回调函数没有调用 被编译器优化了
5616asaqwq
4楼-- · 2019-07-14 23:14
1:到串口的msp初始化函数中看看是否打开了串口中断
2:确定HAL_UART_Receive_IT是否被调用;
3:确定串口是否真的能接受到数据。
在HAL_UART_RxCpltCallback函数中再次调用HAL_UART_Receive_IT函数
谦谦三君子
5楼-- · 2019-07-15 00:00
用过,之前是用串口中断模式接收一个字节的数据,回调函数里做帧头判断,然后再开启接收下一个字节。
结果只接收了第一个字节,然后就进不了回调函数了,后来调试判断出是数据溢出了。是因为接收第一个字节后,回调函数处理部分太大了,还没处理完下一个数据就来了。
后来我改成空闲中断。
60user171
6楼-- · 2019-07-15 02:58
 精彩回答 2  元偷偷看……

一周热门 更多>