NRF24L01.rar

  • YHM
    了解作者
  • C/C++
    开发工具
  • 477KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 10 积分
    下载积分
  • 2
    下载次数
  • 2017-10-13 15:57
    上传日期
实现51单片机NRF24L01模块的无线通信
NRF24L01.rar
内容介绍
#include <STC15F2K60S2.h> //单片机头文件 /***SPI引脚定义*****/ sbit CSN = P2^4; //从设备片选信号,由主设备控制。 sbit SCK = P0^0; //SCLK时钟信号,由主设备产生。 sbit MOSI = P2^5; //主设备数据输出,从设备数据输入。 sbit MISO = P2^7; //主设备数据输入,从设备数据输出。 sbit CE = P0^1; //NRF24L01模式控制线。在 CSN为低的 情况下,CE 协同CONFIG 寄存器 共同决定NRF24L01 的状态 sbit IRQ = P6^1; //NRF24L01中断线; uchar bdata sta; //状态标志 sbit RX_DR =sta^6; sbit TX_DS =sta^5; sbit MAX_RT =sta^4; //*****************************************长延时***************************************** void delays(unsigned char s) { unsigned char i; for(i=0; i<s; i++) { _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); // _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); // _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); // _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); } } /**************************************************************************************************** /*功能:NRF24L01的 SPI同步读写时序 /****************************************************************************************************/ uchar SPI_RW(uchar reg) { uchar bit_ctr; for(bit_ctr=0;bit_ctr<8;bit_ctr++) // output 8-bit { MOSI = (reg & 0x80); // output 'uchar', MSB to MOSI reg = (reg << 1); // shift next bit into MSB.. SCK = 1; // Set SCK high.. reg |= MISO; // capture current MISO bit SCK = 0; // ..then set SCK low again } return(reg); // return read uchar } /**************************************************************************************************** /*功能:NRF24L01的SPI读寄存器时序 /****************************************************************************************************/ uchar SPI_Read(uchar reg) { uchar reg_val; CSN = 0; // CSN low, initialize SPI communication... SPI_RW(reg); // Select register to read from.. reg_val = SPI_RW(0); // ..then read registervalue CSN = 1; // CSN high, terminate SPI communication return(reg_val); // return register value } /****************************************************************************************************/ /*功能:NRF24L01读写寄存器函数 /****************************************************************************************************/ uchar SPI_RW_Reg(uchar reg, uchar value) { uchar status; CSN = 0; // CSN low, init SPI transaction status = SPI_RW(reg); // select register SPI_RW(value); // ..and write value to it.. CSN = 1; // CSN high again return(status); // return nRF24L01 status uchar } /****************************************************************************************************/ /*功能: 用于读数据,reg:为寄存器地址,pBuf:为待读出数据地址,uchars:读出数据的个数 /****************************************************************************************************/ void SPI_Read_Buf(uchar reg, uchar *pBuf, uchar uchars) { uchar i; CSN = 0; // Set CSN low, init SPI tranaction SPI_RW(reg); // Select register to write to and read status uchar for(i=0;i<uchars;i++) pBuf[i] = SPI_RW(0); // CSN = 1; } /********************************************************************************************************* /*功能: 用于写数据:为寄存器地址,pBuf:为待写入数据地址,uchars:写入数据的个数 /*********************************************************************************************************/ void SPI_Write_Buf(uchar reg, uchar *pBuf, uchar uchars) { uchar status,i; CSN = 0; //SPI使能 status = SPI_RW(reg); for(i=0; i<uchars;i++) // SPI_RW(*pBuf++); CSN = 1; //关闭SPI }
评论
    相关推荐
    • 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说明书