USBD HID Custom In/Out¶
1 功能概述¶
本例程演示 CherryUSB 组件的 HID Custom In/Out Device(自定义人机接口设备)的基本功能与使用方法。
2 环境准备¶
硬件设备与线材:
PAN107X EVB 核心板与底板各一块
JLink 仿真器(用于烧录例程程序)
USB-TypeC 线一条(用于底板供电和查看串口打印 Log)
杜邦线数根或跳线帽数个(用于连接各个硬件设备)
硬件接线:
将 EVB 核心板插到底板上
使用 USB-TypeC 线,将 PC USB 插口与 EVB 底板 USB->UART 插口相连
使用杜邦线将 EVB 底板上的 TX 引脚接至核心板 P16,RX 引脚接至核心板 P17
使用杜邦线将 JLink 仿真器的:
SWD_CLK 引脚与 EVB 底板的 P00 排针相连
SWD_DAT 引脚与 EVB 底板的 P01 排针相连
SWD_GND 引脚与 EVB 底板的 GND 排针相连
使用跳线帽将 EVB 底板的:
USB+ 排针与 P14 排针相连
USB- 排针与 P13 排针相连
PC 软件:
串口调试助手(UartAssist)或终端工具(SecureCRT),波特率 921600(用于接收串口打印 Log)
3 编译和烧录¶
例程位置:<PAN10XX-NDK>\01_SDK\nimble\samples\component\usbd_hid_custom_inout\keil_107x
双击 Keil Project 文件打开工程进行编译烧录。
4 例程演示说明¶
烧录完成后,芯片会通过串口打印例程初始化 Log:
Try to load HW calibration data.. DONE. - Chip Info : 0x61 - Chip CP Version : 255 - Chip FT Version : 7 - Chip MAC Address : E11000014DE5 - Chip UID : B90801465454455354 - Chip Flash UID : 4250315A3538380B01FD8B435603EF78 - Chip Flash Size : 512 KB (Inc. 4KB Panchip Info Area) - Current Flash Map : +-------------------------+ <- Addr: 0x00000 | App Partition | | (480 KB) | +-------------------------+ <- Addr: 0x78000 | KVStore Partition | | ( 16 KB) | +-------------------------+ <- Addr: 0x7C000 | User Custom Partition | | ( 12 KB) | +-------------------------+ <- Addr: 0x7F000 | Panchip Info Area | | (4 KB, Hidden) | +-------------------------+ <- End : 0x80000 (512 KB) [I] App started.. [I] USBD_EVENT_INIT [I] USBD_EVENT_DISCONNECTED
使用 USB-TypeC 线,将 PC USB 插口与 EVB 底板的 USB 插口相连
观察串口 Log,提示 USB 初始化成功:
[I] USBD_EVENT_CONNECTED [I] USBD_EVENT_RESET [I] USBD_EVENT_RESET [I] USBD_EVENT_CONFIGURED
打开设备管理器,可以看到新增了一个名为 符合 HID 标准的供应商自定义设备 的人机接口设备,检查其 VID/PID,发现也与例程设置一致:
USB HID 自定义设备枚举成功¶
双击例程目录下的 HID 通信测试脚本
usbd_hid_custom_inout_test.bat
,在弹出的命令行界面中可观察到 HID 数据收发测试过程及结果:USB HID 自定义设备数据收发测试¶
注:此测试脚本依赖 python 的 pywinusb 库,若脚本执行失败,提示未找到此库,则需手动安装:
pip install pywinusb
提醒
本例程代码中编写的 USB HID Report(报告描述符),为了测试严谨,包含了额外的 Report ID 定义,但这可能会使得您从网络上下载的某些 USB HID 上位机测试工具无法正常识别;若您想避免此问题,可以使用我们提供的另一份简单版本的 HID Report,具体请参考 USBD HID Custom In/Out and MSC RAM Disk 例程。