下面是我写的邮箱 0 的接收代码:
while(ECanbRegs.CANRMP.bit.RMP0 == 1)
{
ECanbMboxes.MBOX0.MDL.all = CAN_RX_BUF_L[0];
ECanbMboxes.MBOX0.MDH.all = CAN_RX_BUF_H[0];
ECanbShadow.CANRMP.bit.RMP0 = 1;
ECanbRegs.CANRMP.all = ECanbShadow.CANRMP.all;
}
接着下面是一部分发送代码:
ECanbMboxes.MBOX6.MDL.all = CAN_TX_BUF_L[0]; ECanbMboxes.MBOX6.MDH.all = CAN_TX_BUF_H[0]; while(ECanbRegs.CANTA.all != 0x3c0); ECanbShadow.CANTA.all = 0x3c0; ECanbRegs.CANTA.all = ECanbShadow.CANTA.all;
这段代码实现CAN收发是绝对没问题的。但是现在 技术总监 告诉我说,
不允许用 while 循环,说万一收发有问题, 程序在一直在 while 循环里跑了。
请问这要如何是好?
