在上一节中,我们利用向导生成了一个驱动程序,那么这个驱动程序正常工作了吗?现在我们就来测试一下,先不用向导生成的测试程序,我们先用BUS Hound来测试。
1、打开UBS Hound,切换到“Settings”页,设置Max Phase的值为64,这样只要读/写数据在64字节以内都能完整显示
2、切换到“Devices”页,选择“Easy USB 51 Programer”
3、双击“Easy USB 51 Programer”,弹出Bus Commander对话框,选择端点2输出那一项,Data Length设为64,Data随便填,然后点Run按钮
5、当按Run按钮时我们发现实验板的LED灯会闪烁,证明有数据传输,再切换到Bus Hound的Capture页,发现发向设备的数据被成功抓到,证明驱动程序是正常工作的
6、再修改一下下位机程序,让实验更生动一点,下面我们来实现这样一个功能:设备的端点2如果接收到数据马上将接收到的数据通过端点2发送到主机,扩展板上的LED的状态由接收到的第一个字节决定,如果第一个字节为0x00,LED全灭,如果第一个字节为0xFF,LED全亮。
1)修改下位机程序,修改main函数,内容如下:
- main()
- {
- if (Init_D12()!=0)
- return;
-
- EX0 = 1;
- PX0 = 0;
- EA = 1;
-
- while(1)
- {
- usbserve();
- if(bEPPflags.bits.configuration)
- {
-
-
- if(bEPPflags.bits.ep2_rxdone)
- {
- bEPPflags.bits.ep2_rxdone = 0;
-
- P0 = EpBuf[0];
-
- D12_WriteEndpoint(5,64,EpBuf);
- }
-
- }
- }
- }
2)编译,烧录程序
下载源代码
同样利用Bus Hound向设备发送数据,我们就可以看到效果。
7、到目前为止我们都是用第三方工具来进行测试的,现在我们用DriverStudio向导生成的测试程序进行测试。
1)编译测试程序的方法:
- ? 在VC6中选择菜单“Project”->“Set Active Project”->“TestApp”
- ? 选择菜单“DriverStudio”->“Build with BUILD.EXE”
2)运行测试程序:测试程序位于Easy_USB_51_Programer\exe\objchk\i386目录下,将其拷贝到C盘根目录(为了方便运行测试程序),在命令行模式下键入以内容:
我们将看到以下内容
查看测试程序得知发送的内容位于doWrite函数中,修改这个函数可以更改发送内容(记得重新编译测试程序后要重新拷贝一次)。
打开驱动程序的Read和Write函数一看,原来DriverWorks已经为我们完成了代码,是不是很简单?