Hola,
Estoy utilizando el TM4C123g y me gustaría saber como puedo usar la uart1 (PC4 (Rx) i PC5 (TX)) para poder enviar y recibir 9 bits.Primero intente hacerlo con el bit de paritat, el problema fué que con el logic analyzer veía que podía enviar 9 bits pero en recepción solo leía 8 bits (con el logic analyzer ves que llegan 9 bits pero si imprimes por pantalla lo que hay realmente en la uart solo lees 8 bits) . Entonces, encontré el fichero spma032.pdf pero no es viable, ya que, TivaWare_C_Series-2.1.0.12573 no incorpora el fichero NB_uart.c. Que pasos debo seguir para poder enviar y recibir 9 bits por la uart1?
Tengo interconectada la transmisión y recepción de la uart1, cual debería ser la configuracion de UART9BitAddrSet? El 9 bit se configuraría con el UART9BitEnable (1 al 9 bit) o UART9BitDisable (0 al 9 bit)?
Muchas gracias
Esta es mi configuración: Quiero enviar un 0x110.
ROM_SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN |
SYSCTL_XTAL_16MHZ);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC);
SysCtlPeripheralEnable(SYSCTL_PERIPH_UART1);
GPIOPinTypeUART(GPIO_PORTC_BASE, GPIO_PIN_4 | GPIO_PIN_5);
GPIOPinConfigure(GPIO_PC4_U1RX);
GPIOPinConfigure(GPIO_PC5_U1TX);
NB_UARTConfigSetExpClk(UART1_BASE, SysCtlClockGet(), 115200,(UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE | UART_CONFIG_PAR_ZERO));
NB_UARTEnable(UART1_BASE);
UARTFIFODisable (UART1_BASE);
UART9BitEnable(UART1_BASE)
UART9BitAddrSet(UART1_BASE, 0x01, 0xFF);
UART9BitEnable(UART1_BASE);
UARTIntEnable(UART1_BASE, UART_INT_TX | UART_INT_RX | UART_INT_RT | UART_INT_9BIT);
UART9BitAddrSend(0x10);
//interrupción
void
UARTIntHandler(void)
{
uint32_t ui32Status;
//
// Get the interrrupt status.
//
ui32Status = ROM_UARTIntStatus(UART1_BASE, true);
//
// Clear the asserted interrupts.
//
ROM_UARTIntClear(UART1_BASE, ui32Status);
//
// Loop while there are characters in the receive FIFO.
//
while(ROM_UARTCharsAvail(UART1_BASE))
{
//
// Read the next character from the UART and write it back to the UART.
//
ROM_UARTCharPutNonBlocking(UART1_BASE,
ROM_UARTCharGetNonBlocking(UART1_BASE));
}
}