3.2 无线发送程序

无线发送程序流程如图3所示。完成C8051F340、串口发送、SPI和Si4432的初始化后,配置寄存器写入相应的初始化RF控制字。接下来,通过配置Si4432的寄存器3eh来设置包的长度,通过SPI连续写寄存器7fh,往TXFIFO里写入需要发送的数据。然后打开“发送完中断允许标志”,将其他中断都禁止。当有数据包发送完时,引脚IRQ会被拉低以产生一个低电平从而通知C8051F340数据包已发送完毕。完成中断使能后,使能发送功能,数据开始发送。等待IRQ引脚因中断产生而使电平拉低,当IRQ引脚变为低时读取中断状态并拉高IRQ,否则继续等待。如果数据发送成功,指示灯会变亮。一次数据发送成功后,进入下一次数据循环发送状态。

c.JPG

3.3 无线接收程序

无线接收程序流程如图4所示。程序完成C8051F340、串口接收、SPI接口和Si4432的初始化后,配置寄存器写入相应的初始化RF控制字。通过访问寄存器7fh从RX FIFO中读取接收到的数据。相应的控制字设置好之后,若引脚IRQ变成低电平,则表示Si4432准备好接收数据。完成这些初始化配置后,通过寄存器4bh读取包长度信息。然后,打开有效包中断和同步字检测中断,将其他中断都禁止。引脚IRQ用来检测是否有有效包被检测到,若引脚IRQ变为低电平,则表示有有效的数据包被检测到。本系统用0x2DD4作为同步模式的标志码,接收模块通过检测这个同步字来同步接收数据。最后,使能接收功能,数据开始接收。等待IRQ引脚因中断产生而使电平拉低,读取中断标志位复位IRQ引脚,使IRQ恢复至初始的高电平状态以准备下一次中断触发的检测。通过SPI读取RX FIFO中的数据,将数据送至液晶OCM12864显示,之后进入下一次数据接收状态。