TI中文支持网
TI专业的中文技术问题搜集分享网站

28377D CAN模块无法收发数据

在使用can_loopback_cpu1例程时,程序启动了CAN A模块,并自发自收。根据手册,可以看出can模块内部Tx和Rx是连接在一起的。

现在我将该例程进行了改进,按照例程的模板,启动了CAN B模块,通过外部导线将CAN A与CAN B的H L信号线连接在一起。

同时,屏蔽了以下代码:

HWREG(CANA_BASE + CAN_O_CTL) |= CAN_CTL_TEST;
HWREG(CANA_BASE + CAN_O_TEST) = CAN_TEST_EXL;

HWREG(CANB_BASE + CAN_O_CTL) |= CAN_CTL_TEST;
HWREG(CANB_BASE + CAN_O_TEST) = CAN_TEST_EXL;

此时,我通过发送指令:

CANMessageSet(CANA_BASE, 1, &sCANATXCANMessage, MSG_OBJ_TYPE_TX);
CANMessageSet(CANB_BASE, 3, &sCANBTXCANMessage, MSG_OBJ_TYPE_TX);

与接收指令:

CANMessageGet(CANA_BASE, 2, &sCANARXCANMessage, true);
CANMessageGet(CANB_BASE, 4, &sCANBRXCANMessage, true);

发现两个CAN模块无法发送与接收。但如果启动这段代码:

HWREG(CANA_BASE + CAN_O_CTL) |= CAN_CTL_TEST;
HWREG(CANA_BASE + CAN_O_TEST) = CAN_TEST_EXL;

HWREG(CANB_BASE + CAN_O_CTL) |= CAN_CTL_TEST;
HWREG(CANB_BASE + CAN_O_TEST) = CAN_TEST_EXL;

模块又可以正常工作,并且两个CAN模块收到的都是自己发送出去的数据。

想请教一下,我该如何修改例程,可以使CAN模块正常工作?

赞(0)
未经允许不得转载:TI中文支持网 » 28377D CAN模块无法收发数据
分享到: 更多 (0)