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.

[参考译文] TMS320F28374S:CAN FIFO 演示和繁忙位问题

Guru**** 2680875 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1595624/tms320f28374s-can-fifo-demo-and-busy-bit-issue

器件型号: TMS320F28374S

尊敬的专家:

客户开发过程中存在 2 个问题:

  1. 需要 FIFO 模式演示代码:TI 的 F2837x TRM 介绍了可以使用数据缓冲区处理 CAN 消息、这是通过邮箱 RAM 重复使用和 CAN FIFO 缓冲区来实现的、但我在 SDK 中未找到演示代码、是否有任何演示代码指导客户如何配置 CAN 以在 FIFO 缓冲区模式下传输数据? 这将提高客户 CAN 消息处理效率。
  2. CAN 繁忙位无法指示 CAN 消息传输状态:

    客户使用以下代码发送一批数据、在代码中会轮询 CAN_IF1CMD_BUSY“来检查 CAN 是否空闲以及是否可以发送下一个 CAN 帧、但测试结果是、即使“CAN_IF1CMD_BUSY"位“位被清零、正确的 CAN 消息帧传输仍需要额外延迟、没有时间延迟、无法正确发送下一个 CAN 帧。

    UINT16_t CanTransmit (CanFrame* CanFrame)

    G_transmitTestCnt++;
    //轮询可以忙位
    if ((((CanaRegs.CAN_IF1CMD.all)& CAN_IF1CMD_BUSY)!= CAN_IF1CMD_BUSY){
    can_SetupMessageObject (12、canFrame->canId.all、
    CAN_MSG_FRAME_EXT、CAN_MSG_OBJ_TYPE_TX、0、
    CAN_MSG_OBJ_NO_FLAGS、CAN_DATA_NUM);
    //发送 8 个字节的数据
    CAN_SendMessage (12、CAN_DATA_NUM、canFrame->data);
    G_transmitTestCnt2+;
    返回 true;
    }
    返回 false;
    }

感谢并期待您的答复。

 

此致

Joe

 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好专家

    请提醒此主题。

    此致

    Joe