I have observed two issues with using the UART in an ncs project and I'm not sure exactly where the issue lies (Nordic or Zephyr).
Firstly, and most importantly, according to the Zephyr docs, as soon as the UART starts receiving, a `UART_RX_BUF_REQUEST` event is supposed to be raised:
https://docs.zephyrproject.org/latest/reference/peripherals/uart.html#c.uart_event_type
This allows the app to provide a second buffer for the driver so that once the first one fills, it can continue receiving.
However, this isn't the case and, in fact, the event isn't raised until `UART_RX_RDY` is raised first because a complete RX has been detected (timeout on the RX line).
This means that if data larger than the buffer comes in, it immediately hits the end of the buffer, no swap is performed, and I get overrun errors instead.
The second issue is that it should, or could, receive several messages in the same buffer but as above, on each `UART_RX_RDY` event, the buffer is immediately swapped out at that point.
This means I am quickly using up my buffers (3) if many small messages come through, before I have had a chance to deal with the data.
Can somebody verify that I have understood the Zephyr docs correctly or not, or confirm if there is indeed a difference in behaviour using Nordic's UART driver for some reason?