void uartBt_init(unsigned long baudrate) { ROM_SysCtlPeripheralEnable(UARTBT_PORTENABLE); ROM_SysCtlPeripheralEnable(UARTBT_PERIPHENABLE); if(UARTBT_PORT == GPIO_PORTD_BASE) { // Enable port PD7 for UART2-TX by opening the lock and selecting the bits we want to modify in the GPIO commit register. HWREG(UARTBT_PORT + GPIO_O_LOCK) = GPIO_LOCK_KEY_DD; HWREG(UARTBT_PORT + GPIO_O_CR) = 0x80; } ROM_GPIOPinConfigure(UARTBT_PINMAP_TX); ROM_GPIOPinConfigure(UARTBT_PINMAP_RX); ROM_GPIOPinTypeUART(UARTBT_PORT, UARTBT_PIN_RX | UARTBT_PIN_TX); // Configure the UART for the specified baud rate, 8-N-1 operation. ROM_UARTConfigSetExpClk(UARTBT_BASE, ROM_SysCtlClockGet(), baudrate, (UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE | UART_CONFIG_PAR_NONE)); ROM_UARTFIFODisable(UARTBT_BASE); // FIFO disabled so that short commands come through immediately // ROM_UARTFIFOEnable(UARTBT_BASE); // ROM_UARTFIFOLevelSet(UARTBT_BASE, UART_FIFO_TX4_8, UART_FIFO_RX4_8); UARTIntRegister(UARTBT_BASE, ISR_uartBt); ROM_IntEnable(UARTBT_INTERRUPT); ROM_UARTIntEnable(UARTBT_BASE, UART_INT_RX); }
int main(void) { // // Set the clocking to run directly from the crystal at 16MHz. // SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN | SYSCTL_XTAL_16MHZ); g_ui32SysClock = SysCtlClockGet(); // // Enable the GPIO port that is used for the on-board LED. // Enable the GPIO pins for the LED (PN0). // ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF); ROM_GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, LED_BLUE|LED_GREEN); GPIOPinWrite(GPIO_PORTF_BASE, LED_GREEN, LED_GREEN); DELAY(500); GPIOPinWrite(GPIO_PORTF_BASE, LED_BLUE|LED_GREEN, 0); // // Enable the peripherals used by this example. // ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0); ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA); ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_UART1); ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB); // // Enable processor interrupts. // ROM_IntMasterEnable(); // // Set GPIO A0 and A1 as UART pins. // GPIOPinConfigure(GPIO_PA0_U0RX); GPIOPinConfigure(GPIO_PA1_U0TX); ROM_GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1); // // Set GPIO B0 and B1 as UART pins. // GPIOPinConfigure(GPIO_PB0_U1RX); GPIOPinConfigure(GPIO_PB1_U1TX); ROM_GPIOPinTypeUART(GPIO_PORTB_BASE, GPIO_PIN_0 | GPIO_PIN_1); // // Configure the UART for 115,200, 8-N-1 operation. // ROM_UARTConfigSetExpClk(UART0_BASE, g_ui32SysClock, 115200, (UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE | UART_CONFIG_PAR_NONE)); ROM_UARTConfigSetExpClk(UART1_BASE, g_ui32SysClock, 115200, (UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE | UART_CONFIG_PAR_NONE)); // // Enable the UART interrupt. // ROM_IntEnable(INT_UART0); ROM_UARTIntEnable(UART0_BASE, UART_INT_RX | UART_INT_RT); ROM_IntEnable(INT_UART1); ROM_UARTIntEnable(UART1_BASE, UART_INT_RX | UART_INT_RT); ROM_UARTFIFODisable(UART0_BASE); ROM_UARTFIFODisable(UART1_BASE); // // Loop forever echoing data through the UART. // while(1); }