How do I align UART transmission/reception with GPIO pin signaling low/high? I wanted to do this because BLE chip is receiving the Product ID & device name from microcontroller over uart & it is also sending the HID output reports over uart. The steps/logic I would like to implement -
(A) After receiving the Product ID & device name, pull GPIO pin low. (There is more logic included)
I tried this but the pin goes low, before all data is read. I was tracking the error code to return NRF_SUCCESS but that does not help. I was trying to do something like this for app_uart_put() & app_uart_get()
for(ind = 0; ind < BLE_INFO_FRAME_LEN; ind++)
{
//NRF_LOG_RAW_INFO("Byte: %d\n", ble_info_frame[ind]);
while (app_uart_put(ble_info_frame[ind]) != NRF_SUCCESS);
}
if(ind == BLE_INFO_FRAME_LEN)
{
nrf_gpio_pin_clear(0);
}
(B) After transmitting HID output report, pull GPIO pin high
Is there a flag or interrupt which tracks this?