使用Delphi与Usb设备进行通讯 

下面是访问 USB 设备的类单元文件:
{
<wbr><wbr><wbr><wbr> Usb通讯操作助手<br><wbr><wbr><wbr><wbr> Date:<wbr><wbr><wbr><wbr> 2008-7-10<br><wbr><wbr><wbr><wbr> Version: 1.0<br><wbr><wbr><wbr><wbr> Author:<wbr><wbr> zlz (47953@163.com)<br><wbr><wbr> }<br> unit TUsbUtil_U;<br> interface<br> uses Windows, Messages, SysUtils, Variants, Classes,<br><wbr><wbr> StdCtrls,Dialogs,SetupApi;<br> const<br><wbr><wbr><wbr><wbr> MAX_PATH<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> = 260;<wbr><wbr><wbr><wbr> //文件名最大长度<br><wbr><wbr> MAX_DATA_BUFFER<wbr><wbr> = 1024;<wbr><wbr><wbr><wbr> //缓冲区大小<br> Type<br><wbr><wbr> //数据缓存<br><wbr><wbr> TDataBuffer = record<br><wbr><wbr><wbr><wbr><wbr><wbr> DataBuffer:array[0..MAX_DATA_BUFFER] of byte;<wbr><wbr> //缓存数据<br><wbr><wbr><wbr><wbr> DataSize :Integer;<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> //缓存数据长度<br><wbr><wbr> end;<br><wbr><wbr> //串口操作助手<br><wbr><wbr> TUsbUtil<wbr><wbr> = class(TObject)<br><wbr><wbr> public<br><wbr><wbr><wbr><wbr> function Open(usbguid:String) :boolean;<wbr><wbr><wbr><wbr><wbr><wbr> //打开USB设备<br><wbr><wbr><wbr><wbr> procedure Close();<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> //关闭USB设备<br><wbr><wbr><wbr><wbr> procedure WriteBytes(bs:TDataBuffer);<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> //向USB设备发送字节数组<br><wbr><wbr><wbr><wbr> function ReadBytes():TDataBuffer;<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> //从USB设备读取数据<br><wbr><wbr> private<br><wbr><wbr><wbr><wbr> hUsbHandle :<wbr><wbr> THandle;<br><wbr><wbr><wbr><wbr> //打开一个设备<br><wbr><wbr> function OpenOneDevice(hDvcInfo:HDEVINFO; DvcInfoData:PSPDeviceInterfaceData ; sDevNameBuf:pchar) :THandle;<br><wbr><wbr><wbr><wbr> //打开指定的USB设备<br><wbr><wbr><wbr><wbr> function OpenUsbDevice(pGuid :TGUID; sDevNameBuf :pchar):THandle;<br><wbr><wbr> end;<br> implementation<br> { TUsbUtil }<br> procedure TUsbUtil.Close;<br> begin<br><wbr><wbr><wbr><wbr> CloseHandle(hUsbHandle);<br> end;<br> function TUsbUtil.Open(usbguid: String): boolean;<br> var<br><wbr><wbr> DeviceName: array[0..MAX_PATH] of char;<br><wbr><wbr> USB_GUID<wbr><wbr> : TGUID;<br> begin<br><wbr><wbr><wbr><wbr><wbr><wbr> Result := false;<br><wbr><wbr><wbr><wbr><wbr><wbr> USB_GUID := StringToGuid('{' + usbguid + '}');<br><wbr><wbr><wbr><wbr><wbr><wbr> hUsbHandle := OpenUsbDevice(USB_GUID, DeviceName);<br><wbr><wbr><wbr><wbr><wbr><wbr> if (hUsbHandle = INVALID_HANDLE_VALUE) then<br><wbr><wbr><wbr><wbr><wbr><wbr> begin<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值