diff --git a/main.c b/main.c index 90e9ec7..b89fee8 100644 --- a/main.c +++ b/main.c @@ -18,6 +18,31 @@ void GPIO_PORT_F_init(void) GPIO_PORTF_IM_R |= 0x11; // Unmask interrupts for PF0 and PF4 } +void GPIO_PORT_B_init(void) +{ + + SYSCTL_RCGCGPIO_R |= 0x02; // Enable clock to GPIOB + SYSCTL_RCGCUART_R |= 0x02; // Enable UART1 clock + + GPIO_PORTB_DEN_R |= 0x03; // Enable PB0, PB1 as digital + GPIO_PORTB_AFSEL_R |= 0x03; // Enable alternate function on PB0, PB1 + + GPIO_PORTB_PCTL_R = (GPIO_PORTB_PCTL_R & 0xFFFFFF00) | 0x00000011; // Set PB0, PB1 for UART + + UART1_CTL_R &= ~0x01; // Disable UART1 during setup + UART1_IBRD_R = 104; // Set integer part of baud rate (for 9600 baud at 16 MHz clock) + UART1_FBRD_R = 11; // Set fractional part of baud rate + UART1_LCRH_R = 0x62; // 8-bit, odd parity, 1 stop bit + UART1_CC_R = 0x00; // Use system clock + + UART1_CTL_R |= 0x301; // Enable UART1, RX, and TX + +} + + + + + void UART1_WRITE(char data) { while (UART1_FR_R & 0x20); // Wait until TX FIFO is not full