Som de flesta har publicerat är värdena för röret godtyckliga, men måste följa reglerna enligt API: et:
Rör 1-5 bör dela de första 32 bitarna. Endast den minst betydande byten ska vara unik, t.ex.
Innan jag svarar på din fråga tror jag att det behövs en förklaring om Hex- och Decimalvärden.
40-bitars hexadecimala är en talrepresentation av bas 16. En decimal är av bas 10. Så du kan konvertera ett hexvärde till decimal. Eftersom detta inte omfattas av frågan kan du google om hur man konverterar från en till en annan. Det finns några omvandlare online:
Hex till decimalomvandlare
Du ser när du konverterar Hex-värdet till decimal, att det bara är en talrepresentation. När du konverterar släpper du 0x
och LL
. Som anges anger 0x
att värdet är ett hexadecimalt värde och LL
betyder typ Long Long.
Så för att svara på din fråga, använd a-omvandlaren för att hitta ett hexadecimalt tal som:
F0F0F0F0A1F0F0F0F0A2F0F0F0F0B4F0F0F0F0E9
Bara ändra de två sista siffrorna (minst signifikant bit):
Rör 1-5 ska dela de första 32 bitarna. Endast den minst betydande byten bör vara unik, t.ex. openReadingPipe (1,0xF0F0F0F0AA); openReadingPipe (2,0xF0F0F0F066);
Lägg till 0x
och LL
0xF0F0F0F0A1LL0xF0F0F0F0A2LL0xF0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0 kod>
Allt ska fungera.
Jag är ingen expert på hex, eftersom jag lär mig, så om jag är felaktig, vänligen korrigera mig.
Slutligen gör databladet nRF24L01 följande att valet av adress inte är helt godtycklig:
Obs: Adresser där nivån bara skiftar en gång (det vill säga 000FFFFFFF) kan ofta detekteras i brus och kan ge en falsk detektering, vilket kan ge en höjd paketfelfrekvens. Adresser som en fortsättning på ingressen (hög-låg växling) ökar också Packet Error Rate.