Как и большинство людей опубликовали, значения для канала являются произвольными, но должны следовать правилам API:
Трубы 1-5 должны разделять первые 32 бита. Только младший байт должен быть уникальным, например
Прежде чем ответить на ваш вопрос, я думаю, что необходимы пояснения по шестнадцатеричным и десятичным значениям.
40-битное шестнадцатеричное является числовым представлением основания 16. Десятичное число имеет основание 10. Таким образом, вы можете преобразовать шестнадцатеричное значение в десятичное. Поскольку это выходит за рамки вопроса, вы можете узнать, как конвертировать из одного в другой. Есть несколько онлайн-конвертеров:
Шестнадцатеричный в десятичный преобразователь
Когда вы преобразуете шестнадцатеричное значение в десятичное, вы увидите, что это просто числовое представление. Когда вы конвертируете, вы опускаете 0x
и LL
. Как указано, 0x
указывает, что значение является шестнадцатеричным значением и LL
означает тип Long Long .
Поэтому, чтобы ответить на ваш вопрос, используйте конвертер, чтобы найти шестнадцатеричное число, например:
F0F0F0F0A1
F0F0F0F0A2
F0F0F0F0B4
F0F0F0F0E9
Просто измените последние 2 цифры (младший значащий бит):
Pipes 1-5 should share the first 32 bits. Only the least significant byte should be unique, e.g.
openReadingPipe(1,0xF0F0F0F0AA);
openReadingPipe(2,0xF0F0F0F066);
Добавьте 0x
иLL
0xF0F0F0F0A1LL
0xF0F0F0F0A2LL
0xF0F0F0F0B4LL
0xF0F0F0F0E9LL
Все должно работать.
Я не эксперт по гексам, так как я учусь, поэтому, если я ошибаюсь, то, пожалуйста, кто-то поправит меня.
Наконец, таблица данных nRF24L01 указывает на то, что выбор адреса не является полностью произвольным:
Примечание. Адреса, в которых уровень изменяется только один раз (то есть 000FFFFFFF), часто могут быть обнаружены в шуме и могут давать ложное обнаружение, что может привести к повышению частоты ошибок пакетов. Адреса в качестве продолжения преамбулы (переключение hi-low) также повышают частоту ошибок пакетов.