I have a setup where I will be switching the nRF51822 UART between two different peripherals (one being a connection to another nRF51822), so I need to be able to safely close, switch, and reopen without losing data.
app_uart_close triggers the STOPTX and STOPRX tasks as it should, but it doesn't wait for the receive timeout (RXTO) event before immediately disabling the UART. In my test (full duplex transfer of a stream continuously incremented bytes with periodic close/reopen from one side), this results in a lost byte on the chip closing/reopening and garbled data (e.g., an unexpected 0xfe byte) on the other side. Both chips are using APP_UART_FLOW_CONTROL_ENABLED and have RTS/CTS set up correctly.