Thread 中讨论的其他器件:Profibus
大家好、
我的 UART 通信有问题。 我连接了两个 Tiva 板进行 UART 串行通信(以模拟我等待制作的定制电子器件的运行)。 这是一个简单的通信、其中一个电路板发送另一个电路板1字节数据两次(2字节)、只是为了确认到达的数据的有效性。 点击按钮即可发送2个字节。 我将接收 板 UART 配置为在接收到2个字节时中断、这似乎可以正常工作。 问题是第一次接收时、系统在接收到第一个字节并读取接收到的字节和一个零字节时中断。 由于电路板读取前一个消息的剩余字节和新消息的一个字节、因此现在为我移位下一个接收。 我尝试在配置函数中读取 FIFO 中的数据、但这似乎不起作用。 如何处理此问题、如何确保系统启动时 FIFO 中没有任何内容? 下面是接收器板 UART 的代码。
ROM_SysCtlPeripheralEnable (SYSCTL_Periph_UART1); GPIOPinConfigure (GPIO_PC4_U1RX); GPIOPinConfigure (GPIO_PC5_U1TX); ROM_GPIOPinTypeUART (GPIO_PORTC_BASE、GPIO_PIN_4 | GPIO_PIN_5); ROM_UARTConfigSetExpClk (UART1_base、ROM_SysCtlClockGet ()、115200、(UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE | UART_CONFIG_PAR_NONE)); ROM_IntEnable (INT_UART1); ROM_UFIFIntEnable (UART1_BASE、UART1_UART1_UART1_BASE );UART1_UART1_Disable (UART1_RX) UARTFIFOEnable (UART1_base); UARTFIFOLevelSet (UART1_base、UART_FIFO_TX1_8、UART_FIFO_RX1_8); UINT32_t dummy=0; while (UARTCharsAvail (UART1_base) ) dummy = UARTCharGet (UART1_base);