全球旧事资料 分类
为低、CE为高,启动发射模式,CE高电平持续时间最小为10μs。设置
RF24L01为ShockBurst发送模式。判断是否收到应答:数据发送完后,立即进入接收模式。如果在有效应答时间范围内收到应答信号,则认为温湿度信息成功发送到了接收端,此时状态寄存器的TX_DS位置高并把数据从TX_FIFO中清除掉;如果在设定时间范围内没有接收到应答信号,则重新发送数据。自动重发:当发完数据后,如果在有效应答的时间范围内没收到应答信号,且自动重发计数器溢出,则状态寄存器的MAX_RT位置高,不清除TX_FIFO中的数据。当MAX_RT或TX_DS为高电平时,引脚产生中断,IRQ中断通过写状态寄存器来复位。如果重发次数在达到设定的最大重发次数时还没有收到应答信号的话,在MAX_RX中
f断清除之前不会重发数据包,数据包丢失计数器PLOS_CNT在每次产生MAX_RT中断后加一。
发送端程序流程如图9所示。
开始
初始化NRF24L01
初始化定时器0
延时1s读取温湿度数据处理及装载等待定时中断
否定时1s?是进入中断
启动NRF24L01
发送数据
自动重发
否超重发数?是IRQ中断
否收到应答?是
结束
图9发送端程序流程图
412接收端流程初始化液晶显示TFT和无线模块
RF24L01:初始化TFT为黑屏。本系统的无线
模块为1对多无线收发,一个主机,多个终端不超过6个,需要配置多个接收通道。单片机控制引脚CE为低,使
RF24L01进入待机模式。将本机地址TX_ADDR通过SPI接口写入
RF24L01,当CSN为低时数据被不断写入。各通道接收地址RX_ADDR_P0RX_ADDR_P5与发送端地址TX_ADDR相同其中通道25只需设置低8位地址,高32位地址与通道1相同,无需设置,各通道接收数据长度设置为4个字节,各通道工作频率设为24GHz收发保持一致,各通道发射速率为1Mbs。
f接收配置:将PWR_UP、PRIM_RX、CE引脚置高,使
RF24L01进入接收模式;130μs后
RF24L01开始检测空中信息。
开始
初始化TFT及NRF24L01
绘制系统界面
预设温湿度上限值显示
节点编号检测?
2
显示节点2温湿度
3
显示节点3温湿度
4
显示节点4温湿度
接收配置启动NRF24L01否接收到数据?


是否超过
温湿度上限值?

报警并闪烁
结束
图10接收端程序流程图
接收到数据检测:读取状态寄存器,判断是否接收到数据。接收到有效的数据包后(地址匹配、CRC校验正确),将数据存储在RX_FIFO中,同时RX_DR位置高,并产生中断。接收到的数据为四个字节,第一字节为终端节点号,第二字节为湿度值,第三字节为温度值,第四字节为数据和校验信息。
温湿度上限r
好听全球资料 返回顶部