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.

[参考译文] CCS/TM4C123GH6PZ:Tiva CAN_Interface 问题

Guru**** 2478765 points
Other Parts Discussed in Thread: EK-TM4C123GXL

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/689149/ccs-tm4c123gh6pz-tiva-can_interface-issue

器件型号:TM4C123GH6PZ
Thread 中讨论的其他器件:EK-TM4C123GXL

工具/软件:Code Composer Studio

您好!

  1. 我们尝试在 CAN 总线上通信两个 Tiva 控制器。
  2. 从 Tiva 库中使用的示例代码
  3. 一个控制器加载示例 Tx 代码。
  4. 另一个加载示例 Rx 代码的控制器。

 

问题:

       通信开始时、程序进入错误状态。

 

错误:

       随附错误屏幕截图供您参考。

 

请提供进一步的建议。

谢谢、

Sunil S

e2e.ti.com/.../AUMA.docx

 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    从函数 CANStatusGet ()返回的状态表示 CAN 总线有问题。 您是否正确使用了具有端接电阻器的 CAN 收发器来连接两个控制器的 CAN? 控制器的 CANTX 和 CANRX 管脚无法正确地直接连接到另一个控制器。

    以下是有关 CAN 总线和 TI CAN 收发器的一些信息: www.ti.com/.../sloa101b.pdf
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的,谢谢,在正确的终止后。
    我正在使用 CAN ID 0x1001和4个字节从 TX 发送数据。
    1.现在接收器从发送器获取数据一次。
    2.即使在传输完成后也是如此。 接收器接收到 CAN ID 为0x1001且数据长度为"0"的数据包。 接收器处于连续接收模式。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    示例程序 simple_tx.c 传输连续帧,因为 CANMessageSet()函数位于 while (1)循环中。 您是否修改了 simple_tx 或 simple_Rx 例程?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的、
    修改了 simple_tx 例程。 从 while 中删除,现在每隔一秒使用 CANMessageSet()函数发送数据。
    保持 simple_Rx 例程不变。

    图像随附以供您参考。

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

    等待良好的响应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果您"提供了包含在中的代码、"修改的 simple_tx.c"例程中的代码、那么"良好"响应是否会更好-结果更好?"
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我已经验证了使用 EK-TM4C123GXL Launchpad 以及连接 PB4 (CAN0RX)和 PB4 (CAN0TX)的外部 CAN 收发器的 TivaWare 版本2.1.4.178中的 CAN 编程 SIMPLE_Rx.c 和 SIMPLE_TX.c。 如下面的片段所示、连续消息每秒传输和接收一次、没有错误。 我唯一的结论是您的硬件设置或修改后的软件中存在问题。 如果您需要其他帮助、您需要为我提供有关您的代码和设置的更多详细信息。

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

    e2e.ti.com/.../can_5F00_code_5F00_transmit_5F00_modified.txtokay、
    您能给我发送代码吗?

    我在此附上代码。 已修改  

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

    在"CAN_CODE_Transmit _modified"文件中、您还修改了 CAN 波特率。 在您的文件中、它设置为500K 波特。 在 TI 示例"simple_RX"中、波特率为100K 波特。 我通过将波特率更改为100K 波特修改了您的文件(并删除了某些头文件的冗余内容)。 修改后的版本现在可以与 TI 示例"simple_RX"正常配合使用。

    /cfs-file/__key/communityserver-discussions-components-files/908/can_5F00_code_5F00_transmit_5F00_modified.c

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

    您好!

    您能不能共享您的代码

    和 TX。

    谢谢。

    Mallikarjuna。

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

    是的、我附加了一个.zip 文件、其中包含两个 CCS 项目:DK-CAN_SIMPLE_RX 和 DK-CAN_SIMPLE_TX。 唯一的修改是、它们使用 CAN0的引脚 PE4和 PE5、就像您提供的文件一样。 使用 CCS 函数"File"->"Import"、"CCS Projects"和"Select archive file"将这两个工程添加到您的工作区。

    /cfs-file/__key/communityserver-discussions-components-files/908/DK_2D00_CAN_2D00_Simple.zip

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

    尊敬的 Bob Crosby :

    感谢您共享代码。 我将测试并更新状态。

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

    1.您发送的代码运行正常。(DK_Simple zip)

    2.您修改和指定的代码不起作用。(我发送给您进行检查、您修改了波特率和标头)。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Bob Crosby:

    (2.您修改和指定的代码不起作用。(我发送给您进行检查、您修改了波特率和标头)。
    查看您的代码后、将 driverlib 从 TivaWare_C_Series-2.1.3.156更新为 TivaAware _C_Series-2.1.4.178、并发现它可以正常工作。

    非常感谢您投入宝贵的时间和编写代码。
    最后,它按预期工作。