ZHCACO6A january 2011 – may 2023
本文档的其余部分使用了以下术语:
主机应用程序开发人员在设置访问 USB 器件时,通常知道与其关联的器件的 VID/PID 对,因为两者通常由同一方设计。因此,该过程从调用 HID_GetSerNums() 开始。此函数接收 VID/PID 作为参数并返回一个序列号列表,其中每个序列号均代表总线上与 VID/PID 关联的一个物理 USB 器件。应用程序可以选择仅与其中一个物理器件交互,也可以为其提供与多个器件交互的功能。
应用程序开发人员通常还知道这些物理器件每个具有多少个接口。如果不知道这一点,可以调用函数 HID_GetNumOfInterfaces()。当调用 HID_Open() 来打开器件时,必须知道物理器件上的 HID 接口总数。
当使用 VID、PID 和序列号来筛选 HID 器件列表时,该列表中剩下的就是由这些参数描述的物理 USB 器件中的所有 HID 接口。此列表通常有一个或两个,但也可能像 MSP430 一样有多达 8 个。此列表的顺序与 HID 接口在物理器件的 USB 描述符中列出的顺序相同。这样,使用 API 堆栈的主机应用程序和 MSP430 应用程序可以相互“查找”,形成完整的数据链路。
知道 USB 器件内所需 HID 接口的 VID/PID、序列号和索引后,应用程序可以调用 HID_Open() 以打开与物理 USB 器件上 HID 接口的连接。
当应用程序使用完器件时(例如退出程序时),应用程序应使用 HID_Close() 关闭所有打开的 HID 器件。