can总线的接收程序都是放在中断里面的,下面是我的一段接收程序希望对你有启发
void USB_LP_CAN1_RX0_IRQHandler(void) //CAN_FIFO0接收中断
{
CAN_RxMessage(&CAN_MessageStd); //接收数据
CAN_FRAME_CACHE_Mark(); //缓存数据
CAN_FIFORelease(CAN1,CAN_FIFO0); //清中断标志
}
估计你要么是没有清中断标志,要么是接收数据的函数写的不对。
温馨提示:内容为网友见解,仅供参考