我正在
STM32F103C8T6 上研究 CAN。
我正在使用
(HAL_CAN_RxFifo0MsgPendingCallback) 的回调函数,但在收到消息代码后不久,回调函数中挂起,即使之后没有数据发送。
我不明白原因。因为此功能在 CORTEX-M4 处理器上运行良好。
但是,Transmit_Interrupt 工作正常。但是接收中断挂了。

这是代码片段。
代码卡在接收器回调函数
(HAL_CAN_RxFifo0MsgPendingCallback) 中。
/* 中断挂起在接收器 ISR 函数中 */
void HAL_CAN_RxFifo0MsgPendingCallback (CAN_HandleTypeDef *hcan) {
CAN_RxHeaderTypeDef RxHeader;
uint8_t rcvd_msg[5];
字符消息[50];
如果(HAL_CAN_GetRxMessage((CAN_HandleTypeDef*)&hcan,CAN_RX_FIFO0,&RxHeader,rcvd_msg)!= HAL_OK)
{
错误处理程序();
}
sprintf(msg,"收到消息:%s
",rcvd_msg);
HAL_UART_Transmit(&huart1,(uint8_t*)msg,strlen(msg),10);
}
伙计们,请帮忙。