NRFL使用方法.pdf

上传人:b****1 文档编号:3175776 上传时间:2022-11-19 格式:PDF 页数:8 大小:359.29KB
下载 相关 举报
NRFL使用方法.pdf_第1页
第1页 / 共8页
NRFL使用方法.pdf_第2页
第2页 / 共8页
NRFL使用方法.pdf_第3页
第3页 / 共8页
NRFL使用方法.pdf_第4页
第4页 / 共8页
NRFL使用方法.pdf_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

NRFL使用方法.pdf

《NRFL使用方法.pdf》由会员分享,可在线阅读,更多相关《NRFL使用方法.pdf(8页珍藏版)》请在冰豆网上搜索。

NRFL使用方法.pdf

广东顺德春暖花开自动化开发设计工作室伍耀斌NRF24L01使用方法一、模块引脚二、电路原理图广东顺德春暖花开自动化开发设计工作室伍耀斌三、操作流程单片机需预留5个或6个端口给模块使用。

分别为CE、CSN、SCK、MOSI、MISO、IRQ。

CE:

芯片的模式控制线。

在CSN为低的情况下,CE协同NRF24L01的CONFIG寄存器共同决定NRF24L01的状态CSN:

芯片的片选线,CSN为低电平芯片工作。

SCK:

芯片控制的时钟线(SPI时钟)MOSI:

芯片控制数据线(Masteroutputslaveinput主机出从机入)MISO:

芯片控制数据线(Masterinputslaveoutput主机入从机出)IRQ:

中断信号。

无线通信过程中MCU主要是通过IRQ与NRF24L01进行通信。

(可省略)3.1发射:

1)写Tx节点的地址TX_ADDR2)写Rx节点的地址(主要是为了使能AutoAck)RX_ADDR_P03)写入需发送的数据TxDate4)使能AUTOACKEN_AA5)使能PIPE0EN_RXADDR6)配置自动重发次数SETUP_RETR7)选择通信频率RF_CH8)配置发射参数(低噪放大器增益、发射功率、无线速率)RF_SETUP9)选择通道0有效数据宽度Rx_Pw_P010)配置24L01的基本参数以及切换工作模式CONFIG。

voidNRFSetTxMode(uchar*TxDate)/发送模式CE=0;NRFWriteTxDate(W_REGISTER+TX_ADDR,TxAddr,TX_ADDR_WITDH);/写寄存器指令+P0地址使能指令+发送地址+地址宽度NRFWriteTxDate(W_REGISTER+RX_ADDR_P0,TxAddr,TX_ADDR_WITDH);/为了应答接收设备,接收通道0地址和发送地址相同NRFWriteTxDate(W_TX_PAYLOAD,TxDate,TX_DATA_WITDH);/写入数据TX_DATA_WITDH为数据长度/*下面有关寄存器配置*/NRFWriteReg(W_REGISTER+EN_AA,0x01);/使能接收通道0自动应答NRFWriteReg(W_REGISTER+EN_RXADDR,0x01);/使能接收通道0NRFWriteReg(W_REGISTER+SETUP_RETR,0x0a);/自动重发延时等待250us+86us,自动重发10次NRFWriteReg(W_REGISTER+RF_CH,0x40);/选择射频通道0x40NRFWriteReg(W_REGISTER+RF_SETUP,0x07);/数据传输率1Mbps,发射功率0dBm,低噪声放大器增益NRFWriteReg(W_REGISTER+CONFIG,0x0e);/CRC使能,16位CRC校验,上电CE=1;delayms(5);/NRFDelay(5);/保持10us秒以上广东顺德春暖花开自动化开发设计工作室伍耀斌3.2接收:

初始化步骤24L01相关寄存器1)写Rx节点的地址RX_ADDR_P02)使能AUTOACKEN_AA3)使能PIPE0EN_RXADDR4)选择通信频率RF_CH5)选择通道0有效数据宽度Rx_Pw_P06)配置发射参数(低噪放大器增益、发射功率、无线速率)RF_SETUP7)配置24L01的基本参数以及切换工作模式CONFIG。

voidNRFSetRXMode()CE=0;NRFWriteTxDate(W_REGISTER+RX_ADDR_P0,TxAddr,TX_ADDR_WITDH);/接收设备接收通道0使用和发送设备相同的发送地址NRFWriteReg(W_REGISTER+EN_AA,0x01);/使能接收通道0自动应答NRFWriteReg(W_REGISTER+EN_RXADDR,0x01);/使能接收通道0NRFWriteReg(W_REGISTER+RF_CH,0x40);/选择射频通道0x40NRFWriteReg(W_REGISTER+RX_PW_P0,TX_DATA_WITDH);/接收通道0选择和发送通道相同有效数据宽度NRFWriteReg(W_REGISTER+RF_SETUP,0x07);/数据传输率1Mbps,发射功率0dBm,低噪声放大器增益NRFWriteReg(W_REGISTER+CONFIG,0x0f);/CRC使能,16位CRC校验,上电,接收模式CE=1;delayms

(1);/NRFDelay(5);四、程序说明4.1发射:

/*PD3-20脚-CE-模块芯片开启信号激活RX或TX单片机输出PD2-19脚-CSN-模块SPI片选信号单片机输出PC7-17脚-SCK-模块SPI时钟信号单片机输出PC6-16脚-MOSI-模块SPI输入信号单片机输出PC5-15脚-MISO-模块SPI输出信号单片机输入PC4-14脚-IRQ-模块可屏蔽中断信号低电平有效单片机输入*/#include#includeucharRevTempDate5;/最后一位用来存放结束标志ucharTxAddr=0x34,0x43,0x10,0x10,0x02;/发送地址/*状态标志*/ucharsta;/状态标志广东顺德春暖花开自动化开发设计工作室伍耀斌/RX_DR=sta6;/TX_DS=sta5;PLC_BitState.BitState0.Bit.M4=1;/MAX_RT=sta4;structPLC_BITSTATE/-unionBITSTATE0charall;structBIT00ucharM0:

1;/ucharM1:

1;/ucharM2:

1;/ucharM3:

1;/ucharMAX_RT:

1;/不成功返回ACK信号,此为1.不成功为0ucharTX_DS:

1;/成功返回ACK信号,此为1.不成功为0ucharRX_DR:

1;/ucharM7:

1;/Bit;BitState0;PLC_BitState;/*SPI时序函数*/ucharNRFSPI(uchardate)/*NRF24L01初始化函数*/voidNRF24L01Int()/*SPI读寄存器一字节函数*/ucharNRFReadReg(ucharRegAddr)/*SPI写寄存器一字节函数*/ucharNRFWriteReg(ucharRegAddr,uchardate)/*SPI读取RXFIFO寄存器的值*/ucharNRFReadRxDate(ucharRegAddr,uchar*RxDate,ucharDateLen)/*SPI写入TXFIFO寄存器的值*/ucharNRFWriteTxDate(ucharRegAddr,uchar*TxDate,ucharDateLen)/*NRF设置为发送模式并发送数据*/voidNRFSetTxMode(uchar*TxDate)广东顺德春暖花开自动化开发设计工作室伍耀斌/*NRF设置为接收模式并接收数据*/接收模式voidNRFSetRXMode()/*检测是否有接收到数据*/ucharCheckACK()/*判断是否接收收到数据,接到就从RX取出*/用于接收模式ucharNRFRevDate(uchar*RevDate)/*端口配置*/voidIO_config(void)原理:

1、需要发射调用:

NRFSetTxMode(TxDate1);/发送数组1(其中TxDate1为存放所发的数据)while(CheckACK();/检测是否发送完毕2、voidNRFSetTxMode(uchar*TxDate)调用到:

ucharNRFWriteTxDate(ucharRegAddr,uchar*TxDate,ucharDateLen)写寄存器TXFIFOucharNRFWriteReg(ucharRegAddr,uchardate)写寄存器配置广东顺德春暖花开自动化开发设计工作室伍耀斌4.2接收:

/*PD3-20脚-CE-模块芯片开启信号激活RX或TX单片机输出PD2-19脚-CSN-模块SPI片选信号单片机输出PC7-17脚-SCK-模块SPI时钟信号单片机输出PC6-16脚-MOSI-模块SPI输入信号单片机输出PC5-15脚-MISO-模块SPI输出信号单片机输入PC4-14脚-IRQ-模块可屏蔽中断信号低电平有效单片机输入*/#include#includeucharRevTempDate5;/最后一位用来存放结束标志ucharTxAddr=0x34,0x43,0x10,0x10,0x02;/发送地址/*状态标志*/ucharsta;/状态标志/RX_DR=sta6;/TX_DS=sta5;PLC_BitState.BitState0.Bit.M4=1;/MAX_RT=sta4;structPLC_BITSTATE/-unionBITSTATE0charall;structBIT00ucharM0:

1;/ucharM1:

1;/ucharM2:

1;/ucharM3:

1;/ucharMAX_RT:

1;/ucharTX_DS:

1;/ucharRX_DR:

1;/ucharM7:

1;/Bit;BitState0;PLC_BitState;/*SPI时序函数*/ucharNRFSPI(uchardate)/*NRF24L01初始化函数*/voidNRF24L01Int()/*SPI读寄存器一字节函数*/广东顺德春暖花开自动化开发设计工作室伍耀斌ucharNRFReadReg(ucharRegAddr)/*SPI写寄存器一字节函数*/ucharNRFWriteReg(ucharRegAddr,uchardate)/*SPI读取RXFIFO寄存器的值*/ucharNRFReadRxDate(ucharRegAddr,uchar*RxDate,ucharDateLen)/*SPI写入TXFIFO寄存器的值*/ucharNRFWriteTxDate(ucharRegAddr,uchar*TxDate,ucharDateLen)/寄存器地址/写入数据存放变量/读取数据长度/用于发送/*NRF设置为发送模式并发送数据*/voidNRFSetTxMode(uchar*TxDate)/*NRF设置为接收模式并接收数据*/接收模式voidNRFSetRXMode()/*检测是否有接收到数据*/voidCheckACK()/用于发射模式接收应答信号/*判断是否接收收到数据,接到就从RX取出*/用于接收模式ucharNRFRevDate(uchar*RevDate)/*端口配置*/voidIO_config(void)GPIO_Init(GPIOD,GPIO_PIN_3,GPIO_MODE_OUT_PP_HIGH_FAST);/PB7高速推挽输出高电平-CEHIGHGPIO_Init(GPIOD,GPIO_PIN_2,GPIO_MODE_OUT_PP_HIGH_FAST);/PB6高速推挽输出高电平-CSN(片选)GPIO_Init(GPIOC,GPIO_PIN_7,GPIO_MODE_OUT

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > IT认证

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1