客户投诉 CAN 控制器中的仅监听模式无法正常工作、
客户 已确认其为真... 但有时它会起作用。
它们 跟踪到 CANTST 寄存器中的位(见下文)
寄存器6:CAN 测试寄存器(CANTST)、偏移量0x014、与 CANnRx 位相关。 当该位置位时、即使寄存器设置为监听模式、车辆也始终检测到确认。 当该位清零时、车辆未检测到侦听器。 他们无法在文档中看到如何清除此位。 有人能澄清吗?
此外、在 TI 例程库中: CANBitTimingSet
该例程错误地将 CAN 控制器从初始化模式中退出。
ui32SavedInit 是保存在例程开始时的原始值
//
//如果以前未设置 Init,则将其清除。
//
if (ui32SavedInit 和 CAN_CTL_init)
{
ui32SavedInit &=~CAN_CTL_init;
}
这应该是(因为初始值可能已清除此位)
//
//如果以前未设置 Init,则将其清除。
//
if (!(ui32SavedInit & CAN_CTL_init))
{
ui32SavedInit &=~CAN_CTL_init;
}