欢迎光临散文网 会员登陆 & 注册

使用esp32s2模组制作一个USB键盘

2022-01-29 14:32 作者:这个凼啊  | 我要投稿

最近想做一个USB小键盘,刚好手里有个esp32s2的模组,就直接使用了。

esp32s2是esp32-s系列里唯一带有全速 USB OTG 接口的芯片,刚好能够使用。

使用开发的idf库版本是:idf4.3

安装的开发环境看这里(也是我写的):

  1. 修改库文件

    虽然idf4.3版本的SDK里存在USB的协议,但是我们无法通过菜单来配置USB,菜单配置的USB 默认的只有USB CDC的配置,我们需要添加一些代码,能够在菜单选项配置里,选择USB HID设备。

    修改你安装目录的 esp-idf/components/tinyusb/Kconfig 文件,这个菜单配置的文件。

在如图所示的位置添加相关代码,左边是未修改的,右边是修改后的,主要的作用是让菜单配置出现USB HID的选项,从而调用USB设备。

修改对比

增加的代码如下:

2.使能配置

用官方的ESP-IDF 4.3 CMD 工具,进入到

esp-idf\examples\peripherals\usb\tusb_serial_device  文件下,使用 idf.py menuconfig 进入菜单配置里,进入到如图的配置里,就会新增的一个USB(HID)选项,保存以后,我们就可以调用这个USB(HID)的库了。

新增的选项

3.键盘鼠标驱动修改

我们可以使用上面例程的工程,把例程复制到其他地方,修改一些代码:

修改这些后,我们编译,编译的时候会出现一个错误

错误

这个错误是这里多了逗号的原因,不知道是不是官方哪个开发人员粗心的原因

,在\esp-idf\components\tinyusb\tinyusb\src\class\hid\hid.h  多了两个逗号,如下图所示,只要需要删除这个两个逗号就可以成功编译了。

多余的逗号

将这个下载到开发板,电脑上就会出现键盘和鼠标连接到电脑的提示。

4.键盘操作

经过上一步后,增加鼠标和键盘的驱动,我们就可以愉快的使用库函数来驱动键盘了.

如代码所示,会发送alt按键和A按键上报给电脑,这个是简单的上报按键值的函数,如有需要,自己加上相关按键扫描这些。

(按键值的按键值在 components\tinyusb\tinyusb\src\class\hid\hid.h 下查看)


基本上键盘的操作就这些了,鼠标的同理,在components\tinyusb\tinyusb\src\class\hid\hid_device.c 有相关函数,调用即可。

使用esp32s2模组制作一个USB键盘的评论 (共 条)

分享到微博请遵守国家法律