Инициализация CAN-контроллера и конфигурирования одного mailbox для входящих соединений. Используется библиотека StellarisWare.
Измените настройки в соответствии с используемыми GPIO, частотой CANbus.
Отправляется кадр той же функцией CANMessageSet().
CODE
#define RX_MSG_MBOX_ID 0
#define TX_MSG_MBOX_ID 1
#define CAN_BITRATE 250000
void
can_init(void) {
tCANMsgObject canMsgRx;
/* HW Initialization */
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);
SysCtlPeripheralEnable(SYSCTL_PERIPH_CAN0);
GPIOPinConfigure(GPIO_PB4_CAN0RX);
GPIOPinConfigure(GPIO_PB5_CAN0TX);
GPIOPinTypeCAN(GPIO_PORTB_BASE, GPIO_PIN_4 | GPIO_PIN_5);
CANInit(CAN0_BASE);
CANBitRateSet(CAN0_BASE, 8000000, CAN_BITRATE);
/* Interrupt handling */
CANIntEnable(CAN0_BASE, CAN_INT_MASTER | CAN_INT_ERROR);
IntEnable(INT_CAN0);
CANEnable(CAN0_BASE);
/* Init Message Object */
canMsgRx.ulMsgID = 0x00;
canMsgRx.ulMsgIDMask = 0x00;
canMsgRx.ulFlags = MSG_OBJ_RX_INT_ENABLE | MSG_OBJ_USE_ID_FILTER;
canMsgRx.ulMsgLen = 8;
canMsgRx.pucMsgData = g_canDataRx;
CANMessageSet(CAN0_BASE, RX_MSG_MBOX_ID, &canMsgRx, MSG_OBJ_TYPE_RX);
}