[STM32F1] 为什么进不去 else if(ulStatus == 1)里面

[复制链接]
835|19
 楼主| morrisk 发表于 2020-12-10 23:14 | 显示全部楼层 |阅读模式

void
CANIntHandler(void)
{
    unsigned long ulStatus;
ulStatus = CANIntStatus(CAN0_BASE, CAN_INT_STS_CAUSE);
if(ulStatus == CAN_INT_INTID_STATUS)
    {
               ulStatus = CANStatusGet(CAN0_BASE, CAN_STS_CONTROL);
               g_bErrFlag = 1;
    }
        else if(ulStatus == 1)
    {
                CANIntClear(CAN0_BASE, 1);
                g_ulMsg1Count++;
                g_bErrFlag = 0;
    }     
else
    {
    }
}
 楼主| morrisk 发表于 2020-12-10 23:21 | 显示全部楼层
程序是StellarisWare\examples\peripherals\can\somole_tx.c进行修改的。
langgq 发表于 2020-12-10 23:25 | 显示全部楼层
管教配置的也对啊,中断也可以进啊
happy_10 发表于 2020-12-10 23:31 | 显示全部楼层
调试时,注意ulStatu值得变化
tian111 发表于 2020-12-10 23:34 | 显示全部楼层
另外,注意ulStatus定义的类型是否正确
llljh 发表于 2020-12-10 23:38 | 显示全部楼层
都是官方代码,就只改了管脚配置?
yinxiangh 发表于 2020-12-10 23:41 | 显示全部楼层
注意ulStatus定义的类型是否正确
houcs 发表于 2020-12-10 23:44 | 显示全部楼层

没有执行这状态吧
看看你的CAN中断写了吗
renyaq 发表于 2020-12-10 23:50 | 显示全部楼层
else if(ulStatus == 1)

先确认这个ulStatus的类型,是不是有机会等于1
bqyj 发表于 2020-12-10 23:54 | 显示全部楼层
其实这个操作你不必使用==号
juventus9554 发表于 2020-12-10 23:57 | 显示全部楼层
你可以使用逻辑操作
ulStatus|0x01
stly 发表于 2020-12-14 21:45 | 显示全部楼层
楼主是不是硬件没有接好啊?
supernan 发表于 2020-12-14 21:50 | 显示全部楼层
是不是没有初始化成功啊
pangb 发表于 2020-12-14 21:55 | 显示全部楼层
初始化没有成功 当然就进不去了
 楼主| morrisk 发表于 2020-12-14 21:59 | 显示全部楼层

其实还是不大明白,我再琢磨琢磨吧,多谢了哈先
wiba 发表于 2021-1-7 14:19 | 显示全部楼层
因为一直没有那个状态发生啊
zljiu 发表于 2021-1-7 14:20 | 显示全部楼层
能到if语句里边吗
coshi 发表于 2021-1-7 14:21 | 显示全部楼层
量一下 晶振起振了吗
aoyi 发表于 2021-1-7 14:23 | 显示全部楼层
初始化就没通过
drer 发表于 2021-1-7 14:42 | 显示全部楼层
能正常进入中断程序吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

701

主题

6879

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部