NRF24 - получить нулевую ошибку при перемещении модуля

Я использую 2 модуля NRF24L01 для отправки и получения данных. Оба они подключены с помощью адаптера. Один подключен к Nano, а другой-к Wemos. Я использую библиотеку nRF24L01 для своего кода.

Код работает так, как ожидалось, но время от времени при перемещении вокруг NRF24L01, подключенного к Nano (или другому, подключенному к Wemos), во время работы кода он выплевывает длинную серию нулевых, и отныне это только Tx-сообщения, а не Rx. Конечно, все провода DuPont несколько раз менялись на новые, чтобы исключить плохие провода. Поскольку это может происходить время от времени, а в некоторых случаях это происходит после нескольких хороших встряхиваний, я хочу, чтобы моя система знала, как бороться с такими случаями (идентифицировать и реагировать), а не - Избегать встряхивания.

Я знаю, что radio.begin() решает эту проблему (для этого он использовал тест isChipConnected (), чтобы определить, что чип был вытащен, в моем случае - по назначению), и система вернулась к Tx и Rx, как и ожидалось.

Мне интересно, что может идентифицировать это состояние, чтобы вызвать radio.begin() или другой обходной путь.

Пример: Выходные данные показывают

а) Состояние перед встряхиванием модуля NRF24L01.

б) нуль-это из-за этой встряски.

в) Все сообщения отправлены и получены НОРМАЛЬНО, но никаких входящих сообщений ( а с другой стороны, отправленные сообщения не удалось отправить ).

14:54:22.444 -> <<[incoming] {"from":"Wemos","type":"ans","key0":"clk","key2":"2021-05-15 14:54:22"}
14:54:23.272 -> >>[outgoing] {"from":"Arduino","type":"q","key0":"clk"}
14:54:23.305 -> <<[incoming] {"from":"Wemos","type":"ans","key0":"clk","key2":"2021-05-15 14:54:22"}
14:54:23.371 -> nullnullnullnullnullnullnullnullnullnullnullnullnullnull>>[outgoing] {"from":"Arduino","type":"q","key0":"clk"}
14:54:24.927 -> >>[outgoing] {"from":"Arduino","type":"q","key0":"clk"}
14:54:25.722 -> >>[outgoing] {"from":"Arduino","type":"q","key0":"clk"}
14:54:26.516 -> >>[outgoing] {"from":"Arduino","type":"q","key0":"clk"}
14:54:27.344 -> >>[outgoing] {"from":"Arduino","type":"q","key0":"clk"}
14:54:28.139 -> >>[outgoing] {"from":"Arduino","type":"q","key0":"clk"}
14:54:28.934 -> >>[outgoing] {"from":"Arduino","type":"q","key0":"clk"}
14:54:29.762 -> >>[outgoing] {"from":"Arduino","type":"q","key0":"clk"}
14:54:30.557 -> >>[outgoing] {"from":"Arduino","type":"q","key0":"clk"}

, 👍0

Обсуждение

Значение нулевого указателя (или нулевого терминатора) не является точной ошибкой; как и почему вы его получаете или используете, полностью зависит от окружающего его кода. У нас нет такого контекста., @timemage

Соединительные кабели "Дюпон" не прочные. Они не *предназначены* для перемещения. Если вы размахиваете ими, значит, что-то не так с вашим дизайном., @Majenko

@Majenko - Если меня неправильно поняли, я не думаю, что это имеет какое-то отношение к переезду..., @Guy . D

@timemage почему вы думаете, что это как-то связано с кодом ?, @Guy . D

@Guy.D, ** я так думаю?, @timemage

@timemage, а не аппаратная вещь ?, @Guy . D