用Cyapi也有一阵了,这个确实比EZusb的api好用,简单说下Cyapi的使用心得,在编程中应该注意的一些问题,毕竟,说起来,那个CYapi的说明文档讲的实在太简单了点,好多东西都讲得不明白,只能 在使用中自己慢慢积累了。 首先说下前提,固件架构是EZ-USB FX2/FX2LP(CY7C68013),编译环境VC++ 6.0,驱动是Cyusb.sys。 上位机简单说下,建立一个MFC 单文档/对话框 应用程序;在路径项目中包含头文件cyapi.h和cyapi.lib所在的路径,{zh0}移到最上面。然后手动导入cyapi.lib,注意是CV6_7的lib,不要导入BCB的。 下面讲得是按照USB一般工作流程来讲得。 (1)USB连接 1.首先要建立一个USB设备对象 文档里有说的了,copy一下 CCyUSBDevice *USBDevice = new CCyUSBDev(Handle); 括号中的Handle是USB所关联对象的句柄,一般在MFC中直接就是m_hwnd。 2.然后就该是打开USB设备了 可以用到两个函数open();isopen() 这两个都可以用来打开USB设备,isopen()还可以判断能否获得USB设备句柄 一般来说,如果只有一个USB设备连接,可以这样打开: USBDevice->open(0) //打开0号USB设备 如果要判断,可以: if(! USBDevice->open(0)) //打开失败 {messagebox("USB未连接");} 或者 if(!USBDevice->Isopen()) .......... 如果连接有多个USB设备,那么可以枚举所有的USB,用到DeviceCount()函数;具体的可以参考cybulk的例子,执行USBDevice->DeviceCount()后,返回所连接的USB设备个数: if (USBDevice->DeviceCount()) //保证至少有一个USB设备连接 m_DeviceListComBox.AddString(USBDevice->DeviceName); //所选择的当前设备名 } 好了,今天说到这里,有空接着写~ 【谷】 |