morrisk 发表于 2023-1-15 22:09

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

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 发表于 2023-1-15 22:12

程序是StellarisWare\examples\peripherals\can\somole_tx.c进行修改的。

yszong 发表于 2023-1-15 22:13

管教配置的也对啊,中断也可以进啊

zwll 发表于 2023-1-15 22:13

还与单片机所选的晶振有关系

supernan 发表于 2023-1-15 22:17

调试时,注意ulStatu值得变化

stly 发表于 2023-1-15 22:18

另外,注意ulStatus定义的类型是否正确

zhanghqi 发表于 2023-1-15 22:21

都是官方代码,就只改了管脚配置?

pangb 发表于 2023-1-15 22:22


注意ulStatus定义的类型是否正确

xxmmi 发表于 2023-1-15 22:24


没有执行这状态吧,看看你的CAN中断写了吗

llljh 发表于 2023-1-15 22:27

else if(ulStatus == 1),先确认这个ulStatus的类型,是不是有机会等于1

renyaq 发表于 2023-1-15 22:28

其实这个操作你不必使用==号

supernan 发表于 2023-1-15 22:31

你可以使用逻辑操作,ulStatus|0x01

heweibig 发表于 2023-1-15 22:37

楼主是不是硬件没有接好啊?

gongche 发表于 2023-1-15 22:39

是不是没有初始化成功啊

dengdc 发表于 2023-1-15 22:40


初始化没有成功 当然就进不去了

tian111 发表于 2023-1-15 22:43

因为一直没有那个状态发生啊

juventus9554 发表于 2023-1-15 22:47

能到if语句里边吗

heweibig 发表于 2023-1-15 22:49


量一下 晶振起振了吗

huangchui 发表于 2023-1-15 22:52

初始化就没通过

lizye 发表于 2023-1-15 22:53

能正常进入中断程序吗
页: [1] 2
查看完整版本: 为什么进不去 else if(ulStatus == 1)里面