主题中讨论的其他器件:LAUNCHXL-F28379D
工具/软件:
您好、
我正在使用 LAUNCHXL-F28379D 进行 CAN 通信。
我使用了示例代码 can_ex2_loopback_interrupts 、其中我通过对中断进行注释并使用 can_msg_obj_no_flags 配置 can_setupMessageObject 来绕过所有中断。
我尝试在不使用中断的情况下发送 CANopen SDO 数据包、并 探测了 CAN_H 和 CAN_L 我观察到、SDO 数据包只有在从 main 函数退出后才会传输、并且它会连续传输、尽管没有 while 循环或无限 for 循环位于 main 函数内部、没有调用中断 、并且在其他示例代码中也具有相同的行为。 此外,在发送各种其他函数,如 NMT handle 和 PDO 配置数据包被多次传输,这会导致 CANopen 实现中的问题。
我想逐个发送数据包,因为我必须实现完整的 CAN 开放协议,以及为什么数据包只在退出主循环后才发送,为什么不立即在函数调用后,并因此有问题在 CANopen 实现和为什么传输是在并发无限循环发生,即使在从电机驱动器接收确认后.
请提供有关这些问题的说明,这是一个错误还是为什么要观察此行为 。 我只提供基本代码。
请将其列为最高优先事项,我也已在早些时候发布。
代码截图附在下面以供参考。

