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.

Compiler/TUSB3410UARTPDK: TM4C123GH6PM UART

Part Number: TUSB3410UARTPDK
Other Parts Discussed in Thread: TM4C123GH6PM, EK-TM4C123GXL

Tool/software: TI C/C++ Compiler

Hello guys, i'm using tiva launchpad tm4c123gh6pm and i got a problem. When transmiting data from tiva to virtual COM, and i suddenly send data from virtual COM to tiva, then it doesn't transmit anymore. Like it just either transmit or receive. So i decide to use 2 uart, 1 for transmit and one for receive but it seems not to work. I will post my code below. Please help me.

static void Reset_Buffer(char *pBuff)
{
while(*pBuff!=0x0A)
{
*pBuff=0;
pBuff++;
}
*pBuff=0;
}

extern void UARTGetBuffer(char *pBuff)
{
static uint16_t i=0;
char c;
if(i==0)
Reset_Buffer(pBuff);
while(UARTCharsAvail(UART0_BASE))
{
c=UARTCharGet(UART0_BASE);
*(pBuff+i)=c;
i++;
}
if(c==0x0A)
i=0;
}

extern void UART_ISR(void)
{
UARTIntClear(UART0_BASE,UARTIntStatus(UART0_BASE,true));
while(flag);
UARTGetBuffer(&Buff[0]);
//UARTSendS("123");
UARTIntClear(UART0_BASE,UARTIntStatus(UART0_BASE,true));
}

extern void Config_UART(void)
{
SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);

GPIOPinConfigure(GPIO_PA0_U0RX);
GPIOPinConfigure(GPIO_PA1_U0TX);
GPIOPinTypeUART(GPIO_PORTA_BASE,GPIO_PIN_0|GPIO_PIN_1);
UARTClockSourceSet(UART0_BASE,UART_CLOCK_SYSTEM);
UARTConfigSetExpClk(UART0_BASE, SysCtlClockGet(), 115200, UART_CONFIG_WLEN_8|UART_CONFIG_STOP_ONE|UART_CONFIG_PAR_NONE);

UARTIntRegister(UART0_BASE,&UART_ISR);
IntEnable(INT_UART0);
UARTIntEnable(UART0_BASE,UART_INT_RX|UART_INT_RT);
}

extern void Config_UART1(void)
{
SysCtlPeripheralEnable(SYSCTL_PERIPH_UART1);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);

GPIOPinConfigure(GPIO_PB0_U1RX);
GPIOPinConfigure(GPIO_PB1_U1TX);
GPIOPinTypeUART(GPIO_PORTB_BASE,GPIO_PIN_0|GPIO_PIN_1);
UARTClockSourceSet(UART1_BASE,UART_CLOCK_SYSTEM);
UARTConfigSetExpClk(UART1_BASE, SysCtlClockGet(), 115200, UART_CONFIG_WLEN_8|UART_CONFIG_STOP_ONE|UART_CONFIG_PAR_NONE);

}

void UARTSendS(unsigned char *s)
{
while(*s!='\0')
{
UARTCharPut(UART1_BASE,*s);
s++;
}
}

void send_num(int16_t value, uint8_t leng)
{

uint16_t i, setvalue;

if(value<0)
{
UARTSendS("-");
value=-value;
}
for (i=leng;i>0;i--)
{
setvalue = ((uint16_t)(value/pow(10,i-1)))%10;
switch (setvalue)
{
case 0:
UARTSendS("0");
break;
case 1:
UARTSendS("1");
break;
case 2:
UARTSendS("2");
break;
case 3:
UARTSendS("3");
break;
case 4:
UARTSendS("4");
break;
case 5:
UARTSendS("5");
break;
case 6:
UARTSendS("6");
break;
case 7:
UARTSendS("7");
break;
case 8:
UARTSendS("8");
break;
case 9:
UARTSendS("9");
break;
}
}

}