Так, посмотрел я Ваши коды, могу сказать, что всё очень печально. Вы взяли примеры, переделали их без понимания что там и как Ошибок очень много. Я начал было править, но … там “систему менять надо”
Ну, вот, например, в том, что Вы называете передатчик, Вы вызываете read
(строка №55), а reading pipe Вы точно не забыли открыть? И подобных ошибок очень много.
По поводу Вашего сомнения в нормальной работе read и в возвращаемом значении. Возьмите пример к библиотеке GettingStarted - там проверяют, что вернул write
и всё работает правильно. Значит, проблема не в библиотеке, а в Вашем коде. Например, обратите внимание, как они вычитывают payload - полностью! Спрашивают сколько байтов пришло и читают всё. Вы же установили размер payload’а 32 байта (Вам и приходит 32 - нулями дополненное), а читаете только 4 байта. Так делать нельзя. Почитайте комментарий к функции read() в файле RF24.h - там про это много написано.
Начните с работающего примера и двигайтесь шаг за шагом, каждый раз убеждаясь, что очередной маленький шажок нормально работает.