STM32的CAN总线采用中断接收程序会死在中断里,怎么回事
芯片型号为普通型,64脚,好奇怪,邮箱号也得不到,发送状态返回值也是超限制,发送引脚有波形,接收不到,CAN_GetITStatus(CAN_IT_FMFO)的返回值超限...
芯片型号为普通型,64脚,好奇怪,邮箱号也得不到,发送状态返回值也是超限制,发送引脚有波形,接收不到,CAN_GetITStatus(CAN_IT_FMFO)的返回值超限制,
展开
展开全部
can总线的接收程序都是放在中断里面的,下面是我的一段接收程序希望对你有启发
void USB_LP_CAN1_RX0_IRQHandler(void) //CAN_FIFO0接收中断
{
CAN_RxMessage(&CAN_MessageStd); //接收数据
CAN_FRAME_CACHE_Mark(); //缓存数据
CAN_FIFORelease(CAN1,CAN_FIFO0); //清中断标志
}
估计你要么是没有清中断标志,要么是接收数据的函数写的不对。
void USB_LP_CAN1_RX0_IRQHandler(void) //CAN_FIFO0接收中断
{
CAN_RxMessage(&CAN_MessageStd); //接收数据
CAN_FRAME_CACHE_Mark(); //缓存数据
CAN_FIFORelease(CAN1,CAN_FIFO0); //清中断标志
}
估计你要么是没有清中断标志,要么是接收数据的函数写的不对。
2014-03-12
展开全部
学习学习
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-03-11
展开全部
什么是返回值超限制?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询