NRF24L01.rar

  • sfxv
    了解作者
  • C/C++
    开发工具
  • 1KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 10 积分
    下载积分
  • 1
    下载次数
  • 2017-08-20 18:56
    上传日期
NRT24L01的基本使用模板,希望可以帮助你。
NRF24L01.rar
  • NRF24L01.C
    3.4KB
内容介绍
sbit CE=P1^3; sbit CSN=P3^2; sbit IRQ=P3^3; sbit MISO=P1^6; sbit MOSI=P1^5; sbit SCK=P1^7; sbit led=P1^0; //NRF24L01寄存器指令 #define READ_REG 0x00 // 读寄存器指令 #define WRITE_REG 0x20 // 写寄存器指令 #define RD_RX_PLOAD 0x61 // 读取接收数据指令 #define WR_TX_PLOAD 0xA0 // 写待发数据指令 #define FLUSH_TX 0xE1 // 冲洗发送 FIFO指令 #define FLUSH_RX 0xE2 // 冲洗接收 FIFO指令 #define REUSE_TX_PL 0xE3 // 定义重复装载数据指令 #define NOP 0xFF // 保留 //SPI(nRF24L01)寄存器地址 #define CONFIG 0x00 // 配置收发状态,CRC校验模式以及收发状态响应方式 #define EN_AA 0x01 // 自动应答功能设置 #define EN_RXADDR 0x02 // 可用信道设置 #define SETUP_AW 0x03 // 收发地址宽度设置 #define SETUP_RETR 0x04 // 自动重发功能设置 #define RF_CH 0x05 // 工作频率设置 #define RF_SETUP 0x06 // 发射速率、功耗功能设置 #define STATUS 0x07 // 状态寄存器 #define OBSERVE_TX 0x08 // 发送监测功能 #define CD 0x09 // 地址检测 #define RX_ADDR_P0 0x0A // 频道0接收数据地址 #define RX_ADDR_P1 0x0B // 频道1接收数据地址 #define RX_ADDR_P2 0x0C // 频道2接收数据地址 #define RX_ADDR_P3 0x0D // 频道3接收数据地址 #define RX_ADDR_P4 0x0E // 频道4接收数据地址 #define RX_ADDR_P5 0x0F // 频道5接收数据地址 #define TX_ADDR 0x10 // 发送地址寄存器 #define RX_PW_P0 0x11 // 接收频道0接收数据长度 #define RX_PW_P1 0x12 // 接收频道0接收数据长度 #define RX_PW_P2 0x13 // 接收频道0接收数据长度 #define RX_PW_P3 0x14 // 接收频道0接收数据长度 #define RX_PW_P4 0x15 // 接收频道0接收数据长度 #define RX_PW_P5 0x16 // 接收频道0接收数据长度 #define FIFO_STATUS 0x17 // FIFO栈入栈出状态寄存器设置 #define uchar unsigned char #define uint unsigned int void delay(uint t) { while(t--) { _nop_(); _nop_(); } } void first() { CSN=1; CE=1; IRQ=1; } uchar SPI_RW(uchar byte) { uchar i; for(i=0; i<8; i++) // 循环8次 { MOSI = (byte & 0x80); // byte最高位输出到MOSI byte <<= 1; // 低一位移位到最高位 SCK = 1; // 拉高SCK,nRF24L01从MOSI读入1位数据,同时从MISO输出1位数据 byte |= MISO; // 读MISO到byte最低位 SCK = 0; // SCK置低 } return(byte); // 返回读出的一字节 } uchar NRF_white(uchar add,daa)//把daa数据写到add寄存器 { uchar status; CSN = 0; // CSN置低,开始传输数据 status = SPI_RW(add); // 选择寄存器,同时返回状态字 SPI_RW(daa); // 然后写数据到该寄存器 CSN = 1; // CSN拉高,结束数据传输 return(status); // 返回状态寄存器 } uchar NRF_read(uchar add)//从add寄存器度数据 { uchar dta; CSN=0; SPI_RW(add); dta=SPI_RW(0xff); CSN=1; return dta; } void main() { uchar ddd; first(); while(1) { CE=0; NRF_white(WRITE_REG+EN_RXADDR,0x01); CE=1; delay(20); ddd=NRF_read(READ_REG+EN_RXADDR); if(ddd==0x03) { led=0; } else { led=1; } delay(50000); } }
评论
    相关推荐
    • NRF24L01.rar
      通过STM32单片机实现对NRF24L01的控制
    • NRF24L01配置功能函数.zip
      NRF24L01不一样的配置方式,方便简洁明了,一个函数配置出所有你想要的功能。由结构体打包函数,每个参数设置都有注释说明,傻瓜式配置。 ------------------NRF24L01函数目录——————————————— ...
    • NRF24L01模块
      包含了NRF24L01模块的使用文档,原理图,及C语言代码,系统的分析了从硬件原理图到软件的各方面技术,及编C语言程代码!
    • FTDI_nRF24L01:nRF24L01 配置工具
      FTDI_nRF24L01 nRF24L01 配置工具 这个基于 qt 的工具允许您使用广泛的 FTDI(FT232R 和 FT245R)USB 到串行转换器将 nRF24L01nRF24L01+ 连接到您的 Windows/Linux PC。 对于开发,我正在使用这样的模块,任何...
    • NRF24L01手册
      NRF24L01中文版,内容比较全面。 nRF24L01是一款工作在2.4~2.5GHz世界通用ISM频段的单片无线收发器芯片 下载后输入文档密码wireless即可打开
    • 8,NRF24L01模块资料.rar
      此次NRF24L01的无线通信模块可,用于智能小车与四旋翼飞机相关的制造
    • nRF24L01.rar
      NRF24L01 library with all definition of registers and commands
    • NRF24L01.rar
      iNTERFACING NRF24L01 WITH STM32F4
    • NRF24L01资料.rar
      该压缩包包涵了无线传输模块的NRF24L01的中文和英文的数据手册
    • nrf24L01.zip
      2.4G配置使用,发送数据,与接收数据,采用一个频段可带多个字节,参考2.4g说明书