一、 概述
本篇文章将介绍如何将 SDK 上添加键盘多媒体按键的功能,实现控制电脑音量、亮度调节
二、 环境搭建
2.1 SDK 下载
本文基于 NXP QN9080 IC,SDK 可在 NXP 官网 https://mcuxpresso.nxp.com 下载
2.2 硬件
本文基于 QN9080 DK 板进行开发,DK 板如图 2.2 所示
图 2.2
2.3 开发软件
SDK 支持 IAR 、 Keil 、 MCUXpreeso IDE 三种开发软件、本文以 IAR 为开发环境作为介绍
三、 工程移植
在 SDK_2.2.0_QN908XCDK\boards\qn908xcdk\usb_examples\usb_device_composite_hid_mouse_hid_keyboard\freertos 工程上已经实现 USB 键盘鼠标的功能,我们可在此工程上添加功能
3.1 Report Map 修改
键盘按键包括普通按键、控制按键、多媒体按键,在 SDK 例程 usb_device_descriptor.c 中已添加普通按键、控制按键的 Report Map,如图 3.1 中 ① 所示,在此处添加多媒体的 Report Map ,由 Report ID 区分,如图 3.1 中 ② 所示,普通键 Report ID 为 0x01,多媒体按键的 Report ID 为 0x02
图 3.1
3.2 修改Report Map大小
Report Map 增加了多媒体,需要相应修改数组大小,在usb_device_descriptor.h中将 Map数组大小增加 29,如图 3.2 所示
图 3.2
3.3 修改发送内容
在 hid_keyboard.c 中修改发送内容,多媒体的 Report ID 为 0x02,放在 buff 0 。本次测试多媒体静音的功能,音量加和音量减可修改对应得键值实现。静音的键值为 0xe2,放在 buff 1,发送长度大小为 3 Byte,修改后如图 3.3 所示
图 3.3
3.4 测试结果
测试硬件为 DK 开发板,烧录代码后,USB 线接 J1 USB 口,可在电脑上看到静音的图标,如图 3.4 所示
图 3.4
四、 总结
本文介绍了如何在 SDK 工程添加 USB多媒体按键的功能,在键盘产品开发中可根据此文档进行参考,更多关于键盘开发资料可关注大联大~大大通博文专区
五、 参考文献
【1】《 Device class Definition for Human Interface Devices 》
【2】《 MCUXpresso SDK USB Stack Composite Device User's Guide 》
评论