为什么进不去 else if(ulStatus == 1)里面
voidCANIntHandler(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
{
}
} 程序是StellarisWare\examples\peripherals\can\somole_tx.c进行修改的。
管教配置的也对啊,中断也可以进啊
还与单片机所选的晶振有关系
调试时,注意ulStatu值得变化
另外,注意ulStatus定义的类型是否正确
都是官方代码,就只改了管脚配置?
注意ulStatus定义的类型是否正确
没有执行这状态吧,看看你的CAN中断写了吗 else if(ulStatus == 1),先确认这个ulStatus的类型,是不是有机会等于1 其实这个操作你不必使用==号
你可以使用逻辑操作,ulStatus|0x01 楼主是不是硬件没有接好啊?
是不是没有初始化成功啊
初始化没有成功 当然就进不去了
因为一直没有那个状态发生啊
能到if语句里边吗
量一下 晶振起振了吗
初始化就没通过
能正常进入中断程序吗
页:
[1]
2