nrf24l01无线模块NRF24L01模块收发c程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

//许多人都在找nrf24l01无线模块的c程序;我以前刚接触无线//时用的就是nrf24l01模块;搜索了许多程序有很多都没法直接用;甚至还怀疑模块是不是被我搞坏了;拿去让别人检测模块又是好的;为避免大家走弯路;我将我的程序发出来供大家参考;

这是nrf24l01无线模块pcb图;

下面有Nrf24l01无线模块的收发c程序;以下程序经本人亲自测试;绝对能用!!

请注意以下几点:

1、24L01模块的电源电压是否为3V-3.6V之间;

2、如果您用的单片机是5V的话,请在IO口与模块接口之间串一个1K电阻;

3、检查模块的GND是否与单片机的GND相连接

4、先用程序进行调试,如果IO口不同,请更改IO口或相关时序;

5、如果是51系列单片机,晶振请选用11.0592M Hz;

模块供电最好用asm1117 5v转3.3v 稳压

测试单片机是stc89c52;at89c52 通用;

收发一体;

一大截不废话了;上程序;此程序是按键控制led;当按下s的时候对应接受的led会闪闪发光;很简单的~如果要实现其他更先进的功能;自己发掘吧~~

务必将硬件连接正确;否则;它不会工作的~~当然做什么都要严谨~~错一点就差大了~~

《《收发一体程序》》

#include

#include

typedef unsigned char uchar;

typedef unsigned char uint;

//****************************************NRF24L01端口定义

***************************************

sbit M ISO =P1^3;

sbit M OSI =P1^4;

sbit SCK =P1^2;

sbit CE =P1^1;

sbit CSN =P3^2;

sbit IRQ =P3^3;

//************************************按键***************************************************

sbit KEY=P2^0;

//***************************************************************************** sbit led=P2^1;

//*********************************************NRF24L01*********************** **************

#define TX_ADR_WIDTH 5 // 5 uints TX address width

#define RX_ADR_WIDTH 5 // 5 uints RX address width

#define TX_PLOAD_WIDTH 20 // 20 uints TX payload

#define RX_PLOAD_WIDTH 20 // 20 uints TX payload

uint const TX_ADDRESS[TX_ADR_WIDTH]= {0x34,0x43,0x10,0x10,0x01}; //本地地址uint const RX_ADDRESS[RX_ADR_WIDTH]= {0x34,0x43,0x10,0x10,0x01}; //接收地址//***************************************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接收数据地址

相关文档
最新文档