主题中讨论的其他器件:C2000WARE
尊敬的团队:
当客户测试 DCAN 模块时、他发现方向、仲裁位、长度等滤波功能没有使用、但是实际接收到的只有与仲裁位匹配的数据帧、并且不能接收到任何仲裁位的数据帧。
以下是配置代码、问题出在哪里?
初始化
//code_start
while (CANaRegs.CAN_IF1CMD.bit.BUSY = 1);
CanaRegs.CAN_IF1MSK.All= 0;
CanaRegs.CAN_IF1ARB.All= CAN_IF1ARB_MSGVAL;
CANaRegs.CAN_IF1MCTL.All= CAN_IF1MCTL_EOB;
CANaRegs.CAN_IF1CMD.All= m_u32MsgobjectID|CAN_IF1CMD_DIR|CAN_IF1CMD_CONTROL.CAN_IF1CMD_ARB; //m_u32RxMsgobjectID 是 邮箱编号
//code_end
2.接收部分代码:
//code_start
CANaRegs.CAN_IF2CMD.all = m_u32RxMsgobjectID|CAN_IF2CMD_DATA_A|CAN_IF2CMD_DATA_B|CAN_IF2CMD_CONTROL.CAN_IF2CMD_ARB;
while (CANaRegs.CAN_IF2CMD.bit.BUSY = 1);
读取DATA数据=(uint16)(CANaRegs.CAN_IF2DATA.All&0xFF)~~~~~~
CANaRegs.CAN_IF2CMD.all = m_u32RxMsgobjectID|CAN_IF2CMD_TXRQST; //m_u32RxMsgobjectID 是 邮箱编号
while (CANaRegs.CAN_IF2CMD.bit.BUSY = 1);
//code_end
此致、
绿色