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.
工具/软件:Code Composer Studio
您好!
我们使用的是 TI CAN 转以太网 TIDA-00203参考设计。 该演示使用 CAN1与 DK-TM4C123G 进行通信。 我们让它发挥作用。 我们需要使用 CAN0进行测试、因此我们需要对代码进行小幅更改。 我们复制了 TIDA-00203板上的电路、将 CAN 收发器添加到板上的扩展连接器、因此 CAN0TX 和 CAN1RX 与评估板上的 CAN1接口具有相似的电路。 我们尝试通过从 DK-TM4C123G 发送一条 CAN 消息来运行同一个演示、但现在要发送到 扩展连接器上的"CAN0"接口。 我们看到数据包在 TP7上进入 CAN0RX、 但我们没有到达 CAN1IntHandler 中的断点。
1) 1)我们将代码中的 CAN1_base 更改为 CAN0的地址、而不是 hw_memmap.h 中的地址(这样、我们对代码的更改将非常小)
#define CAN1_BASE 0x40040000 // CAN1 0x40041000、CAN0 0x40040000
2) 2)我们在 CAN1InHandler 函数中修补为 CAN0的 ISR、方法是更改 tm4c129xnczad_startup_ccs.c 中的以下内容:
IntDefaultHandler、 // CAN0
CAN1IntHandler、 // CAN1
至:
CAN1IntHandler、 // CAN0
CAN1IntHandler、 // CAN1
现在、如果 CAN 数据包在 CAN0上进入、它将向 CAN1IntHandler 发送数据(不过这不起作用)。
3) 3)我们尝试在端口 T 寄存器中为 CAN0启用正确的备用功能,并将注释行替换为以下未注释行:只有 CAN1TX 和 CAN1RX 在演示代码中启用 ,因此我们启用了 CAN0TX 和 CAN0RX:
// GPIO_PORTT_AFSEL_R |= 0x0C;//原始
GPIO_PORTT_AFSEL_R |= 0x0F;//添加了 Todd
// GPIO_PORTT_DEN_R |= 0x0C;//原始
GPIO_PORTT_DEN_R |= 0x0F;//添加了 Todd
// GPIO_PORTT_PCTL_R |= 0X7700;//原始
GPIO_PORTT_PCTL_R |= 0X7777;//添加了 Todd
对电路板进行重新编程后、数据包通过 CAN0收发器进入 CAN0接口、并进入 MCU 上的 CAN0RX (我们 可以在 TP7上看到)。
为什么 我们没有在 CAN1INTHandler()中获得中断/到达断点?
谢谢、
Todd