Keine gründliche Analyse deines Codes, aber eine Vermutung:
Dein Empfangsbuffer
1 | unsigned char data[3] = {0};
|
ist sehr klein und es könnten durch die Einstellung
1 | radio.enableDynamicPayloads();
|
bei grösseren empfangenen Paketen RAM-Daten jenseits des Buffers
überschieben werden (sollte eigentlich nicht passieren wenn sich
die Lib richtig verhält).
Lösung wäre den Empfangsbuffer mindestens so gross zu machen wie
die mögliche Payload Size des NRF24 (das wäre 32). Das würde ja
nicht weh tun.
Aber das ist alles - wie gesagt - eine Vermutung da ich nicht
weiss was die Lib genau tut.