This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

在线等:28335 CAN 发送问题



我打算做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;
}
}