Hello all!
I tried to develop a small BLE application and got stuck with endless loop in nrfx_uarte_tx() function (nrfx_uarte.c driver) which loops endlessly in these lines:
do
{
endtx = nrf_uarte_event_check(p_instance->p_reg, NRF_UARTE_EVENT_ENDTX);
txstopped = nrf_uarte_event_check(p_instance->p_reg, NRF_UARTE_EVENT_TXSTOPPED);
}
while ((!endtx) && (!txstopped));
lines 314-319.
After many iterations I revealed that not only my not completed application, but almost all SDK examples do the same after ~3 mins of not connected state.
So, example application starts and you can connect (from phone) and if connected it works properly for a long time. But if you do not connect or disconnect and the board stays in not-connected state for about 3 minutes - you come to that endless loop. If not-connected state time is lesser than ~3 mins you can reconnect.
SDK version is 15.2, board is PCA10040, revision 1.2.4, 2 boards are in use. I tried many examples (certainly not all of them) and the result is always reproduced.
If it was in my application only I could think that something is wrong, but it is reproduced in many not modified examples from SDK.
What should I do to continue my development?