nrf24l01无线模块NRF24L01模块收发c程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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接收数据地址