现按后一种模式初始化。在配置为接收数据时,nRF24L01接收到数据包后,由硬件解析地址数据和信息数据,当接收到有效信息数据后,在IRQ引脚产生中断,并通知外部处理器读取数据。在配置为发送数据时,nRF24L0l发送数据包后,自动切换到接收模式已接收返回的确认信号,当收到确认信号后,IRQ引脚产生数据发送完成中断,如果没有握手信号返回,则表示发送失败,器件自动重新发送,如果重新发送的次数超过在ARC_CNT寄存器中的设定值时,会在IRQ引脚产生重发次数超限中断。MCU查询STATUS寄存器的值,即可判断是发送完成中断,还是重发次数超限中断。
当发送端nRF24L0l配置成PTX模式时,配置nRF24L01工作在后一种发送模式下,重新发送的等待时间为250μs,重新发送次数为10次,地址是TX_AW,输出功率为0 dBm,速度为2 Mb/s,并且使能发送完成和重发送次数超限两种中断,CRC校验位为2字节,nRF24L01处于POWER_UP状态。函数中WRITE_REG为写命令基地址0x20。程序如下:
当接收端nRF24L01模块配置成PRX模式时,配置nRF24L0l工作在接收模式下,地址是RX_AW,负载数据宽度是TX_PL_W,使能接收完数据中断,CRC校验位为2字节,nRF24L01处于POWER_UP状态。程序如下:
5.2 nRF24L01的数据收发
(1)发送数据 当nRF24L0l模块配置成发送模式后,向发送FIFO输入数据即可启动传输。发送8 Byte的程序如下:
(2)接收数据 当nRF24L0l模块配置成接收模式后,在接收到数据中断发生时,从接收FIFO读取数据。接收8字节的程序如下:
6 结语
介绍了基于ARM和nRF24L0l的无线数字传输系统的硬软件设计。该系统已应用于微型飞行器的实时图像传输和遥测中。在实际应用中,可根据需要,将nRF24LOl组成一对一、一对多、多对多的结构。该系统还可广泛应用于无线测控、文件传输等领域。