u32 platform_can_setup( unsigned id, u32 clock ) { GPIOPinConfigure(GPIO_PD0_CAN0RX); GPIOPinConfigure(GPIO_PD1_CAN0TX); MAP_GPIOPinTypeCAN(GPIO_PORTD_BASE, GPIO_PIN_0 | GPIO_PIN_1); MAP_CANDisable(CAN0_BASE); CANBitRateSet(CAN0_BASE, LM3S_CAN_CLOCK, clock ); MAP_CANEnable(CAN0_BASE); return clock; }
void cans_init( void ) { GPIOPinConfigure(GPIO_PD0_CAN0RX); GPIOPinConfigure(GPIO_PD1_CAN0TX); MAP_GPIOPinTypeCAN(GPIO_PORTD_BASE, GPIO_PIN_0 | GPIO_PIN_1); MAP_SysCtlPeripheralEnable( SYSCTL_PERIPH_CAN0 ); MAP_CANInit( CAN0_BASE ); CANBitRateSet(CAN0_BASE, LM3S_CAN_CLOCK, 500000); 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 = 8; MAP_CANMessageSet(CAN0_BASE, 1, &can_msg_rx, MSG_OBJ_TYPE_RX); }
//***************************************************************************** void PortFunctionInit(void) { // // Enable Peripheral Clocks // MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_SSI0); MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_CAN0); MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA); MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB); MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE); MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF); // // Enable port PE5 for CAN0 CAN0TX // MAP_GPIOPinConfigure(GPIO_PE5_CAN0TX); MAP_GPIOPinTypeCAN(GPIO_PORTE_BASE, GPIO_PIN_5); // // Enable port PE4 for CAN0 CAN0RX // MAP_GPIOPinConfigure(GPIO_PE4_CAN0RX); MAP_GPIOPinTypeCAN(GPIO_PORTE_BASE, GPIO_PIN_4); // // Enable port PB0 for GPIOOutput // MAP_GPIOPinTypeGPIOOutput(GPIO_PORTB_BASE, GPIO_PIN_0); // // Enable port PB6 for GPIOInput // MAP_GPIOPinTypeGPIOInput(GPIO_PORTB_BASE, GPIO_PIN_6); // // Enable port PF4 for GPIOInput // MAP_GPIOPinTypeGPIOInput(GPIO_PORTF_BASE, GPIO_PIN_4); // // Enable port PF0 for GPIOInput // // //First open the lock and select the bits we want to modify in the GPIO commit register. // HWREG(GPIO_PORTF_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY_DD; HWREG(GPIO_PORTF_BASE + GPIO_O_CR) = 0x1; // //Now modify the configuration of the pins that we unlocked. // MAP_GPIOPinTypeGPIOInput(GPIO_PORTF_BASE, GPIO_PIN_0); // // Enable port PF3 for GPIOOutput // MAP_GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_3); // // Enable port PF2 for GPIOOutput // MAP_GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_2); // // Enable port PF1 for GPIOOutput // MAP_GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_1); // // Enable port PA3 for SSI0 SSI0FSS // MAP_GPIOPinConfigure(GPIO_PA3_SSI0FSS); MAP_GPIOPinTypeSSI(GPIO_PORTA_BASE, GPIO_PIN_3); // // Enable port PA2 for SSI0 SSI0CLK // MAP_GPIOPinConfigure(GPIO_PA2_SSI0CLK); MAP_GPIOPinTypeSSI(GPIO_PORTA_BASE, GPIO_PIN_2); // // Enable port PA4 for SSI0 SSI0RX // MAP_GPIOPinConfigure(GPIO_PA4_SSI0RX); MAP_GPIOPinTypeSSI(GPIO_PORTA_BASE, GPIO_PIN_4); // // Enable port PA5 for SSI0 SSI0TX // MAP_GPIOPinConfigure(GPIO_PA5_SSI0TX); MAP_GPIOPinTypeSSI(GPIO_PORTA_BASE, GPIO_PIN_5); }