1 / 8
文档名称:

Nrf24l01使用心得.docx

格式:docx   大小:21KB   页数:8页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Nrf24l01使用心得.docx

上传人:mh900965 2017/12/20 文件大小:21 KB

下载得到文件列表

Nrf24l01使用心得.docx

相关文档

文档介绍

文档介绍:Nrf24l01使用心得
使用nrf24l01+也有一段时间了,期间老是出现各种问题,总结一下,其实就是引脚分配问题、电压提供问题以及最重要的程序问题。
关于引脚分配,刚开始我老是在纠结这个IRQ引脚到底应不应该连接到MCU的外部中断引脚,后来经实践证明,是不用的,这当然也给我们PCB布线时提供了方便,引脚随便分配,只要模拟出的SPI通信协议正确就行。
电压的提供,nrf24L01(+),这个可以用AMS1117-,说明书上说串接一个2K左右的电阻,我试过,这种方法不怎么好。
最重要的程序问题,其实对于不研究无线通信的人来说,知道它怎么用就行了,因为上面的寄存器实在是太多了,记不住。这些程序网上也有很多(看多了就会发现都是一样的,只不过是使用的方法不一样罢了,主题还是一样),先上程序,再说其中应该注意的点。我是用模块化编程的方法实现的,MCU使用的是STC89C52RC.
程序如下:
C文件:

#include<>
#include<>
typedef unsigned char uchar;
typedef unsigned int uint;
//****************************************NRF24L01端口定义***************************************
sbit MISO =P2^3;
sbit MOSI =P2^1;
sbit SCK =P2^4;
sbit CE =P2^5;
sbit CSN =P2^0;
sbit IRQ =P2^2;
//*********************************************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 3 // 20 uints TX payload
#define RX_PLOAD_WIDTH 3 // 20 uints TX payload
uchar const TX_ADDRESS[TX_ADR_WIDTH]= {0x34,0x43,0x10,0x10,0x01}; //本地地址
uchar 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 // 读取接收数据指令
#d