工具/软件:Code Composer Studio
这是:ID / MASK / FLAG / DLC / buffer array 下面使用的结构的初始值
#define ACUReqMsg1_Default{0x1、0、MSG_OBJ_RX_INT_ENABLE、8、ACUReqID1.Msg_Data_Buffer}
#define ACUReqMsg2_Default{0x2、0、MSG_OBJ_RX_INT_ENABLE、8、ACUReqID2.Msg_Data_Buffer}
#define ACUReqMsg3_Default{0x3、0、MSG_OBJ_RX_INT_ENABLE、8、ACUReqID3.Msg_Data_Buffer}
#define ACUReqMsg4_Default{0x4、0、MSG_OBJ_RX_INT_ENABLE、8、ACUReqID4.Msg_Data_Buffer}
#define ACUReqMsg5_Default{0x5、0、MSG_OBJ_RX_INT_ENABLE、8、ACUReqID5.Msg_Data_Buffer}
#define ACUReqMsg6_Default{0x6、0、MSG_OBJ_RX_INT_ENABLE、8、ACUReqID6.Msg_Data_Buffer}
#define ACUPubMsg1_Default{0x7、0、MSG_OBJ_NO_FLAGS、8、ACUPubID7.Msg_Data_Buffer}
#define ACUPubMsg2_Default{0x8、0、MSG_OBJ_NO_FLAGS、8、ACUPubID8.Msg_Data_Buffer}
#define ACUPubMsg3_Default{0x9、0、MSG_OBJ_NO_FLAGS、8、ACUPubID9.Msg_Data_Buffer}
#define ACUPubMsg4_Default{0xA、0、MSG_OBJ_NO_FLAGS、8、ACUPubIDA.Msg_Data_Buffer}
函数配置、邮箱7/8/9/10设置远程帧自动应答:
空 配置 CAN_CR250 (空)
{
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOE);// GPIOE 上的 CAN0
GPIOPinConfigure (GPIO_PE6_CAN0RX);//CANRXA
GPIOPinConfigure (GPIO_PE7_CAN0TX);//CANTXA
GPIOPinTypeCAN (GPIO_Porte _BASE、GPIO_PIN_6 | GPIO_PIN_7);
SysCtlPeripheralEnable (SYSCTL_Periph_CAN0);
CANInit (CAN0_BASE);
//正常操作模式,初始化,软件复位,复位所有报文对象,清除中断挂起位
CANClkSourceSelect (CAN0_BASE、CAN_CLK_M3);//使用 M3系统时钟
CANBitRateSet (CAN0_BASE、SysCtlClockGet (system_clock_speed)、50000);
//控制消息
CANMessageSet (CAN0_BASE、1、&ACUReqMsg1_CR250、MSG_OBJ_TYPE_RX);
CANMessageSet (CAN0_BASE、2、&ACUReqMsg2_CR250、MSG_OBJ_TYPE_RX);
CANMessageSet (CAN0_BASE、3、&ACUReqMsg3_CR250、MSG_OBJ_TYPE_RX);
CANMessageSet (CAN0_BASE、4、&ACUReqMsg4_CR250、MSG_OBJ_TYPE_RX);
CANMessageSet (CAN0_BASE、5、&ACUReqMsg5_CR250、MSG_OBJ_TYPE_RX);
CANMessageSet (CAN0_BASE、6、&ACUReqMsg6_CR250、MSG_OBJ_TYPE_RX);
//状态消息
CANMessageSet (CAN0_BASE、7、&AUPubMsg1_CR250、MSG_OBJ_TYPE_RxTxREMOTE);
CANMessageSet (CAN0_BASE、8、&AUPubMsg2_CR250、MSG_OBJ_TYPE_RxTxREMOTE);
CANMessageSet (CAN0_BASE、9、&AUPubMsg3_CR250、MSG_OBJ_TYPE_RxTxREMOTE);
CANMessageSet (CAN0_BASE、10、&AUPubMsg4_CR250、MSG_OBJ_TYPE_RxTxREMOTE);
CANIntEnable (CAN0_BASE、CAN_INT_MASTER | CAN_INT_ERROR | CAN_INT_STATUS);
//在中断线路 CANOINT/CAN1INT 上启用错误和状态中断以及中断
IntRegister (INT_CAN0INT0、CANIntHandler0);//设置 NVIC 上的中断处理程序
IntEnable (INT_CAN0INT0);//使能可在 NVIC 上中断
CANEnable (CAN0_BASE);//未初始化以启用 CAN
}
3、测试数据如下:发送0xA 远程帧后、返回的数据帧为0x8
黄色表示发送
绿色表示接收