我如何与delphi中的HID USB设备通信



我研究这个问题已经有一段时间了,我似乎就是不能把它弄对。我有一个c++版本的软件,我想在delphi中制作,但我不能让它在delphi中工作。我需要一些教程或指南,可以告诉我如何连接,读取和写入数据到一个HID USB设备。

参见Jan Axelson的USB页面中的示例。他还写了一本书。USB完成。

参见Robert Marquardt的Delphi的HID控制器套件。

如果您使用的是Delphi 2009或更新版本,请点击以下问题的答案链接:using-hidcontroller-on- Delphi -2010

您可以使用QueryDosDevice获取完整的设备名称。在插入设备之前和之后列出所有条目,并查看列表中出现了哪些新条目。(我发现大多数HID设备在列表中出现了两次,还没有找到原因)。代码将包含"USB" "VID" "PID"和GUID。

你可以在CreateFile中使用这段代码,如果你在它前面加上"\?"并使用此句柄作为串行端口(我个人更喜欢使用THandleStream)。代码可能像这样:

var
  h:THandle;
begin
  h:=CreateFile(
    PChar('\?'+MyPortName),
    GENERIC_WRITE or GENERIC_READ,FILE_SHARE_WRITE or FILE_SHARE_READ,
    nil,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
  if h=INVALID_HANDLE_VALUE then RaiseLastOSError;
  MyPort:=THandleStream.Create(h);
  SetCommTimeouts(h,MyFCommTimeouts);

最新更新