CAN接收中断的疑惑和死循环

2019-08-14 00:34发布

这几天在调can,一遍跟着原子哥的例程学习,一边对着手册看,调试到了中断接收的时候出现了一些问题和疑惑,还请大家指教?
疑惑1、为什么原子哥写的接收中断里不做中断类型判断了?也不做清除中断标志位的操作了?
问题1、我的中断程序如下,可是却一直死在里面不断的打印3,我使用的是周立功的调试器,调试器都不发数据了,还在打印,很诡异,在论坛上查找,发现有一个人和我遇到的情况一样,却没有解决,希望大家帮帮忙:
void USB_LP_CAN1_RX0_IRQHandler()
{
        if(CAN_GetITStatus(CAN1,CAN_IT_FMP0)==SET)
        {
                qIrq_flag=1;
                printf("3");
                CAN_ClearITPendingBit(CAN1,CAN_IT_FMP0);
        }
        if(CAN_GetITStatus(CAN1,CAN_IT_FF0)==SET)
        {
                qIrq_flag=2;
                printf("3");
                CAN_ClearITPendingBit(CAN1,CAN_IT_FF0);
        }
        if(CAN_GetITStatus(CAN1,CAN_IT_FOV0)==SET)
        {
                qIrq_flag=4;
                printf("4");
                CAN_ClearITPendingBit(CAN1,CAN_IT_FOV0);
        }
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
快乐柠檬
1楼-- · 2019-08-14 05:01
原子哥求助攻
zsl666888
2楼-- · 2019-08-14 09:32
顶!!!
szczyb1314
3楼-- · 2019-08-14 14:27
原子哥的例程中CAN工作在自测模式哦,你的应该是要工作在正常模式下的吧,CAN工作是需要应答的
正点原子
4楼-- · 2019-08-14 18:12
 精彩回答 2  元偷偷看……
huyang201306
5楼-- · 2019-08-14 18:36
你那边can发送数据的时间间隔是多少
18419951276
6楼-- · 2019-08-14 20:10
原子哥的例程里是回环模式,如果要不同设备通信则要改为普通模式

一周热门 更多>