|
大家的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函数 我也只做了这几步,进入调试发现这个回掉函数不仅没起作用,连断点都设置不了,这是为什么呢? |
微信公众号
手机版
{
HAL_UART_IRQHandler(&huart3);
}
如果在cube中设置了nvic的话这个函数会在-it.c里面自动写好
如果cube中没有设置nvic的话 这个函数要自己写 才能开启中断
评分
查看全部评分
这个HAL USART 需要在主循环函数中不断调用HAL_UART_Receive_IT(&UartHandle, (uint8_t *)aRxBuffer, RXBUFFERSIZE),才能响应中断。这与查询方式有何区别?
令人费解!!
评分
查看全部评分
评分
查看全部评分
嗯 感觉是回调函数没有调用 被编译器优化了
2:确定HAL_UART_Receive_IT是否被调用;
3:确定串口是否真的能接受到数据。
在HAL_UART_RxCpltCallback函数中再次调用HAL_UART_Receive_IT函数
评分
查看全部评分
结果只接收了第一个字节,然后就进不了回调函数了,后来调试判断出是数据溢出了。是因为接收第一个字节后,回调函数处理部分太大了,还没处理完下一个数据就来了。
后来我改成空闲中断。
评分
查看全部评分
HAL_NVIC_SetPriority(USART3_IRQn, 0, 2);
HAL_NVIC_EnableIRQ(USART3_IRQn);
配置中断应该只有两句代码,是在HAL_UART_MspInit中调用?
嗯 看了许多留言 说这个回调函数效率太低了
你可以追踪下代码看看有没有被执行到