您当前的位置:五五电子网电子知识单元电路接口电路用人机接口类型开发USB设备 正文
用人机接口类型开发USB设备

用人机接口类型开发USB设备

点击数:7812 次   录入时间:03-04 12:00:14   整理:http://www.55dianzi.com   接口电路

 ByRef lpNumberOfBytesRead As Long, _

 lpOverlapped As Long) _

As Long

读写报文缓冲区时,第一个字节是Report ID,其后是报文数据。报文缓冲区默认是八个报文,并且环状排列。因为数据读写是发生在主机轮训设备的时候,并不是由设备触发产生硬件中断,所以如不能及时读写,新的数据会覆盖旧的数据,导致生报文丢失。当数据读写频繁时应使用特征报文,它可以保证当报文数据没有变化时,HID不会传送新的数据。

当应用程序结束与HID的通信后,必须释放所有之前保留的资源。所涉及到的几个API函数如下:其中包括HidD_FreePreparsedData ,如下定义:

Public Declare Function_

HidD_FreePreparsedData Lib "hid.dll" _

(ByRef PreparsedData As Long) _

As Long

其作用是清除函数HidP_GetPreparsedData传回的PreparsedData数据所占用的缓冲区;函数SetupDiDestroyDeviceInfoLis定义为:

Public Declare Function_

SetupDiDestroyDeviceInfoList Lib_

"setupapi.dll" _

(ByVal DeviceInfoSet As Long) _

As Long

当不再使用SetupDiGetClassDevs时,应用上述函数释放其返回的数组hDevInfo数组。还有需要使用函数CloseHandle,它是一个非常通用的API函数,可以用于关闭通信。

4  小结

    实际编程表明使用VB开发HID类USB设备是一条非常方便快捷的途径,不需要编写底层驱动,涉及到的API函数多是大家熟知的通用用函数。但同时还必须注意到一点,HID类只支持控制传输与中断传输。控制传输通常不用于数据的传输,而中断传输的特点是保证最大延迟,也就是事务之间的时间。他没有保证传输速率,而是保证每笔事务之间的时间不会超过最大延时。所以中断传输适用于数据量不太大,但需要及时快速的传送,实时性要求较高的场合。对于数据量比较大的传输,是不宜使用中断传输的。因此HID设备应用的场合也必须根据该特点灵活使用。




上一页  [1] [2] 


本文关键字:接口  开发  接口电路单元电路 - 接口电路

《用人机接口类型开发USB设备》相关文章>>>