Hi,
I am trying to setup UART1 have done the setting for GPIO and UART both. The data which I transmit over UART is coming to UART_DR (I am using Keil and CMSIS core Library to code it and in simulation window I can read the data in UART_DR) but I am not getting anything on UART1 window or serial console in Keil debugger.
Here are my code snippets for configuring GPIO and UART along with main function.
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
#define U1RX (1<<4)
#define U1TX (1<<5)
#define PORTC (1<<2)
#define TXFF (1<<5)
#define RXFE (1<<4)
#define UART1EN (1<<0)
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void GPIOC_Init()
{
SYSCTL->RCGCGPIO |= PORTC ; //Enable PORTC
GPIOC->AFSEL |= (U1TX | U1RX); // Set Pin Functions to Alternate Functions
GPIOC->PCTL = (GPIOC->PCTL & 0xFF00FFFF) + 0x00220000; //Set Alternate Functions to UART1 (PMC5 = 0x0010 and PMC4 = 0x0010)
GPIOC->DEN |= (U1TX | U1RX); //Enable Digital functionality to UART Pins (PC4 = 1 and PC5 = 1)
GPIOC->AMSEL &= ~(U1TX |U1RX);
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void UART_Init()
{
SYSCTL->RCGCUART = 0x02; // Enable UART1
UART1->CTL |=~UART1EN ; //Disable UART before configuration
UART1->IBRD = 0x08;
UART1->FBRD = 0x2C; // Baud Clock is 16MHz and BR = 115200
UART1->LCRH = 0x60; // 8N1, FEN disabled
UART1->CC = 0x5; // Select clock source as PIOSC System Clock
UART1->CTL |= UART1EN; // Enable UART
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
int main()
{
uint8_t data[] = {"TM4C123GH6PM UART TX DEMO"};
uint8_t i, ch;
GPIOC_Init();
UART_Init();
for (i = 0; data[i] != '\0'; i++)
UART_Send(data[i]);
while(1);
}
I also have disabled clock setup in system_TM4C123.c file which is being used at startup. So after doing all this I am not understanding why m I not getting data on console while I get it in UART_DR?