文档介绍://许多人都在找nrf24l01无线模块的c程序;我以前刚接触无线//时用的就是nrf24l01模块;搜索了许多程序有很多都没法直接用;甚至还怀疑模块是不是被我搞坏了;拿去让别人检测模块又是好的;为避免大家走弯路;我将我的程序发出来供大家参考;这是nrf24l01无线模块pcb图;下面有Nrf24l01无线模块的收发c程序;以下程序经本人亲自测试;绝对能用!!请注意以下几点:1、24L01模块的电源电压是否为3V-;2、如果您用的单片机是5V的话,请在IO口与模块接口之间串一个1K电阻;3、检查模块的GND是否与单片机的GND相连接4、先用程序进行调试,如果IO口不同,请更改IO口或相关时序;5、如果是51系列单片机, Hz;;at89c52通用;收发一体;一大截不废话了;上程序;此程序是按键控制led;当按下s的时候对应接受的led会闪闪发光;很简单的~如果要实现其他更先进的功能;自己发掘吧~~务必将硬件连接正确;否则;它不会工作的~~当然做什么都要严谨~~错一点就差大了~~《《收发一体程序》》#include<>#include<>typedefunsignedcharuchar;typedefunsignedcharuint;//****************************************NRF24L01端口定义***************************************sbit MISO =P1^3;sbit MOSI =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*************************************#X_ADR_WIDTH5 //5uintsTXaddresswidth#defineRX_ADR_WIDTH5 //5uintsRXaddresswidth#X_PLOAD_WIDTH20 //20uintsTXpayload#defineRX_PLOAD_WIDTH20 //20uintsTXpayloaduintconstTX_ADDRESS[TX_ADR_WIDTH]={0x34,0x43,0x10,0x10,0x01}; //本地地址uintconstRX_ADDRESS[RX_ADR_WIDTH]={0x34,0x43,0x10,0x10,0x01}; //接收地址//***************************************NRF24L01寄存器指令*******************************************************#defineREAD_REG0x00 //读寄存器指令#defineWRITE_REG0x20 //写寄存器指令#defineRD_RX_PLOAD0x61 //读取接收数据指令#defineWR_TX_PLOAD0xA0 //写待发数据指令#defineFLUSH_TX0xE1 //冲洗发送FIFO指令#defineFLUSH_RX0xE2 //冲洗接收FIFO指令#defineREUSE_TX_PL0xE3 //定义重复装载数据指令#defineNOP0xFF //保留//*************************************SPI(nRF24L01)寄存器地址****************************************************#defineCONFIG0x00//配置收发状态,CRC校验模式以及收发状态响应方式#defineEN_AA0x01//自动应答功能设置#defineEN_RXADDR0x02//可用信道设置#defineSETUP_AW0x03//收发地址宽度设置#defineSETUP_RETR0x04//自动重发功能设置#defineRF_CH0x05//工作频率设