Esempio n. 1
0
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);
}
Esempio n. 2
0
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);
}