我是在nRF24L01無線收發器模組與Arduino通訊實驗(二):一對一通訊 - 超圖解系列圖書 COPY AND PASTE教程的
我已經下載了RF24程式庫專案
但當我print out(rf24.available(&pipe))發現一直都是0,通道一直不會開啟。
我怎樣才能讓通道開啟呢?
這是我的發射端程式碼
#include <SPI.h>
#include "RF24.h"RF24 rf24(7, 8); // CE腳, CSN腳
const byte addr[] = "1Node";
const char msg[] = "Happy Hacking!";void setup() {
rf24.begin();
rf24.setChannel(83); // 設定頻道編號
rf24.openWritingPipe(addr); // 設定通道位址
rf24.setPALevel(RF24_PA_MIN); // 設定廣播功率
rf24.setDataRate(RF24_250KBPS); // 設定傳輸速率
rf24.stopListening(); // 停止偵聽;設定成發射模式
}void loop() {
rf24.write(&msg, sizeof(msg)); // 傳送資料
delay(1000);
}
這是接收端的程式碼
#include <SPI.h>
#include "RF24.h"RF24 rf24(7, 8); // CE腳, CSN腳
const byte addr[] = "1Node";
const byte pipe = 1; // 指定通道編號void setup() {
Serial.begin(9600);
rf24.begin();
rf24.setChannel(83); // 設定頻道編號
rf24.setPALevel(RF24_PA_MIN);
rf24.setDataRate(RF24_250KBPS);
rf24.openReadingPipe(pipe, addr); // 開啟通道和位址
rf24.startListening(); // 開始監聽無線廣播
Serial.println("nRF24L01 ready!");
}void loop() {
if (rf24.available(&pipe)) {
char msg[32] = "";
rf24.read(&msg, sizeof(msg));
Serial.println(msg); // 顯示訊息內容
}
}
另外我compile時有一些error,但仍然可以done uploading.
warning: invalid conversion from 'const byte* {aka const unsigned char*}' to 'uint64_t {aka long long unsigned int}' [-fpermissive]
rf24.openReadingPipe(pipe, addr);
note: initializing argument 2 of 'void RF24::openReadingPipe(uint8_t, uint64_t)'
void openReadingPipe(uint8_t number, uint64_t address);
initializing argument 1 of 'bool RF24::available(uint8_t*)'
bool available(uint8_t* pipe_num);
是不是這些ERROR,導致通道不能開啟?
還是PROGRAM上出現了問題了?
希望能解答我的疑問,謝謝