nrf24l01发送程序 .pdf
《nrf24l01发送程序 .pdf》由会员分享,可在线阅读,更多相关《nrf24l01发送程序 .pdf(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、#include#include typedef unsigned char uchar;typedef unsigned char uint;/*IO端口定义*sbit MISO=P12;sbit MOSI=P32;sbit SCK =P16;sbit CE =P15;sbit CSN =P17;sbit IRQ =P13;/*数码管0-9编码*uchar seg10=0 xC0,0 xCF,0 xA4,0 xB0,0 x99,0 x92,0 x82,0 xF8,0 x80,0 x90;/09段码 uchar TxBuf32=0 x01,0 x02,0 x03,0 x4,0 x05,0 x0
2、6,0 x07,0 x08,0 x09,0 x10,0 x11,0 x12,0 x13,0 x14,0 x15,0 x16,0 x17,0 x18,0 x19,0 x20,0 x21,0 x22,0 x23,0 x24,0 x25,0 x26,0 x27,0 x28,0 x29,0 x30,0 x31,0 x32,;/*按键*sbit KEY1=P36;sbit KEY2=P37;/*数码管位选*sbit led1=P21;sbit led0=P20;sbit led2=P22;sbit led3=P23;/*NRF24L01*#define TX_ADR_WIDTH 5 /5 uints T
3、X address width#define RX_ADR_WIDTH 5 /5 uints RX address width#define TX_PLOAD_WIDTH 32 /20 uints TX payload#define RX_PLOAD_WIDTH 32 /20 uints TX payload uint const TX_ADDRESSTX_ADR_WIDTH=0 x34,0 x43,0 x10,0 x10,0 x01;/本地地址 uint const RX_ADDRESSRX_ADR_WIDTH=0 x34,0 x43,0 x10,0 x10,0 x01;/接收地址/*NRF
4、24L01寄存器指令*#define READ_REG 0 x00 /读寄存器指令#define WRITE_REG 0 x20 /写寄存器指令#define RD_RX_PLOAD 0 x61 /读取接收数据指令#define WR_TX_PLOAD 0 xA0 /写待发数据指令#define FLUSH_TX 0 xE1 /冲洗发送 FIFO 指令#define FLUSH_RX 0 xE2 /冲洗接收 FIFO 指令#define REUSE_TX_PL 0 xE3 /定义重复装载数据指令#define NOP 0 xFF /保留/*SPI(nRF24L01)寄存器地址*#define
5、CONFIG 0 x00 /配置收发状态,CRC 校验模式以及收发状态响应方式#define EN_AA 0 x01 /自动应答功能设置#define EN_RXADDR 0 x02 /可用信道设置#define SETUP_AW 0 x03 /收发地址宽度设置#define SETUP_RETR 0 x04 /自动重发功能设置#define RF_CH 0 x05 /工作频率设置#define RF_SETUP 0 x06 /发射速率、功耗功能设置#define STATUS 0 x07 /状态寄存器#define OBSERVE_TX 0 x08 /发送监测功能#define CD 0 x
6、09 /地址检测#define RX_ADDR_P0 0 x0A /频道 0 接收数据地址#define RX_ADDR_P1 0 x0B /频道 1 接收数据地址#define RX_ADDR_P2 0 x0C /频道 2 接收数据地址#define RX_ADDR_P3 0 x0D /频道 3 接收数据地址#define RX_ADDR_P4 0 x0E /频道 4 接收数据地址#define RX_ADDR_P5 0 x0F /频道 5 接收数据地址#define TX_ADDR 0 x10 /发送地址寄存器#define RX_PW_P0 0 x11 /接收频道 0 接收数据长度#de
7、fine RX_PW_P1 0 x12 /接收频道 0 接收数据长度#define RX_PW_P2 0 x13 /接收频道 0 接收数据长度#define RX_PW_P3 0 x14 /接收频道 0 接收数据长度#define RX_PW_P4 0 x15 /接收频道 0 接收数据长度#define RX_PW_P5 0 x16 /接收频道 0 接收数据长度#define FIFO_STATUS 0 x17 /FIFO 栈入栈出状态寄存器设置/*void Delay(unsigned int s);void inerDelay_us(unsigned char n);void init_N
8、RF24L01(void);uint SPI_RW(uint uchar);uchar SPI_Read(uchar reg);void SetRX_Mode(void);uint SPI_RW_Reg(uchar reg,uchar value);uint SPI_Read_Buf(uchar reg,uchar*pBuf,uchar uchars);uint SPI_Write_Buf(uchar reg,uchar*pBuf,uchar uchars);unsigned char nRF24L01_RxPacket(unsigned char*rx_buf);void nRF24L01_
9、TxPacket(unsigned char*tx_buf);/*长延时*void Delay(unsigned int s)unsigned int i;for(i=0;is;i+);for(i=0;i0;n-)_nop_();/*/*NRF24L01 初始化/*/void init_NRF24L01(void)inerDelay_us(100);CE=0;/chip enable CSN=1;/Spi disable SCK=0;/Spi clock line init high SPI_Write_Buf(WRITE_REG+TX_ADDR,TX_ADDRESS,TX_ADR_WIDTH
10、);/写本地地址 SPI_Write_Buf(WRITE_REG+RX_ADDR_P0,RX_ADDRESS,RX_ADR_WIDTH);/写接收端地址 SPI_RW_Reg(WRITE_REG+EN_AA,0 x01);/频道 0 自动 ACK 应 答 允 许 SPI_RW_Reg(WRITE_REG+EN_RXADDR,0 x01);/允许接收地址只有频道 0,如 果需要多频道可以参考 Page21 SPI_RW_Reg(WRITE_REG+RF_CH,0);/设置信道工作为 2.4GHZ,收发必须一致 SPI_RW_Reg(WRITE_REG+RX_PW_P0,RX_PLOAD_WIDT
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- nrf24l01发送程序 nrf24l01 发送 程序
限制150内