ZHCACO6A january   2011  – may 2023

 

  1.   1
  2. 1MSP430™ USB HID Windows API 编程人员指南
  3. 2引言
  4. 3实现
    1. 3.1 概述
    2. 3.2 文件组织
    3. 3.3 系统要求
    4. 3.4 MSP430 USB API 堆栈
    5. 3.5 Windows 如何将物理 USB HID 器件映射到主机应用程序
    6. 3.6 在系统上查找特定 HID 器件/接口并将其打开
    7. 3.7 发送/接收数据
    8. 3.8 检测 HID 器件的动态连接/断开
  5. 4函数调用参考
    1. 4.1 器件连接管理和初始化调用
      1. 4.1.1 VOID HID_Init(struct strHidDevice* pstrHidDevice)
      2. 4.1.2 DWORD HID_GetSerNums(WORD vid, WORD pid, struct strTrackSerialNumbers *serialNumList)
      3. 4.1.3 DWORD HID_GetNumOfInterfaces(WORD vid, WORD pid, DWORD numSerNums)
      4. 4.1.4 BYTE HID_Open(struct strHidDevice* pstrHidDevice, WORD vid, WORD pid, DWORD deviceIndex, char serialNumber[SERNUM_LEN], DWORD totalDevNum, DWORD totalSerNum)
      5. 4.1.5 BYTE HID_Close(struct strHidDevice* pstrHidDevice)
      6. 4.1.6 BYTE HID_GetVersionNumber(struct strHidDevice* pstrHidDevice, USHORT * VersionNumber)
    2. 4.2 发送/接收数据
      1. 4.2.1 BYTE HID_WriteFile(struct strHidDevice* pstrHidDevice, BYTE* buffer, DWORD bufferSize, DWORD* bytesSent)
      2. 4.2.2 BYTE HID_ReadFile(struct strHidDevice* pStrHidDevice, BYTE* buffer, DWORD bufferSize, DWORD* bytesReturned)
    3. 4.3 即插即用管理
      1. 4.3.1 BYTE HID_RegisterForDeviceNotification(HWND hWnd, HDEVNOTIFY* diNotifyHandle)
      2. 4.3.2 BYTE HID_UnregisterForDeviceNotification(HDEVNOTIFY* diNotifyHandle)
      3. 4.3.3 BOOL IsDeviceAffected(struct strHidDevice* pstrHidDevice)
  6. 5演示应用程序
  7. 6MSP430 USB 工具套件
  8.   HID 接口数据结构:strHidDevice
  9.   HID 数据管道器件上的报告格式
  10.   C 参考文献
  11.   C 修订历史记录

摘要

API 使用数据结构来包含与 HID 器件(在 hiddevice.h 中定义)相关的所有信息(请参阅表 7-1)。该结构的一个实例会被传递到涉及该器件的任何 API 调用中。

表 A-1 strHidDevice 结构定义
字段说明数据源
HANDLE hndHidDevice该 HID 器件的句柄。由 HID_Open() 写入。在 HID_Close() 期间设置为 INVALID_HANDLE_VALUE。
BOOL bDeviceOpen布尔值,表示器件已打开,并且 hndHidDevice 中的句柄有效。由 HID_Open() 和 HID_Close() 写入。
UINT uGetReportTimeout读取数据的超时值,以毫秒为单位。这是 HID_ReadFile() 在数据读取操作中等待器件提供任何给定报告的时间长度。必须由应用程序进行初始化。演示应用程序在 UsbAppDlg.cpp 中执行此操作。
UINT uSetReportTimeout写入数据的超时值,以毫秒为单位。这是 HID_WriteFile() 在数据发送操作中等待器件接收任何给定报告的时间长度。必须由应用程序进行初始化。演示应用程序在 UsbAppDlg.cpp 中执行此操作。
OVERLAPPED oRead异步 I/O 结构由 HID_Init() 初始化
OVERLAPPED oWrite异步 I/O 结构由 HID_Init() 初始化
WORD wInReportBufferLength输入报告的最大长度。由 HID_Init() 初始化,派生自器件的 USB 描述符。
WORD wOutReportBufferLength输出报告的最大长度。由 HID_Init() 初始化,派生自器件的 USB 描述符。
BYTE inBuffer[256]接收传入数据的缓冲区。由 by HID_readFile() 写入,由应用程序读取。
WORD inBufferUsedinBuffer[] 中的字节数。由 by HID_readFile() 写入,由应用程序读取。