Tool/software: TI-RTOS
Using UART3 as RS485, I can communicate at 9600, 8, 1, None. When I change the comport settings to 7, 1, and Even, the data is not correct. Here is my init code:
uint32_t g_ui32SysClock = SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ |
SYSCTL_OSC_MAIN |
SYSCTL_USE_PLL |
SYSCTL_CFG_VCO_480), 120000000);
SysCtlPeripheralEnable(SYSCTL_PERIPH_UART3);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOJ);
// Set GPIO PJ0 and PJ1 as UART pins.
GPIOPinConfigure(GPIO_PJ0_U3RX);
GPIOPinConfigure(GPIO_PJ1_U3TX);
GPIOPinTypeUART(GPIO_PORTJ_BASE, GPIO_PIN_0 | GPIO_PIN_1);
if (false) // make this a system data var
{
// 9600, 8, 1, none
UARTConfigSetExpClk(UART3_BASE, g_ui32SysClock, 9600,
(UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE |
UART_CONFIG_PAR_NONE));
}
else
{
// 9600, 7, 1, even
UARTConfigSetExpClk(UART3_BASE, g_ui32SysClock, 9600,
(UART_CONFIG_WLEN_7 | UART_CONFIG_STOP_ONE |
UART_CONFIG_PAR_EVEN));
}
UARTEnable(UART3_BASE);
UARTTxIntModeSet(UART3_BASE, UART_TXINT_MODE_EOT);
IntMasterEnable();
IntEnable(INT_UART3);
UARTIntEnable(UART3_BASE, UART_INT_RX | UART_INT_RT | UART_INT_TX);
What am I missing?