DevLCCIoControl(NRFdriver.IS SEND STATUS,NULL,0,NULL,0.NULL,NULL);
③调用WriteFile函数完成发送,核心代码如下:
WriteFile(NRFdriver,(LPCVOID)p,strL,NULL,NULL);
4.2 数据接收
数据接收步骤如下:
①打开设备,方法同4.1节步骤①。
②通过DeviceIocontrol()函数设置为接收模式并使用默认地址,核心代码如下:
DeviceIoControl(NRFdrivcr,IS_ACCEPT_STATUS,NULL,0,NULL,0,NULL,NULL);
③创建接收线程及与驱动中同名的接收完成同步事件,在接收线程中调用WaitForSingleObject()函数等待有效。如有效,则调用ReadFi le()函数读取数据并显示。核心代码如下:
以上驱动及测试程序均是在VC2008环境中完成。在WinCE6.0系统中运行测试程序还应该在注册表中导入如下注册信息:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\NRF24L01]
“Prefix”=“NRF”
“Dll”=“NRFDriver.DLL”
以上内容中,驱动程序注册的设备名称为“NRF”,驱动程序名为“NRFDriver.dll”。
5 测试效果
5.1 接收测试
采用MSP430F149开发板和nRF24L01模块搭建发射端,然后利用该发射端每秒发送32个字节的数据,数据内容为1~32。ARM接收端接收到数据并将它显示到LCD上。
5.2 发送测试
用MSP430F149开发板和nRF24L01模块搭建接收端,然后利用MSP430F149的串行口将接收到的数据发送到计算机,通过串口调试助手就可以观察到ARM端发送来的数据。
结语
驱动程序的编写是嵌入式系统开发的重要核心步骤。文中详细阐述了nRF24L01驱动程序和测试程序的开发,通过测试该驱动程序能够较好地完成无线通信的功能,满足实际需求。