NUS UART Service with hardware flow control


I was trying to stream data from nus central to nus peripheral, with hardware flow control. I changed the drive to nrfx_uarte, it is working  good except when the peripheral not consumed the data before central sending the next set of data. My expectation was: at peripheral hardware flow control blocking uart thus blocks central device sending more and finally central device uart stops the sender as it using hardware flow control.

Q.1. But this is never happening. Is it possible to get this from nRF UART Service? Since the data rate is high, application-level ack is not an option.

Sometimes peripheral hangs in uarte tx function, which I thought the reason is uarte event handler is running with a lower priority than soft device event that calls the nrfx_uarte_rx function. The uarte event handler should be called to free up memory/queue used for nrfx_uarte_rx. So I changed priority to 3, but now the central device returns NRF resource error (I think the answer may be related to Q1).

Q2. What is the priority level for ble event handler?

Using nRF52DK, SDK 16.0, soft device s112 and s132.

Thanks in advance,