NRF905 --- 2.4G无线收发模块关联功能函数

nrf905 模块的主要功能与函数

功能相关函数

class nrf905.NRF905(spi, ce, txen, pwr, cd, dr, cs, RFConf, TxAddress)

创建一个NRF905对象。

  • spi pyb.SPI对象
  • ce 引脚编号
  • txen 引脚编号
  • pwr 引脚编号
  • cd 引脚编号
  • dr 引脚编号
  • cs 引脚编号
  • RFConf 模块相关配置参数,list类型
  • TxAddress 接收方的地址,list类型
NRF905.Config905()

设置nrf905寄存器函数

NRF905.setTXmode()

设置nrf905为发送模式

NRF905.txpacket(buf)

发送数据函数,buf为发送的内容

NRF905.sender_bruff(buf)

发送函数,buf为发送的内容

NRF905.checkDR()

读取DR引脚状态,返回值为DR引脚的状态,用于判断是否接收完毕数据包

NRF905.setRXmode()

设置nrf905为接收模式

NRF905.rxpacket()

接收数据函数,返回值为list

NRF905.recvrx()

接收函数,返回值为list

nrf905与开发板接线对应引脚:

TPYBoard nrf905
Y1 CE
Y2 TXEN
Y3 PWR
Y4 CD
Y12 DR
Y11 CS
Y8 MOSI
Y7 MISO
Y6 SCK
3V3 VCC
GND GND

程序示例:

import pyb                                    #发送模式
from nrf905 import NRF905
import time
from pyb import SPI

RFConf=[0x00,                                 #配置命令
              0x4c,                                   #频段设置为423Mhz
              0x0c,                                   #输出功率为10db,不重发,节电模式为正常
              0x44,                                   #地址宽度设置为4字节
              0x0a,0x0a,                              #接收发送有效数据长度为10字节
              0xcc,0xcc,0xcc,0xcc,    #接收地址
              0x58                                    #CRC允许,8位CRC校验,外部时钟信号不使能
              ]
TxAddress=[0xcc,0xcc,0xcc,0xcc]       #接收地址

buf=[0x06,0xa0,0xb0,0x01,0x02,0]      #发送内容

spi=pyb.SPI(2)
n=NRF905(spi=spi,ce='Y1',txen='Y2',pwr='Y3',cd='Y4',dr='Y12',cs='Y11',
                              RFConf=RFConf,TxAddress=TxAddress)
i=0
while True:
      buf[5]=i
      n.sender_bruff(buf)                     #发送buf内容
      time.sleep_ms(200)
      print(i)
      i+=1
import pyb                                    #接收模式
from nrf905 import NRF905
import time
import pyb

RFConf=[0x00,                                 #配置命令
              0x4c,                                   #频段设置为423Mhz
              0x0c,                                   #输出功率为10db,不重发,节电模式为正常
              0x44,                                   #地址宽度设置为4字节
              0x0a,0x0a,                              #接收发送有效数据长度为10字节
              0xcc,0xcc,0xcc,0xcc,    #接收地址
              0x58                                    #CRC允许,8位CRC校验,外部时钟信号不使能
              ]

spi=pyb.SPI(2)
n=NRF905(spi=spi,ce='Y1',txen='Y2',pwr='Y3',cd='Y4',dr='X9',cs='X10',
                              RFConf=RFConf,TxAddress=None)
while True:
      buf=n.recvrx()                          #接收内容存储到buf
      print (buf)