TMS320F28379S: 一个CAN,同时配置收发功能

Part Number: TMS320F28379S

可以只使用CANA_Base, 同时配置一个邮箱发送消息,另一个邮箱接受消息吗?

1.目前使用 CAN_setupMessageObject() 配置了两个邮箱,一个用于消息发送,一个用于消息接受:

CAN_setupMessageObject((CANA_BASE, 1, 0x200, CAN_MSG_FRAME_STD, CAN_MSG_OBJ_TYPE_TX, 0, CAN_MSG_OBJ_NO_FLAGS, 8);

CAN_setupMessageObject((CANA_BASE, 17, 0x100, CAN_MSG_FRAME_STD, CAN_MSG_OBJ_TYPE_RX, 0, CAN_MSG_OBJ_RX_INT_ENABLE, 8);

2. 在CAN_setupMessageObject()中,两次消息邮箱的配置,都会修改IF1接口寄存器中的值,也就是说第二次配置接受邮箱对象时,覆盖了发送邮箱的配置。

这导致,在我在接受到消息后要发送新的消息, 在CAN_sendMessage() 函数中,执行 msgCtrl = HWREGH(base + CAN_O_IF1MCTL) , 得到的 数据发送的位数)(CAN_IF1MCTL_DLC_M)为0,引发断言错误,从而无法发送数据。