Jak większość ludzi napisała, wartości potoku są dowolne, ale muszą być zgodne z regułami interfejsu API:
Rury 1-5 powinny dzielić pierwsze 32 bity. Tylko najmniej znaczący bajt powinien być unikalny, np
Zanim odpowiem na twoje pytanie, uważam, że potrzebne jest wyjaśnienie wartości szesnastkowej i dziesiętnej.
40-bitowy system szesnastkowy jest reprezentacją liczbową podstawy 16. Dziesiętny jest podstawą 10. Abyś mógł przekonwertować wartość szesnastkową na dziesiętną. Ponieważ jest to poza zakresem pytania, możesz google dowiedzieć się, jak konwertować z jednego na drugi. Istnieje kilka konwerterów online:
Konwerter szesnastkowy na dziesiętny
Zobaczysz, kiedy konwertujesz wartość szesnastkową na dziesiętną, że jest to tylko reprezentacja liczbowa. Podczas konwersji upuszczasz 0x
i LL
. Jak stwierdzono, 0x
wskazuje, że wartość jest wartością szesnastkową i LL
oznacza typ Długi Długi .
Aby odpowiedzieć na twoje pytanie, użyj konwertera, aby znaleźć liczbę szesnastkową, taką jak:
F0F0F0F0A1
F0F0F0F0A2
F0F0F0F0B4
F0F0F0F0E9
Wystarczy zmienić ostatnie 2 cyfry (najmniej znaczący bit):
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);
Dodaj 0x
iLL
0xF0F0F0F0A1LL
0xF0F0F0F0A2LL
0xF0F0F0F0B4LL
0xF0F0F0F0E9LL
Wszystko powinno działać.
Nie jestem ekspertem od hexów, ponieważ się uczę, więc jeśli się mylę, proszę, popraw mnie.
Wreszcie arkusz danych nRF24L01 stwierdza, że wybór adresu nie jest całkowicie arbitralny:
Uwaga: Adresy, w których poziom przesuwa się tylko jeden raz (to znaczy 000FFFFFFF), często mogą być wykryte w hałasie i mogą dawać fałszywe wykrywanie, co może dawać podwyższony wskaźnik błędów pakietów. Adresy jako kontynuacja preambuły (przełączanie hi-low) również zwiększają współczynnik błędów pakietów.