圈圈通过对原来的USB摇杆实例进行修改,做了一个USB HID多媒体键盘,可以调节音量、启动Windows Media 播放器、停止/暂停播放、打开网页、打开计算器等等功能。由于摇杆和多媒体键盘都是HID设备,因而改动的工作量很 少,只需要修改一下VID、PID,字符串描述符、报告描述符、返回报告的格式即可。 板上各按键的功能分配如下:摇杆往上音量增加;摇杆往下音量降低;摇杆往左静音;摇杆往右启动Windows Media播放器;摇杆中键(确认键)为播放/暂停(对千千静听等播放器也有效);按键KEY2为打开网页;按键KEY3 为打开计算器。 从这里下载整个代码包:http://blog.**/computer00/141572/message.aspx 下载该压缩包,解压到ManleyEKBoardEKSTM32FUSBDemo(8M osc)USBDemoUSBLibdemos目录下, 然后编译,烧写调试即可。 运行后可以看到弹出的新硬件,以及设备管理器中的设备,一个为HID设备,一个为标准用户控制设备, 如下图所示:
报告描述符的代码如下: const u8 ReportDescriptor[SIZ_REPORT_DESC] = { 0x05, 0x0c, // USAGE_PAGE (Consumer Page) 0x09, 0x01, // USAGE (Consumer Control) 0xa1, 0x01, // COLLECTION (Application) 0x09, 0xea, // USAGE (Volume Decrement) 0x09, 0xe9, // USAGE (Volume Increment) 0x09, 0xe2, // USAGE (Mute) 0x09, 0xcd, // USAGE (Play/Pause) 0x0a, 0x83, 0x01, //USAGE (Windows Media Player(0x183)) 0x0a, 0x23, 0x02, //USAGE (AC Home(0x0223)) 0x0a, 0x92, 0x01, //USAGE (AL Calculator(0x192)) 0x15, 0x00, // LOGICAL_MINIMUM (0) 0x25, 0x01, // LOGICAL_MAXIMUM (1) 0x95, 0x07, // REPORT_COUNT (7) 0x75, 0x01, // REPORT_SIZE (1) 0x81, 0x02, // INPUT (Data,Var,Abs) 0x75, 0x01, // REPORT_SIZE (1) 0x95, 0x01, // REPORT_COUNT (1) 0x81, 0x03, // INPUT (Cnst,Var,Abs) 0xc0 // END_COLLECTION }; /* ReportDescriptor */ |
|