使用esp32s2模組制作一個(gè)USB鍵盤
最近想做一個(gè)USB小鍵盤,剛好手里有個(gè)esp32s2的模組,就直接使用了。
esp32s2是esp32-s系列里唯一帶有全速 USB OTG 接口的芯片,剛好能夠使用。
使用開發(fā)的idf庫版本是:idf4.3
安裝的開發(fā)環(huán)境看這里(也是我寫的):
修改庫文件
雖然idf4.3版本的SDK里存在USB的協(xié)議,但是我們無法通過菜單來配置USB,菜單配置的USB 默認(rèn)的只有USB CDC的配置,我們需要添加一些代碼,能夠在菜單選項(xiàng)配置里,選擇USB HID設(shè)備。
修改你安裝目錄的?esp-idf/components/tinyusb/Kconfig?文件,這個(gè)菜單配置的文件。

在如圖所示的位置添加相關(guān)代碼,左邊是未修改的,右邊是修改后的,主要的作用是讓菜單配置出現(xiàn)USB HID的選項(xiàng),從而調(diào)用USB設(shè)備。

增加的代碼如下:
2.使能配置
用官方的ESP-IDF 4.3 CMD 工具,進(jìn)入到
esp-idf\examples\peripherals\usb\tusb_serial_device??文件下,使用 idf.py menuconfig 進(jìn)入菜單配置里,進(jìn)入到如圖的配置里,就會(huì)新增的一個(gè)USB(HID)選項(xiàng),保存以后,我們就可以調(diào)用這個(gè)USB(HID)的庫了。

3.鍵盤鼠標(biāo)驅(qū)動(dòng)修改
我們可以使用上面例程的工程,把例程復(fù)制到其他地方,修改一些代碼:
修改這些后,我們編譯,編譯的時(shí)候會(huì)出現(xiàn)一個(gè)錯(cuò)誤

這個(gè)錯(cuò)誤是這里多了逗號(hào)的原因,不知道是不是官方哪個(gè)開發(fā)人員粗心的原因
,在\esp-idf\components\tinyusb\tinyusb\src\class\hid\hid.h? 多了兩個(gè)逗號(hào),如下圖所示,只要需要?jiǎng)h除這個(gè)兩個(gè)逗號(hào)就可以成功編譯了。

將這個(gè)下載到開發(fā)板,電腦上就會(huì)出現(xiàn)鍵盤和鼠標(biāo)連接到電腦的提示。
4.鍵盤操作
經(jīng)過上一步后,增加鼠標(biāo)和鍵盤的驅(qū)動(dòng),我們就可以愉快的使用庫函數(shù)來驅(qū)動(dòng)鍵盤了.
如代碼所示,會(huì)發(fā)送alt按鍵和A按鍵上報(bào)給電腦,這個(gè)是簡(jiǎn)單的上報(bào)按鍵值的函數(shù),如有需要,自己加上相關(guān)按鍵掃描這些。
(按鍵值的按鍵值在?components\tinyusb\tinyusb\src\class\hid\hid.h 下查看)
基本上鍵盤的操作就這些了,鼠標(biāo)的同理,在components\tinyusb\tinyusb\src\class\hid\hid_device.c 有相關(guān)函數(shù),調(diào)用即可。