求助:Arduino Uno与Raspberry Pi 4的nRF24L01数据传输正确代码
问题解决:nRF24L01 Arduino发射端硬件错误+树莓派接收失败
先解决发射端"hardware error"问题
你的代码里连续调用了两次radio.begin(),这会导致初始化冲突,是触发硬件错误提示的直接原因。同时必须先确认硬件基础配置:
- nRF24L01必须接3.3V电源,接5V会烧毁模块
- Arduino Uno与nRF24L01的SPI接线:
- MOSI → D11
- MISO → D12
- SCK → D13
- CE → D7(代码定义引脚)
- CSN → D8(代码定义引脚)
- 建议给nRF24L01模块并联100uF滤波电容,解决电源波动导致的通信不稳定
修正后的Arduino发射端代码
#include <SPI.h> #include <RF24.h> // CE、CSN引脚定义 RF24 radio(7, 8); // 接收端地址,必须和树莓派端完全一致,长度为5字节+1结束符 const byte rxAddr[6] = "00001"; void setup() { Serial.begin(9600); // 仅调用一次初始化,失败则停住排查硬件 if (!radio.begin()) { Serial.println("hardware error"); while (1); } // 配置参数,需与接收端完全匹配 radio.setRetries(15, 15); radio.setChannel(10); radio.setDataRate(RF24_1MBPS); radio.setPALevel(RF24_PWR_HIGH); radio.openWritingPipe(rxAddr); radio.stopListening(); // 切换为发射模式 Serial.println("发射端初始化完成"); } void loop() { const char text[] = "hi"; // 直接传入text即可,无需取地址 bool sendSuccess = radio.write(text, sizeof(text)); if (sendSuccess) { Serial.println("消息发送成功"); } else { Serial.println("消息发送失败"); } delay(1000); }
树莓派4接收端代码(Python版本)
先安装依赖库:
sudo apt-get install python3-pip sudo pip3 install adafruit-circuitpython-nrf24l01 sudo pip3 install pigpio
启动pigpio服务(树莓派控制GPIO必需):
sudo pigpiod
接收端代码
import time import board import digitalio from adafruit_nrf24l01 import RF24 # 树莓派SPI引脚映射 CSN = digitalio.DigitalInOut(board.CE1) CE = digitalio.DigitalInOut(board.D22) spi = board.SPI() # 初始化nRF24L01模块 radio = RF24(spi, CSN, CE) # 接收地址,与Arduino端完全一致 rx_addr = b"00001" # 配置参数,与发射端完全匹配 radio.channel = 10 radio.data_rate = RF24.RATE_1MBPS radio.pa_level = RF24.PA_HIGH # 打开接收管道并切换为监听模式 radio.open_rx_pipe(0, rx_addr) radio.listen = True print("接收端等待消息...") while True: if radio.available(): # 读取并解析消息 received_data = [] radio.read(received_data, radio.payload_size) message = ''.join(chr(x) for x in received_data if x != 0) print(f"收到消息: {message}") time.sleep(0.1)
额外排查要点
- 确保发射端与接收端的信道、地址、数据速率、发射功率完全一致
- 检查nRF24L01的天线是否安装牢固,避开金属遮挡
- 若仍有问题,可尝试更换信道(避开WiFi常用的1-11信道)
内容的提问来源于stack exchange,提问作者ALAN C JOHN
相关产品推荐
相关产品推荐

