NRF24L01 :在通信中的应用方法,经验总结(1) 2011-07-31 13:15 首先说一下: nRF24.L01 是一款新型单片射频收发器件,工作于 2.4 GHz~2.5 GHz ISM 频段。内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并融合了增强型 ShockBurst 技术,其中输出功率和通信频道可通过程序进行配置。nRF24L01 功耗低,在以-6 dBm 的功率发射时,工作电流也只有 9 mA;接收时,工作电流只有 12.3 mA,多种低功率工作模式(掉电模式和空闲模式)使节能设计更方便。 是想将这个 IC 调通,首先要多读一下技术文档: 下载技术文档 以下 C51 驱动 nRF24.L01 的源代码库(nRF24.L01.h) 此库文件适合发送端使用,在接收端会有所不同,请看第 2 部分的分析 在使用过程中,需要引用 //****************************************NRF24L01 端口定义*************************************** sbit CE =P2^0; sbit CSN =P2^1; sbit SCK =P2^2; sbit MOSI =P2^3; sbit MISO =P2^4; sbit IRQ =P2^5; //*********************************************NRF24L01************************************* #define TX_ADR_WIDTH 5 // 接收地址宽度,一般设置为 5 不要动它 #define RX_ADR_WIDTH 5 // 接收地址宽度,一般设置为 5 不要动它 #define TX_PLOAD_WIDTH 1 //接收数据的 数据宽度(最大为 32 字节),这里我设置为最小的 1 字节,方便调试 #define RX_PLOAD_WIDTH 1 //发送数据的 数据宽度(最大为 32 字节),这里我设置为最小的 1 字节,方便调试 uchar const TX_ADDRESS[TX_ADR_WIDTH]= {0x35,0x43,0x10,0x10,0x03}; // 这里就是设置了 5 个字节的 本地地址 /* 此处的地址:在 IC 内部真实地址是 反过来的。即:address = 0310104334 在数据发送时,发送到对方去的数据包括:数据本身+本地地址。与接收地址无关。 */ uchar const RX_ADDRESS[RX_ADR_WIDTH]= {0xEF,0xEF,0xEF,0xEF,0xEF}; //接收地址 /* 是指接受来自于发送方的地址(指发送方的本地地址),但在自动模式下,得到的应答信息中,包含的不是返回应答信息的对方的(本地地址) 而是 由 发送方(也就是发送原信息的机子一方) 的本地地址 */ uchar TxBuf[1]; // //***************************************NRF24L01 寄存器指令******************************************...