I am trying to use sd_ble_gatts_hvx function to send custom data through BLE. I found out that for the data I am sending the function takes a lot of time to send data which results in a FIFO error on the UART module.
For this reason, I wanted to know if sd_ble_gatts_hvx is a Blocking or Non Blocking function.
I am using SDK 15.3.0 SoftDevice 132 and nRF52832.
It's non-blocking. It returns the status in a event after the connection interval has finished. For more detailed info, please see this message sequence chart: