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.

[参考译文] TMS320F28379D:CAN 中断

Guru**** 2462960 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1489773/tms320f28379d-can-interrupt

部件号:TMS320F28379D

工具/软件:

您好:

在我的应用程序中、我在第0行路由几个接收中断的邮箱。  

但今天我想添加错误输入。

检查 INT0ID 寄存器时、我想我能够区分两个中断源。 位我不确定是否理解参考手册:

值0x8000是否表示源是状态或错误、但指示 BusOff (我也不确定0x7是否表示 BusOff)、或者我们只能确保源不是 BusOff。

换言之、我是否应该检查 INT0ID=0x8000或 IT0ID==0000?

谢谢你

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

    DCAN 提供三组中断源:消息对象中断、状态更改中断和错误中断。  中断源可以由中断 寄存器中的中断标识符 int0ID/int1ID 确定。

    Unknown 说:
    值0x8000是否表示源是状态或错误但为 BusOff (我也不确定0x7是否表示 BusOff)、或者我们只能确保源不是 BusOff。

    Int0ID 字段中的值0x8000表示中断挂起、因为 CAN 内核已 更新错误和状态寄存器(错误中断或状态中断)。 该 中断具有最高优先级。  

    0x7表示 自 CPU 上次读取错误和状态寄存器以来未检测到 CAN 总线事件。 不限

    Unknown 说:
    换句话说、我应该检查 INT0ID==0x8000还是 IT0ID=0000吗?

    是的、您需要检查 INT0ID 以知道是否有任何错误。  

    错误中断只能路由到必须通过设置 CAN 控制寄存器中的 IE0来启用的中断线路 DCAN0INT