单片机对nRF2401收发数据的C语言实现
对nRF2401的编程包括对nRF2401进行配置、发送数据、接收数据等子程序。首先定义如下:
如果在发射模式状态则发射数据;如果在接收模式状态则等待中断触发并接收数据;如果想节电则选择空闲模式和关机模式。
(2)软件实现SPI接口51系列单片机没有硬件SPI接口,因此必须用软件模拟SPI接口读、写外部数据。写1字节的程序如下:
}
单片机模拟SPI接口读l字节的
nRF2401可以根据需要配置工作状态。配置字最多18字节,常用配置字如表2所示。配置后频道l有效数据的最大长度为256-ADDR_W-CRC,为2400+RF_CH#xlM。
配置为ShockBurstTM收发模式的例子如下:字节从高到低分别为
将配置字存在setdata[18]数组中,从最高位开始依次通过SPI接口送给配置寄存器.具体程序如下:
MODE_CFO;//进入设置模式Delay0;//延时202μsfor(i=O;i<18;i++)//配置字从最高位开始送人nRF2401writebyte(setdata[i]);CS=O;//新的配置字开始工作(4)接收数据的C程序采用中断方式从nRF2401接收数据,编程使能单片机中断O(IE=Ox81)。当nRF2401收到一个有效的数据包时(正确的地址和CRC),自动移去前缀、地址和CRC位,然后把DR1置高以产生中断信号。具体接收代码如下:
式。
nRF2401直接收发模式实现
在直接收发模式下,数据传输速率是lMbps或250kbps,配置时需要2字节的配置字。通过nRF2401发送数据时,单片机将CLK1置0.在CE置高2008后,单片机根据设置的速率发出数据包(包括前缀码、地址、有效数据、CRC)。接收数据时,如果nRF2401接收到有效的字头,则会以同样的速率发出时钟和数据信号,把射频数据包以其被发射时的数据从DA-TA引脚发送给单片机。
- 上一篇:白色LED发光工作原理
- 下一篇:51系列单片机(C语言)入门方法