您好!
在我的一个项目中、我将尝试使用 TM4C1294NCPDT 以9位模式与 RS485器件进行通信。 来测试9位模式。 I 配置了2个 UART - UART2和 UART6。 UART2配置为 发送器 、UART6配置 为接收器。 在下面附加代码片段。
空配置 UARTGal (uint32_t ui32SysClock)
{
ROM_SysCtlPeripheralEnable (SYSCTL_Periph_GPIOA);
ROM_SysCtlPeripheralEnable (SYSCTL_Periph_UART2);
ROM_GPIOPinConfigure (GPIO_PA6_U2RX);
ROM_GPIOPinConfigure (GPIO_PA7_U2TX);
ROM_GPIOPinTypeUART (GPIO_PORTA_BASE、GPIO_PIN_6 | GPIO_PIN_7);
ROM_UARTConfigSetExpClk (UART2_base、ui32SysClock、19200、
(UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE|
uart_config_PAR_NONE));
UARTFIFOEnable (UART2_BASE);
UART9BitAddrSet (UART2_base、0x00、0x00);
UART9BitEnable( UART2_base );
}
将数据 {0xFF、0x06、0x43、0x04、0x00、 0x00};
空
配置 UARTLoopback (uint32_t ui32SysClock)
{
ROM_SysCtlPeripheralEnable (SYSCTL_Periph_GPIOP);
ROM_SysCtlPeripheralEnable (SYSCTL_Periph_UART6);
ROM_GPIOPinConfigure (GPIO_PP0_U6RX);
ROM_GPIOPinConfigure (GPIO_PP1_U6TX);
ROM_GPIOPinTypeUART (GPIO_PORTP_BASE、GPIO_PIN_0 | GPIO_PIN_1);
ROM_UARTConfigSetExpClk (UART6_BASE、ui32SysClock、19200、
(UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE|
uart_config_PAR_NONE));
UARTFIFOEnable (UART6_BASE);
UART9BitAddrSet (UART6_BASE、0xFF、0xFF);
UART9BitEnable ( UART6_BASE );
}
以下代码接收这些字节并将其发送到将在超级终端上显示的 UART0
if (ROM_UARTCharsAvail (UART6_BASE))
{
recvdata=ROM_UARTCharGetNonBlocking (UART6_BASE);
recvdatat= recvdata;
ROM_UARTCharPutNonBlocking (UART0_BASE、recvdata);
}
如果以8位模式进行接收、我就能够接收数据。 在9位模式下、不接收数据。
请您提供帮助。
此致、
拉梅什
