u32 platform_can_setup( unsigned id, u32 clock ) { MAP_GPIOPinConfigure(GPIO_PD0_CAN0RX); MAP_GPIOPinConfigure(GPIO_PD1_CAN0TX); MAP_GPIOPinTypeCAN(GPIO_PORTD_BASE, GPIO_PIN_0 | GPIO_PIN_1); MAP_CANDisable(CAN0_BASE); MAP_CANBitRateSet(CAN0_BASE, LM3S_CAN_CLOCK, clock ); MAP_CANEnable(CAN0_BASE); return clock; }
void cans_init( void ) { MAP_SysCtlPeripheralEnable( SYSCTL_PERIPH_CAN0 ); MAP_CANInit( CAN0_BASE ); MAP_CANBitRateSet(CAN0_BASE, LM3S_CAN_CLOCK, CAN_INIT_SPEED); MAP_CANIntEnable( CAN0_BASE, CAN_INT_MASTER | CAN_INT_ERROR | CAN_INT_STATUS ); MAP_IntEnable(INT_CAN0); MAP_CANEnable(CAN0_BASE); // Configure default catch-all message object can_msg_rx.ulMsgID = 0; can_msg_rx.ulMsgIDMask = 0; can_msg_rx.ulFlags = MSG_OBJ_RX_INT_ENABLE | MSG_OBJ_USE_ID_FILTER; can_msg_rx.ulMsgLen = PLATFORM_CAN_MAXLEN; MAP_CANMessageSet(CAN0_BASE, CAN_MSG_OBJ_RX, &can_msg_rx, MSG_OBJ_TYPE_RX); }
void CANController::setBitrate(CAN::bitrate_t bitrate) { _bitrate = bitrate; MAP_CANBitRateSet(_base, MAP_SysCtlClockGet(), bitrate); }