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.

[参考译文] RM57L843:CAN 报文对象的 NewDat 位

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1476773/rm57l843-newdat-bit-of-the-can-the-message-object

器件型号:RM57L843
主题中讨论的其他器件:HALCOGEN

工具与软件:

您好!

HALCOGEN 创建的'canGetData'函数将 IF2置位、在读取数据之前将报文对象中的 NewDat 位清零。  我认为硬件在 NewDat 位被清零前、把报文对象中的数据载入 IF2;否则、如果有一条新的报文到达、该报文将丢失或与一条新的报文混合起来。 是这样吗?

另一个问题:我的程序可以直接读取消息目标吗? 我的意思是、它能测试 NewDat 位、读取数据、然后清除 NewDat 位吗? 程序应在何时使用 IF1/IF2?"

此致、

Marcio

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

    尊敬的 Marcio:

    [报价 userid="213328" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1476773/rm57l843-newdat-bit-of-the-can-the-message-object HALCOGEN 创建的'canGetData'函数将 IF2设置为在读取数据前清除报文对象中的 NewDat 位。  我认为硬件在 NewDat 位被清零前、把报文对象中的数据载入 IF2;否则、如果有一条新的报文到达、该报文将丢失或与一条新的报文混合起来。 正确吗?

    一旦内核开始读取 CAN 消息对象、可能就不会发生消息混合、因为内核工作频率与 CAN 波特率相比非常高。

    最大 CAN 波特率只有高达1Mbps、而内核频率可高达330MHz、因此、一旦内核开始读取 CAN 消息对象、就没有机会混频消息。

    Unknown 说:
    另一个问题:我的程序能直接读取报文对象吗? 我的意思是、它能测试 NewDat 位、读取数据、然后清除 NewDat 位吗? 程序应在何时使用 IF1/IF2?"[/QUOT]

    您可以这样做、

    您能否请参考以下主题、了解驱动程序是如何使用 IF1和 IF2的:

    (+) RM44L920:CAN IF1/IF2寄存器复位-基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛

    (+) TMS570LS3137:DCAN 模块消息框根据奇偶校验而定。 -基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛

    ——
    谢谢、此致、
    Jagadish。