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.

TMS320F280049C: 280049C

Part Number: TMS320F280049C

can通信自环回模式的

CAN_setupMessageObject(CANA_BASE, 1, 0x18102701, CAN_MSG_FRAME_EXT,
CAN_MSG_OBJ_TYPE_TX, 0x0, CAN_MSG_OBJ_NO_FLAGS ,
MSG_DATA_LENGTH);

// Initialize the receive message object used for receiving CAN messages.
// Message Object Parameters:
// Message Object ID Number: 2
// Message Identifier: 0x1234
// Message Frame: Standard
// Message Type: Receive
// Message ID Mask: 0x0
// Message Object Flags: None
// Message Data Length: 2 Bytes

CAN_setupMessageObject(CANA_BASE, 2, 0x18222701, CAN_MSG_FRAME_EXT,
CAN_MSG_OBJ_TYPE_RX, 0x1FF0FFFF, CAN_MSG_OBJ_USE_EXT_FILTER,
MSG_DATA_LENGTH);这个函数写寄存器为什么读和写都是使能IF1N呢?

如此段写出寄存器来编程消息对象
HWREG_BP(base + CAN_O_IF1MSK) = maskReg;
HWREG_BP(base + CAN_O_IF1ARB) = arbReg; 
HWREG_BP(base + CAN_O_IF1MCTL) = msgCtrl; 

而在读的时候怎么使用的是IF2呢?在初始化阶段都没有对IF2进行初始化,就直接调用了这个是什么情况呢?

CAN_readMessage(uint32_t base, uint32_t objID,
uint16_t *msgData)
{
bool status;
uint16_t msgCtrl = 0U;
ASSERT(CAN_isBaseValid(base));
ASSERT((objID <= 32U) && (objID != 0U));
HWREG_BP(base + CAN_O_IF2CMD) =((uint32_t)CAN_IF2CMD_DATA_A |
(uint32_t)CAN_IF2CMD_DATA_B |(uint32_t)CAN_IF2CMD_CONTROL |
(objID & CAN_IF2CMD_MSG_NUM_M) |(uint32_t)CAN_IF2CMD_ARB);
//