工具与软件:
尊敬的:
因此、我使用以下代码向 MCAN 发送3条消息。
当我分步讲解时、全部3条消息都会显示在 CAN 总线上。
当它正在运行时(调用此路由之间的时间很短)、CAN 总线上仅出现一条通路。
我尝试了多种方法、例如检查 msg 是否已添加(使用 DL_MCAN_TXBufAddReq 返回值=0进行测试)。
代码:
bool canTxFifo (联合消息*txMessage)
{
DL_MCAN_TxEventFIFOStatus FIFoStatus;
Bool ret;
DL_MCAN_getTxEventFIFOStatus (MCAN0_INST、&fifoStatus);
如果(!fifoStatus.fifoFull)
{
txMsg.id = txMessage->can.id << 18u;
对于(uint32_t i = 0;i < 8;i++) txMsg.data[i]= txMessage->can.data[i];
DL_MCAN_writeMsgRam (MCAN0_INST、DL_MCAN_MEM_TYPE_FIFO、0、&txMsg);
DL_MCAN_TXBufAddReq (MCAN0_INST、0);
返回 true;
}
设计
返回 false;
}
非常感谢您的帮助!
