无法使用 Raspberry Pi 3 B+ 配置 nrf24l01+

物联网 树莓派
2021-05-29 12:29:03

我有一个新的 Raspberry Pi 3 B+ 型号。我还买了几个nrf24l01+模块。

我通过以下连接将 nrf24l01+ 模块之一连接到我的 RPi:

RPi    | nrf24l01+
-------|----------
3.3    |  VCC
GND    |  GND
GPIO8  |  CSN
GPIO17 |  CE
GPIO10 |  MOSI
GPIO09 |  MISO
GPIO11 |  SCK

我从这里下载了 RPi 的 BLavery 库:https : //github.com/BLavery/lib_nrf24然后我将文件移动lib_nrf24.py到我的工作目录中~/projects/helloworld/lib_nrf24.py

然后我创建了一个名为的文件~/projects/helloworld/receiver.py并放置了以下代码:

import RPi.GPIO as GPIO
from lib_nrf24 import NRF24
import time
import spidev

GPIO.setmode(GPIO.BCM)

pipes = [[0xE8, 0xE8, 0xF0, 0xF0, 0xE1],[0xF0, 0xF0, 0xF0, 0xF0, 0xE1]]

radio = NRF24(GPIO, spidev.SpiDev())
radio.begin(0,17)

radio.setPayloadSize(32)
radio.setChannel(0x76)
radio.setDataRate(NRF24.BR_1MBPS)
radio.setPALevel(NRF24.PA_MIN)

radio.setAutoAck(True)
radio.enableDynamicPayloads()
radio.enableAckPayload()

radio.openReadingPipe(1,pipes[1])
radio.printDetails()
radio.startListening()

当我运行命令时python3 ~/projects/helloworld/receiver.py,我得到以下输出:

STATUS   = 0x03 RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=1 TX_FULL=1
RX_ADDR_P0-1     =
 0xfdfdfdfdfd 0xfefefefefc
RX_ADDR_P2-5     =
0xf8
0xf9
0xf9
0xf9

TX_ADDR          =
 0xfdfdfdfdfd
RX_PW_P0-6       =
0x00
0x0c
0x00
0x00
0x00
0x00

EN_AA            =
0x0f

EN_RXADDR        =
0x00

RF_CH            =
0x1f

RF_SETUP         =
0x00

CONFIG           =
0x03

DYNPD/FEATURE    =
0x03
0x01

Data Rate        = 1MBPS
Model            = nRF24L01
CRC Length       = Disabled
PA Power         = PA_MIN

我的问题是为什么输出显示RX_ADDR_P0-1 = 0xfdfdfdfdfd 0xfefefefefc,当我写[0xF0, 0xF0, 0xF0, 0xF0, 0xE1]的,为什么不输出显示 RF_CH = 0x1f,当我写radio.setChannel(0x76)

我注意到 BLavery 在我的 RPi 3 B+ 发布前几个月停止支持 lib_nrf24 库。这和我的问题有关系吗?是否有另一种实用的方法可以将 nrf24l01 模块与我的 RPi 3 B+ 一起使用?

注意:这是我对为什么 RPi 3 B + 没有从使用 nrf24l01 模块传输的 arduino 接收任何有效负载的调查的一部分。我有两个 arduino 可以用 nrf24l01 互相交谈。所以我的下一步是让 arduino 到 RPi 工作。

0个回答
没有发现任何回复~