I can use this code for the UART0 and turn on three leds by "a" "b" "c", but when i chang the UART, it can not turn on and receive anything! I usse he USB UART to connect to the UART2, I try to another UART1 but it still as UART2.
Anyone can help me!
#include <stdint.h>
#include <stdbool.h>
#include "inc/hw_ints.h"
#include "inc/hw_memmap.h"
#include "inc/hw_types.h"
#include "driverlib/gpio.h"
#include "driverlib/interrupt.h"
#include "driverlib/pin_map.h"
#include "driverlib/sysctl.h"
#include "driverlib/uart.h"
#include "driverlib/rom.h"
#include "driverlib/debug.h"
#include "driverlib/fpu.h"
void UARTIntHandler(void)
{
uint32_t ui32Status; // THIS PARAMETER CONTAINS THE STATUS OF UART
ui32Status = UARTIntStatus(UART1_BASE, true); // GET THE INTERRUPT STATUS
UARTIntClear(UART1_BASE, ui32Status);
}
int main(void)
{
SysCtlClockSet(SYSCTL_SYSDIV_4|SYSCTL_USE_PLL|SYSCTL_OSC_MAIN|SYSCTL_XTAL_16MHZ);
SysCtlPeripheralEnable(SYSCTL_PERIPH_UART2); //ENABLE THE UART0
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD); //ENABLE THE GPIOA
GPIOPinConfigure(GPIO_PD6_U2RX); //CONFIGURE THE GPIO AS THE UART
GPIOPinConfigure(GPIO_PD7_U2TX); //CONFIGURE THE GPIO AS THE UART
GPIOPinTypeUART(GPIO_PORTD_BASE, GPIO_PIN_0|GPIO_PIN_1); //CONFIGURE THE GPIO 0 AND 11 AS THE UART
//ENABLE THE GPIOF AND THE PIN 2 FOR THE BLUE
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_3|GPIO_PIN_1|GPIO_PIN_2);
UARTConfigSetExpClk(UART2_BASE, SysCtlClockGet(), 115200,(UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE | UART_CONFIG_PAR_NONE)); // ALLOW TO CONFIGURE THE PARAMETERS OF UART
// ALLOW INTERRUPT FOR ALL
IntMasterEnable(); // ENABLE INTERRUPT FOR PROCESSOR
IntEnable(INT_UART2); //ENABLE INTERRUPT UART
UARTIntEnable(UART2_BASE, UART_INT_RX|UART_INT_RX); // ENABLE THE INTERRUPT FOR RX AND TX ONLY
UARTCharPut(UART2_BASE, 'E');
UARTCharPut(UART2_BASE, 'n');
UARTCharPut(UART2_BASE, 't');
UARTCharPut(UART2_BASE, 'e');
UARTCharPut(UART2_BASE, 'r');
UARTCharPut(UART2_BASE, ' ');
UARTCharPut(UART2_BASE, 'T');
UARTCharPut(UART2_BASE, 'e');
UARTCharPut(UART2_BASE, 'x');
UARTCharPut(UART2_BASE, 't');
UARTCharPut(UART2_BASE, ':');
UARTCharPut(UART2_BASE, ' ');
// UARTSend((uint8_t*)"Enter text:", 11); // SEND MANY CHARACTER IN ONE TIME
while(1)
{
while(UARTCharsAvail(UART2_BASE)) // WAIT UNTIL THE THE PORT RECEIVE THE INPUT
{ int32_t v = UARTCharGetNonBlocking(UART2_BASE);
UARTCharPutNonBlocking(UART2_BASE, UARTCharGetNonBlocking(UART2_BASE)); // ECHO CHARACTER
if (v=='a')
{
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_3, GPIO_PIN_3); // THE SIGNAL FOR THE DATA COMING
SysCtlDelay(SysCtlClockGet()/100); // DELAY 1 MILI SECOND
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_3, 0); // TURN OFF THE LED
}
if (v=='b')
{
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_2, GPIO_PIN_2); // THE SIGNAL FOR THE DATA COMING
SysCtlDelay(SysCtlClockGet()/100); // DELAY 1 MILI SECOND
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_2, 0); // TURN OFF THE LED
}
if (v=='c')
{
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1, GPIO_PIN_1); // THE SIGNAL FOR THE DATA COMING
SysCtlDelay(SysCtlClockGet()/100); // DELAY 1 MILI SECOND
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1, 0); // TURN OFF THE LED
}
}
//if (UARTCharsAvail(UART0_BASE)) UARTCharPut(UART0_BASE, UARTCharGet(UART0_BASE));
}
}