国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

ESP32S3使用esp-iot-solution SDK開發(fā)USBHID鼠標(biāo)鍵盤教程

這篇具有很好參考價值的文章主要介紹了ESP32S3使用esp-iot-solution SDK開發(fā)USBHID鼠標(biāo)鍵盤教程。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、前言

? 手里最近翻到了一個ESP32S3開發(fā)板,于是想做個鼠標(biāo)鍵盤玩玩,這是我第二次接觸ESP32,上一次18年買的吃灰板子至今沒上過電。新找到的S3看手冊是支持OTG的,按照官方的教程搭建的WSL+VSCODE環(huán)境。然而一切準(zhǔn)備就緒發(fā)現(xiàn)ESP-IDF里面沒有USB-HIDdemo。沒有demo怎么玩。于是乎查找資料找,找到了專為物聯(lián)網(wǎng)開發(fā)SDK esp-iot-solution簡介如下。該框架支持usb OTG 功能。
ESP32S3使用esp-iot-solution SDK開發(fā)USBHID鼠標(biāo)鍵盤教程

二、環(huán)境搭建

? 這里面要注意的是官方說明寫的 esp-iot-solution支持的依賴是ESP-IDFv4.3。但是我這里用的是 esp-iot-solution其中的一個分支USB。按照官方的依賴V4.3做USB的話搞到地老天荒都搞不出來。原因是TinaUsb組件要ESP-IDF依賴是4.4。這個問題困擾了我好幾天。

ESP32S3使用esp-iot-solution SDK開發(fā)USBHID鼠標(biāo)鍵盤教程ESP32S3使用esp-iot-solution SDK開發(fā)USBHID鼠標(biāo)鍵盤教程ESP32S3使用esp-iot-solution SDK開發(fā)USBHID鼠標(biāo)鍵盤教程
? 好了下面開始下載分支按照教程安裝即可。

? 倉庫下載地址

? https://github.com/espressif/esp-idf

? https://github.com/espressif/esp-iot-solution

克隆 esp-iot-solution usb分支

clone -b usb/add_usb_solutions  --recursive https://github.com/espressif/esp-iot-solution

克隆 ESP-IDF4.4 分支

git clone -b release/v4.3 --recursive  https://github.com/espressif/esp-idf.git

克隆后如下圖所示
ESP32S3使用esp-iot-solution SDK開發(fā)USBHID鼠標(biāo)鍵盤教程

按照官方教程激活環(huán)境

? 進入到usb_hid_device目錄下,在CmakeLists.txt中增加一條指令保存,不要按官方手冊都復(fù)制進去。
ESP32S3使用esp-iot-solution SDK開發(fā)USBHID鼠標(biāo)鍵盤教程
ESP32S3使用esp-iot-solution SDK開發(fā)USBHID鼠標(biāo)鍵盤教程

三、sdkmenu參數(shù)配置

1、設(shè)置開發(fā)環(huán)境

? 這里面有個坑,如果配置內(nèi)核開發(fā)板為ESPS3 目標(biāo)芯片也為ESP32的話,就會報example 只支持ESP32錯誤。
ESP32S3使用esp-iot-solution SDK開發(fā)USBHID鼠標(biāo)鍵盤教程? 翻看官方issue發(fā)現(xiàn)類似問題,官方解釋這是ESp32S3 bug 之后會修復(fù),臨時的解決辦法是開發(fā)板設(shè)置SaoLa ESP32S2
ESP32S3使用esp-iot-solution SDK開發(fā)USBHID鼠標(biāo)鍵盤教程

然后目標(biāo)芯片設(shè)置成ESP32S3

idf.py set-target esp32s3

2、開始編譯

? 重新編譯,漫長等待結(jié)果還是報錯,不過這回的錯誤變了
ESP32S3使用esp-iot-solution SDK開發(fā)USBHID鼠標(biāo)鍵盤教程

 error: unknown type name 'button_handle_t'

提示找不到類型名稱,根據(jù)多年經(jīng)驗分析,這個情況多半是頭文件沒有包含進來或者源文件沒有添加。

通過vscode 定位到該類型在iot_button.h

ESP32S3使用esp-iot-solution SDK開發(fā)USBHID鼠標(biāo)鍵盤教程

? 既然文件存在那么分析一下為啥找不到??粗鞒绦虻念^文件引用,在主程序里面沒有直接引用iot_button.h,那么最有可能在board.h中間接包含,打開board.h文件。
ESP32S3使用esp-iot-solution SDK開發(fā)USBHID鼠標(biāo)鍵盤教程

? 果然如我所料間接包含了,但是編譯的時候還是找不到,通過分析發(fā)現(xiàn),該board.h在目錄esp32s3_usb_otg_ev路徑下,這個目錄是否被包含是根據(jù)是上文menuconfig中 boards options 選項選擇開發(fā)板決定的,上文已經(jīng)說了該SDK只支持esp32s2,為了適配S3開發(fā)板只能選擇saola,所以導(dǎo)致生成的sdkconfig不包含esp32s3_usb_otg_ev路徑,所以主程序不能找到board.h文件,間接的不能找到iot_button.h文件。
ESP32S3使用esp-iot-solution SDK開發(fā)USBHID鼠標(biāo)鍵盤教程

? 既然問題已經(jīng)發(fā)現(xiàn)了,那就開始著手解決問題,第一步既然沒有包含iot_button.h那么直接在主程序里包含好了,然后編譯。
ESP32S3使用esp-iot-solution SDK開發(fā)USBHID鼠標(biāo)鍵盤教程
? 上述問題解決,但是又出現(xiàn)新問題了,iot_board_button_register_cb按鍵注冊回調(diào)函數(shù)找不到。根據(jù)函數(shù)就知道了它也在board.h中。
ESP32S3使用esp-iot-solution SDK開發(fā)USBHID鼠標(biāo)鍵盤教程
ESP32S3使用esp-iot-solution SDK開發(fā)USBHID鼠標(biāo)鍵盤教程
ESP32S3使用esp-iot-solution SDK開發(fā)USBHID鼠標(biāo)鍵盤教程

? 通過程序分析,該函數(shù)模注冊個按鍵事件模擬鼠標(biāo)或者鍵盤發(fā)送數(shù)據(jù),不影響主體USB相關(guān)功能,而且按鍵發(fā)送程序,不一定要用demo的寫法,所以這是個可有可無的功能,后期可以自己從寫,為了大業(yè)先屏蔽掉,然后編譯。
ESP32S3使用esp-iot-solution SDK開發(fā)USBHID鼠標(biāo)鍵盤教程

哈哈 終于編譯通過了
ESP32S3使用esp-iot-solution SDK開發(fā)USBHID鼠標(biāo)鍵盤教程

3、程序燒錄

? 串口燒錄要頻繁在現(xiàn)實與虛擬環(huán)境切換串口麻煩,所以這里通過flash燒錄軟件進行燒錄如下圖,主要偏移地址和S2不一樣。
ESP32S3使用esp-iot-solution SDK開發(fā)USBHID鼠標(biāo)鍵盤教程

? 燒寫完成后將將開發(fā)板插到電腦上,見證奇跡時刻了。
ESP32S3使用esp-iot-solution SDK開發(fā)USBHID鼠標(biāo)鍵盤教程

四、錯誤集合解決辦法

1、這個錯誤的原因就是sdk版本低不支持S3

 error: 'ADC_BUTTON_WIDTH' undeclared (first use in this function); did you mean 'ADC_BUTTON_ATTEN'?

ESP32S3使用esp-iot-solution SDK開發(fā)USBHID鼠標(biāo)鍵盤教程

沒有S3的定義,增加一個宏定義即可

ESP32S3使用esp-iot-solution SDK開發(fā)USBHID鼠標(biāo)鍵盤教程

2、這個錯誤的原因就是ESP-IDF和add_usb_solutions同名組件版本不一致造成的,我的臨時做法是將add_usb_solutions下的audio改個名字。重新編譯問題即可解決。

 error: unknown type name 'i2s_dac_mode_t'
     i2s_dac_mode_t          dac_mode;               /*!< DAC mode configurations - see i2s_dac_mode_t*/

ESP32S3使用esp-iot-solution SDK開發(fā)USBHID鼠標(biāo)鍵盤教程

結(jié)語

有朋友反饋,找不到我,今打油詩一首

加流一壺真千金
微云澹日映寒流
信意麾毫無點誤
KING_SONGING
唱奇騰怪可刪修
歌詠康衢了此生
的然民仰如父母
國家涵養(yǎng)自建隆
王儉歸來幕府非

有朋自遠(yuǎn)發(fā)來,不亦說乎!文章來源地址http://www.zghlxwxcb.cn/news/detail-484018.html

到了這里,關(guān)于ESP32S3使用esp-iot-solution SDK開發(fā)USBHID鼠標(biāo)鍵盤教程的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【ESP32S3 Sense接入百度在線語音識別】

    【ESP32S3 Sense接入百度在線語音識別】

    視頻地址: ESP32S3 Sense接入百度在線語音識別 目前這是我使用的ESP32S3官方硬件??????(小小的身材有大大的力量)只需要35元加攝像頭麥克風(fēng)79元,后期我會整理相關(guān)專欄進行Arduino系統(tǒng)學(xué)習(xí)??????。有需要可以購買xiao開發(fā)板??????,SeeedXIAO ESP32S3 Sense硬件購買地址:

    2024年04月10日
    瀏覽(21)
  • ESP32S3系列--SPI主機驅(qū)動詳解(一)

    ESP32S3系列--SPI主機驅(qū)動詳解(一)

    SPI是一種串行同步接口,可用于與外圍設(shè)備進行通信。 ESP32S3自帶4個SPI外設(shè),其中SPI0/SPI1內(nèi)部專用,共用一組信號線,通過一個仲裁器訪問外部Flash和PSRAM;SPI2/3各自使用一組獨立的信號線;開發(fā)者可以使用SPI2/3控制外部SPI從設(shè)備(Slave device);其中SPI2作為主設(shè)備有6個片選,數(shù)據(jù)

    2023年04月09日
    瀏覽(21)
  • 【ESP32S3 Sense接入語音識別+MiniMax模型對話】

    【ESP32S3 Sense接入語音識別+MiniMax模型對話】

    圍繞ESP32S3 Sense接入語音識別+MiniMax模型對話展開,首先串口輸入“1”字符,隨后麥克風(fēng)采集2s聲音數(shù)據(jù),對接百度在線語音識別,將返回文本結(jié)果丟入MiniMax模型,進而返回第二次結(jié)果文本,實現(xiàn)語言對話文本效果。以上一共有兩次調(diào)用,后期只需加入tts模塊就可完整對話。

    2024年04月16日
    瀏覽(26)
  • 【EPS32S3學(xué)習(xí)筆記】ESP32+OPENCV+人臉識別 本地部署

    【EPS32S3學(xué)習(xí)筆記】ESP32+OPENCV+人臉識別 本地部署

    提示:這里可以添加系列文章的所有文章的目錄,目錄需要自己手動添加 例如:第一章 Python 機器學(xué)習(xí)入門之pandas的使用 提示:寫完文章后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 提示:這里可以添加本文要記錄的大概內(nèi)容: 從https://github.com/joachimBurket/esp32-

    2024年02月09日
    瀏覽(31)
  • 【EPS32S3學(xué)習(xí)筆記】ESP32+OPENCV+OV2640+LVGL

    【EPS32S3學(xué)習(xí)筆記】ESP32+OPENCV+OV2640+LVGL

    提示:這里可以添加系列文章的所有文章的目錄,目錄需要自己手動添加 例如:第一章 Python 機器學(xué)習(xí)入門之pandas的使用 提示:寫完文章后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 提示:這里可以添加本文要記錄的大概內(nèi)容: 前面已經(jīng)完成了ESP32S3+LVGL+OV2640的工

    2024年02月06日
    瀏覽(26)
  • ESP32S3學(xué)習(xí)——LEDC LED PWM 控制器

    ESP32S3學(xué)習(xí)——LEDC LED PWM 控制器

    芯片:esp32s3 開發(fā)環(huán)境:espidfv4.4 1)LED 控制器 (LEDC) 主要用于控制 LED,也可產(chǎn)生 PWM 信號用于 其他設(shè)備 的控制。 該控制器有 8 路通道 ,可以產(chǎn)生獨立的波形來驅(qū)動 RGB LED 等設(shè)備。 LED PWM 控制器可在 無需 CPU 干預(yù) 的情況下 自動改變占 空比,實現(xiàn)亮度和顏色漸變(因為這個功能

    2024年02月06日
    瀏覽(23)
  • 視頻圖像處理算法opencv在esp32及esp32s3上面的移植,也可以移植openmv

    視頻圖像處理算法opencv在esp32及esp32s3上面的移植,也可以移植openmv

    opencv 在 esp32 及 esp32s3 上面的移植 Opencv 簡介 ? ? ? OpenCV 是一個基于 Apache2.0 許可(開源)發(fā)行的跨平臺計算機視覺和機器學(xué)習(xí)軟件庫,可以運行在 Linux 、 Windows 、 Android 和 Mac OS 操作系統(tǒng)上,它輕量級而且高效—— 由一系列 C 函數(shù)和少量 C++ 類構(gòu)成,同時提供了 Python 、 R

    2024年02月09日
    瀏覽(17)
  • 【ESP32S3 Sense接入語音識別+MiniMax模型+TTS模塊語音播報】

    【ESP32S3 Sense接入語音識別+MiniMax模型+TTS模塊語音播報】

    講解視頻: ESP32S3 AI助手使用MiniMax大模型生產(chǎn)工具1 大家好,今天的教程將圍繞如何實現(xiàn)精準(zhǔn)的語音播報功能展開,我們用到了ESP32S3 Sense接入語音識別+MiniMax模型對話+SNR9816TTS模塊。 目前這是我使用的ESP32S3官方硬件??????(小小的身材有大大的力量)只需要35元加攝像頭麥

    2024年04月12日
    瀏覽(25)
  • ESP32網(wǎng)絡(luò)應(yīng)用 -- ESP32-S3使用HTTP協(xié)議獲取城市天氣數(shù)據(jù)

    ESP32網(wǎng)絡(luò)應(yīng)用 -- ESP32-S3使用HTTP協(xié)議獲取城市天氣數(shù)據(jù)

    超文本傳輸協(xié)議(Hypertext Transfer Protocol,HTTP),是一種建立在TCP協(xié)議之上,應(yīng)用非常廣泛的請求-響應(yīng)協(xié)議,關(guān)于HTTP協(xié)議的詳細(xì)描述,網(wǎng)上已經(jīng)不乏文章,此處不再詳細(xì)論述。 作為一款網(wǎng)絡(luò)功能強大Wi-Fi SOC芯片,ESP32-S3可以通過ESP-IDF編程框架提供的應(yīng)用程序接口,方便地構(gòu)建

    2024年02月09日
    瀏覽(21)
  • esp32-S3專題二:內(nèi)存1之RAM使用

    esp32-S3專題二:內(nèi)存1之RAM使用

    esp32-S3模塊內(nèi)部的存儲分為ROM,RAM,SPRAM,RTC內(nèi)存,F(xiàn)LASH,種類很多,幾乎可以不使用外接存儲器的情況下,可以進行很多業(yè)務(wù)場景,十分有用。現(xiàn)在我們逐一講解一下他們的作用和使用方法。 384 KB 內(nèi)部 ROM, 作用:ESP32技術(shù)手冊明確說明:Internal ROM 是只讀存儲器,不可編程。In

    2024年02月15日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包