【68013】上位机

少女dtysky

世界Skill

时刻2014.05.09

本文章将会记录基于官方提供的.NET API的简单使用。


简述

在官方提供的开发包内有两个类库,其中一个是Cyusb.dll,这个类库是.NET环境下的,封装的比较好,使用方便,建议使用。


对象建立

此处将会说明如何使用CYUSB.NET建立USB对象。

USBDeviceList MyUsbList = new USBDeviceList(CyConst.YYY);

这一句用于建立一个Cypress生产的USB设备列表,通过CyConst.YYY来指定列表所从属的设备类型,在这个应用中我选取的是DEVICES_CYUSB,表明作为一般的USB设备。
建立完成后,可以通过查看USBDeviceListCount属性来了解已连接设备的个数:

MyUsbList.Count

可以加上一句判断,若其值为零,提示用户重新连接设备。

CyFX2Device Fw = MyUsbList["Cypress FX2LP StreamerExample Device"] as CyFX2Device;

这一句建立一个FX2的对象,对象的初始化是通过指定一个正常连接后的设备驱动名称来执行的,比如此处我设定的是Cypress FX2LP StreamerExample Device
这个对象通常用于执行固件的下载,比如调用它的LoadRAM方法就是将固件下载到RAM之内,调试之时非常有用。

CyUSBDevice MyUsb = MyUsbList[0x04B4, 0x00F1] as CyUSBDevice;

这一句建立一个USB设备对象,初始化要求指定设备的VID和PID,VID对于此设备是确定的,PID是驱动所指定的,可以查找相关文档或者在设备管理器中查看。

CyUSBEndPoint MyOutPoint = MyUsb.EndPointOf(0x02);
CyUSBEndPoint MyInPoint = MyUsb.EndPointOf(0x86);
CyControlEndPoint MyControlPoint = MyUsb.ControlEndPt;

这几句用于建立该设备下的端口对象。CyUSBEndPoint指定的是传输端口,初始化要求指定端口地址,此处OUT端口指定为EP2,IN端口指定为EP6;CyControlEndPoint制定的是控制端口。


一些方法和属性

此处将会说明类的一些常用方法和属性。

bool XferData(ref byte[] data, ref int len)

这个方法在端口类之内,通过指定data(字节数组)和len(传输长度)来通过端口进行数据发送或采集,如果传输成功则返回True,否则返回Flase。
此方法是同步传输方法,使用比较简单,如果需要异步传输,请查看BeginDataXfer、FinishDataXfer方法。

TimeOut

这个属性对端口有效,用于指定一个超时时间,单位是ms,在传输中如果在该时间内未成功,则返回传输失败。

ReConnect()

此方法在CyUSBDevice类之内,用于重新连接设备。

Reset()

此方法在CyUSBDevice内,用于清空该设备的错误信息(不是硬件复位!)

LastError

该属性在端口类内,用于查看上一次出现错误的信息。

如果不是自己的创作,少女是会标识出来的,所以要告诉别人是少女写的哦。