This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TM4C123G UART problem!!

I have a problem with the UART. I wrote a code and tested it using Putty terminal. The code is just about sending a char from my MCU to the pc, and here is the code:

void UART_INIT(){
    SYSCTL->RCGCUART |= (1<<0); 
    SYSCTL->RCGCGPIO |= (1<<0); 
    GPIOA->AFSEL = (1<<1)|(1<<0); 
    GPIOA->PCTL = (1<<0)|(1<<4);  
    GPIOA->DEN = (1<<0)|(1<<1); 
    UART0->CTL &= ~(1<<0);
    UART0->IBRD = 104;      
    UART0->FBRD = 11; 
    UART0->LCRH = (0x3<<5)|(1<<4);
    UART0->CC = 0x0;          
    UART0->CTL = (1<<0)|(1<<8)|(1<<9); 
    SYSCTL->RCGCGPIO |= (1<<5); // enable clock on PortF
    GPIOF->DIR = (1<<1)|(1<<2)|(1<<3);  // make LED pins (PF1, PF2, and PF3) outputs
    GPIOF->DEN = (1<<1)|(1<<2)|(1<<3); // enable digital function on LED pins
    GPIOF->DATA &= ~((1<<1)|(1<<2)|(1<<3)); // turn off leds
}

void printChar(char c)  
{
    while((UART0->FR & (1<<5)) != 0);
    UART0->DR = c;           
}

int main(void) 
{
    UART_INIT();
    while(1)
    {
      printChar('2');
     
    }
}

As it is clear from the code, I am trying to send '2'. When I start the putty terminal, number '2' appears normally, but when I reset the MCU another character appears '&'. If I restarted the MCU again it goes back to '2'. Here is a screenshot for the putty: