您现在的位置: USB开发网 > USB开源项目 > Easy USB 51 Programer Plus
- Easy USB 51 Programer Plus

真正的实例—测试驱动程序

------分隔线----------------------------

   在上一节中,我们利用向导生成了一个驱动程序,那么这个驱动程序正常工作了吗?现在我们就来测试一下,先不用向导生成的测试程序,我们先用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函数,内容如下:

 
  1. main()    
  2. {       
  3.     if (Init_D12()!=0)                  //初始化D12    
  4.         return;                         //如果初始化不成功,返回    
  5.    
  6.     EX0 = 1;                            //开外部中断0    
  7.     PX0 = 0;                            //设置外部中断0中断优先级    
  8.     EA = 1;                             //开80C51总中断    
  9.    
  10.     while(1)    
  11.     {    
  12.         usbserve();                     //处理USB事件    
  13.         if(bEPPflags.bits.configuration)    
  14.         {    
  15.                 
  16.             //在这里添加端点操作代码    
  17.             if(bEPPflags.bits.ep2_rxdone)   //端点2收到数据    
  18.             {    
  19.                 bEPPflags.bits.ep2_rxdone       = 0;                                    
  20.                         
  21.                     P0  = EpBuf[0];                //由接收到的第一个数据控制LED扩展板EXT-BOARD-A上LED的状态    
  22.                         
  23.                     D12_WriteEndpoint(5,64,EpBuf);    
  24.             }           
  25.                 
  26.         }    
  27.     }    
  28. }    

  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已经为我们完成了代码,是不是很简单?

------分隔线----------------------------
联系我们
  • Q Q: 1148374829 点击这里给我发消息
  • 旺旺:jhoneqhsieh 点击这里给我发消息
  • 电话:(0)15923141204
  • 淘宝网店