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 修订历史记录

引言

USB 人机接口器件 (HID) 类是不同操作系统之间支持最广泛的器件类之一。虽然 HID 最初是为鼠标和键盘开发的,但它在通用用途方面具有许多优势。

通用 USB 应用的一个常见选择是虚拟 COM 端口,该端口可以使用通信器件类 (CDC) 来实现。COM 端口易于在主机平台上实现,并且为开发人员所熟知。缺点是 Windows 主机的 USB 虚拟 COM 端口解决方案需要最终用户完成器件安装过程。除了有点麻烦外,如果用户选择了错误的选项,这个过程可能会出错。此外,企业环境中的一些用户没有管理权限,因此,如果没有网络管理员的帮助,他们就无法进行器件安装。相比之下,HID 器件会以静默方式加载,绕过了所有这些问题。

HID 确实有一些缺点。与虚拟 COM 端口相比,许多软件工程师对其用法并不熟悉。HID 依靠“报告”来传输数据,并且这些复杂的格式通常不会为通用应用提供实际价值。基本 HID 实现的带宽限制为 64KB/s。

为了弥补这些缺点,TI 提供了一个 Windows HID API 和演示工程。它经过简化,无需创建 HID 报告,就能与可通过 MSP430 HID API 堆栈实现的数据管道接口 配合使用。它支持复合 HID 器件,让开发人员可以轻松地将多个 HID 接口合并到一个 USB 器件内,从而使带宽倍增。

MSP430 HID API 堆栈和 Windows HID API 组合在一起构成了一个端到端解决方案,对于许多通用应用而言,该解决方案比虚拟 COM 端口更具优势。

有关 MSP430 MCU 的 USB 支持软件,请参阅 https://www.ti.com/tool/MSP430USBDEVPACK 上的 MSP430 USB 开发套件。