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.
您好、香榭丽舍
我的客户正在将 CanOpen 堆栈移植到 F28075。 它们的接收邮箱设置如下。
CANID = 0x702、标准帧模式。
MSG_OBJ_TYPE_RX_REMOTE 、这意味着此邮箱可以接收远程帧。
代码将检查接收到的帧是否为远程帧。 有一个 PC GUI、USB 转 CAN 工具用于对其进行调试。 如果使用 CANID = 0x702发送远程请求、他们发现只有一次成功发送数据帧。 第二次、PC 可以跳转到由接收标志触发的 ISR、而不是由接收邮箱触发的 ISR。
由于 CANopen 堆栈、它们无法使用 MSG_obj_type_RxTx_remote。 配置代码和 ISR 如下所示。
e2e.ti.com/.../CAN_5F00_Dispose.c
您是否愿意帮助检查根本原因?
非常感谢。
BR,
年轻
年轻、
我很遗憾,我不能准确理解问题是什么。 我知道一个标准 MSGID 为0x702的邮箱被配置为接收远程帧、并且在第一次接收远程帧时工作正常、从中断被置为有效的意义上讲。 我不明白"第二次、PC 可以跳转到由接收标志触发的 ISR、而不是由接收邮箱触发的 ISR。" 请澄清。 此外、让客户将代码调整到仍然显示问题的最起码值。 如果传输数据帧而不是远程帧、行为是否会有所不同?
感谢您的回答、我是客户、本段应描述为"一个将 STD MSGID 为0x702的邮箱配置为接收远程帧、并且在第一次接收远程帧时工作正常、当我收到此远程帧时、 我控制 TMS320F28075以响应具有相同 ID 的数据帧、并且它第一次运行良好。
但第二次、PC 发送与远程帧相同的 MSGID、TMS320F28075将不会接收远程帧、它只会跳转到由接收标志触发的 ISR、而不是由接收邮箱触发的 ISR。"
邮箱分配如下:
1、2、3、4、5 --发送邮箱用作轮询
6、7、8、9、10 --接收邮箱
发送数据帧性能良好。
我将代码剪裁到最下面的最小部分,它有同样的问题。
1 μ s、TMS320F28075只接收远程帧、并且不响应数据帧、我发现它运行良好
2、如果 TMS320F28075接收到一个远程帧、并且为了响应一个具有不同 ID 的数据帧、我发现它运行良好
3 μ s、TMS320F28075接收到一个远程帧、并且为了响应一个具有相同 ID 的数据帧、我发现它只在第一次运行时运行良好。