我打算做28335 对外实现双CAN 通信,那问题来了?
当我打算进行CAN 发送的时候,通过
while((ECanaRegs.CANTA.all ) != ulCANTRS)
来等待传输完成,如果对外CAN 设备连接良好,当然没有问题,软件不会始终停留在While 循环;
如果我已经发起了一次传输,这个时候我把外部CAN 设备给停掉或是拔掉,那这个While 循环始终跳不出去,即使我改成如下代码形式,
且if(g_CtrlInfo.us_EnableCANA == DISABLE_CANA) //CAN is disable 这个if 分支会满足,While 循环也退不出去;
这是为什么呢? 难道CAN 设备不在了,ECanaRegs.CANTA.all 这个寄存器都不能读?
我该怎么办呢?
while((ECanaRegs.CANTA.all ) != ulCANTRS)
{
//asm (" nop");
if(g_CtrlInfo.us_EnableCANA == DISABLE_CANA) //CAN is disable
{
//break;
ulCANTRS = 0;
}
}