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.

[参考译文] TMS320F280025C:库函数的 CAN 发送功能无法解释地发送远程帧

Guru**** 2430620 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1069673/tms320f280025c-the-can-sending-function-of-the-library-function-inexplicably-sends-remote-frames

部件号:TMS320F280025C
“线程:测试”中讨论的其它部件

库函数的 CAN 发送函数无法解释地发送远程 framese2e.ti.com/.../CAN_5F00_TEST_5F00_REMOTE.rar

CAN 的初始化设置为所有数据帧,并且未设置远程帧。 当280025接收大量 CAN 数据帧,而280025发送大量数据帧时,远程帧由发送功能发送

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

    您好,谢谢您的帮助。  为纪念马丁·路德·金博士节,请期待在漫长的周末作出答复。  此致,克利须那

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

                   我们无法在论坛上支持调试您的项目。 但是,我们可以提供一些有用的提示/建议。  

    生成远程帧的唯一方法是为接收消息对象设置 TxRqst 位。 请仔细检查您的项目,看看是否会无意中发生这种情况。

    您如何确定远程帧正在传输? 您是否使用 CAN 总线分析仪工具对其进行了监控?

    请 参考 www.ti.com/lit/sprace5中的示例 ,了解如何有意生成和响应远程帧。

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

    我怀疑 TI 的库函数有问题,因为在 CAN 初始化中,CAN_ setupMessageObject (Cana_base, 5, 0x060F8003, CAN_MSG_frame-relay,

    CAN_ MSG_ OBJ_ TYPE_ TX,0,CAN_ MSG_ OBJ_ NO_标志,

    8);倒数第二个参数设置为 CAN_ MSG_OBJ_ NO_标志,CAN_ Sendmessage()如果设置为 CAN_ MSG_ OBJ_ USE EXT_过滤器时不发送远程帧,CAN_ SendMessage ()将发送远程帧, 我上载了项目,希望您能帮助我们确认问题发生在上面

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

    您尚未回答我的问题“您如何确定远程帧正在传输? 您是否使用 CAN 总线分析仪工具对其进行了监控?"  

    我不理解您所说的“如果将远程帧设置为在过滤器时可以发送出去,那么将不发送出去的帧,CAN 发送消息()将发送远程帧”。 请澄清。

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

    我使用 CAN 分析工具检测远程帧。 我的 CAN 初始化只能在 CAN 邮箱设置为是时发送数据帧

    CAN_ setupMessageObject (Cana_base,1,0x070F8003,CAN_MSG_frame-relay,CAN_MSG_OBJ_TYPE_RX,0xFFF7F803,CAN_MSG_OBJ_USE_ID_FILTER,8); 倒数第二个参数是 CAN_ MSG_ OBJ_ use_ID_ Filter,如果它设置为 CAN_ MSG_ OBJ_ NO_,则很容易出现问题,因为标志问题可以解决,所以您可以查看我的代码以及问题发生的位置。 我已经联系过中国的技术人员,他们说你

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

    Can analyzer initialization28025 sends data framesThe can analysis tool sends a large number of data frames280025 start sending remote frames

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="510589" url="~ë/support/icc-intrlers-group/CC2000 /f/c2000 -微控制器-forum/1069673/tms320f280025c-the_CAN-sending 函数库函数不可解释地设置 MSG 发送远程帧/3960289#3960289" can_800_f_ref_c___3_f_f_ex__f_f_abus___ex___3_ex_ex__ex_ex____ex____exctrab_obj___ex____________ex__ex____3_ex_ex____ 倒数第二个参数是 CAN_ MSG_ OBJ_ use_ID_ Filter,如果它设置为 CAN_ MSG_ OBJ_ NO_,则很容易出现问题,因为标志问题可以解决,所以您可以查看我的代码以及问题发生的位置。 我已经联系过中国的技术人员,他们说您[/引述]

    你的信息突然结束,所以我不知道你想说什么。 无论如何,通过函数调用,我了解了如何将 Message_object1用作扩展 ID 为0x070F8003的接收对象,以及掩码为0xFFF7F803的接收对象。 您是否正在尝试假设倒数第二个参数是 CAN_MSG_OBJ_NO_Fags,那么消息对象偶尔会传输远程帧?

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

    [引用] Can analyzer initialization28025 sends data framesThe can analysis tool sends a large number of data frames280025 start sending remote frames[/引用]

    我不理解上述内容。 您是否尝试附加图像?

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

    倒数第二个参数设置为 CAN_ MSG_ OBJ_ USE _ ID_ Filter,CAN 传输功能容易受到远程帧的影响。 倒数第二个参数设置为 CAN_ MSG_ OBJ_ NO_标记,他不会发送远程帧。 所以我想了解原因

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

    因此,您将 Message_object1用作扩展 ID 为0x070F8003的接收对象,掩码为0xFFF7F803。 您是否在说,如果倒数第二个参数是 CAN_MSG_OBJ_USE_ID_FILTER,则消息对象偶尔会传输一个远程帧? 如前所述,只有在设置了远程帧的 TxRqst 位时,远程帧才会从接收邮件对象传输。 请浏览您的代码以查看是否发生这种情况。 在您发送的项目中,我只看到两个传输消息对象的初始化。 它与您在帖子中包含的代码片段不匹配。

    CAN_setupMessageObject(CANA_BASE, 5, ECanaMboxes.MBOX4.MSGID.all, CAN_MSG_FRAME_EXT,
                               CAN_MSG_OBJ_TYPE_TX, 0, CAN_MSG_OBJ_USE_EXT_FILTER,  //模块到监控
                               8);
        CAN_setupMessageObject(CANA_BASE, 6, ECanaMboxes.MBOX5.MSGID.all, CAN_MSG_FRAME_EXT,         //模块到模块
                               CAN_MSG_OBJ_TYPE_TX, 0, CAN_MSG_OBJ_USE_EXT_FILTER,
                               8);