请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:EK-TM4C123GXL 您好!
MSG_OBJ_DATA_LOST 标志被置位、但永远不会被 CANMessageGet 清除。
我尝试 了 e2e.ti.com/.../159509 、但没有发生任何情况。
我的代码是:
while (1)
{
ROM_CANMessageSet (CAN0_BASE、TXOBJECT、&g_sCAN0TxMessage、MSG_OBJ_TYPE_TX_REMOTE);
延迟(50);//等待100ms
if (g_ui32勘误标志!= 0)
{//检查错误
//UARTprintf ("CAN 总线错误\n");
CANErrorHandler();
}
if (g_bRXFlag)
{//发生 Rx 中断
G_sCAN0RxMessage.pui8MsgData = msgData;//设置指向 Rx 缓冲区的指针
ROM_CANMessageGet (CAN0_BASE、RXOBJECT、&g_sCAN0RxMessage、MSG_OBJ_TYPE_RX);//从 CAN 外设读取 CAN 消息对象 RXOBJECT
G_bRXFlag = 0;//清除 Rx 标志
if (!(g_sCAN0RxMessage.ui32Flags & MSG_OBJ_DATA_LOST))
{
UARTprintf ("CAN_ID:0x%2x\t"、g_sCAN0RxMessage.ui32MsgID);
UARTprintf ("数据:%02x %02x %02x %02x\n"、msgData[3]、msgData[2]、msgData[1]、msgData[0]);
}
其他
{
G_sCAN0RxMessage.ui32Flags &&~MSG_OBJ_DATA_LOST;
ROM_CANMessageGet (CAN0_BASE、RXOBJECT、&g_sCAN0RxMessage、MSG_OBJ_TYPE_RX);
}
}
点击次数。
此致
安德烈斯