0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何自己自制一個(gè)USB鍵盤

Wildesbeast ? 來源:網(wǎng)絡(luò)整理 ? 作者:佚名 ? 2019-11-09 09:55 ? 次閱讀

哈哈,終于搞了一回USB HID設(shè)備,做了一個(gè)USB鍵盤來玩玩~~~~其中的報(bào)告描述符讓我暈了幾天~~~~~幾份HID相關(guān)的協(xié)議還是蠻長的~~~~~~明天再弄個(gè)USB鼠標(biāo)設(shè)備玩玩~~~~~~~有空的話再搞個(gè)紅外遙控器玩玩~~~

這回是拿以前做的Mass storage來改的,所以比較快,修改了一下描述符以及端點(diǎn)處理等,就行了。用了一個(gè)4*4的小鍵盤,有0-9十個(gè)數(shù)字鍵,Num Lock鍵,Caps Lock鍵,Shift鍵,Ctrl鍵,Alt鍵,回車鍵等。

最多可以有三個(gè)鍵同時(shí)按下,如果相交的話,最多只能兩個(gè)鍵按下。

以下是通過串口返回的調(diào)試信息

系統(tǒng)啟動(dòng)。..。..。..。..。..。..。..。..。..。..。.

斷開USB連接。..。..。..。..。..。..。..。..

USBD12芯片初始化

設(shè)置地址。..。..。..。..。..。..。..

地址為: 0

連接USB.。..。..。..。..。.

USB總線復(fù)位。..。..。..。..。..。..。..。..。..。..。.

USB總線掛起。..。..。..。..。..。..。..。..。..。..。.

USB總線復(fù)位。..。..。..。..。..。..。..。..。..。..。.

USB總線掛起。..。..。..。..。..。..。..。..。..。..。.

USB總線復(fù)位。..。..。..。..。..。..。..。..。..。..。.

USB標(biāo)準(zhǔn)請(qǐng)求。..。..。..。..。..。..。..。..。..。..。.

獲取描述符。..。..。..。..。..。..。..。..。..。..。.

獲取設(shè)備描述符。..。..。..。..。..。..。..。..。..。..。.

USB總線復(fù)位。..。..。..。..。..。..。..。..。..。..。.

USB標(biāo)準(zhǔn)請(qǐng)求。..。..。..。..。..。..。..。..。..。..。.

設(shè)置地址。..。..。..。..。..。..。..

地址為: 2

USB標(biāo)準(zhǔn)請(qǐng)求。..。..。..。..。..。..。..。..。..。..。.

獲取描述符。..。..。..。..。..。..。..。..。..。..。.

獲取設(shè)備描述符。..。..。..。..。..。..。..。..。..。..。.

USB標(biāo)準(zhǔn)請(qǐng)求。..。..。..。..。..。..。..。..。..。..。.

獲取描述符。..。..。..。..。..。..。..。..。..。..。.

USB標(biāo)準(zhǔn)請(qǐng)求。..。..。..。..。..。..。..。..。..。..。.

獲取描述符。..。..。..。..。..。..。..。..。..。..。.

獲取配置描述符。..。..。..。..。..。..。..。..。..。..。.

USB標(biāo)準(zhǔn)請(qǐng)求。..。..。..。..。..。..。..。..。..。..。.

獲取描述符。..。..。..。..。..。..。..。..。..。..。.

獲取字符串描述符。..。..。..。..。..。..。..。..。..。..。.

獲取語言ID.。..。..。..。..。..。..。..。..。..。..。

USB標(biāo)準(zhǔn)請(qǐng)求。..。..。..。..。..。..。..。..。..。..。.

獲取描述符。..。..。..。..。..。..。..。..。..。..。.

獲取字符串描述符。..。..。..。..。..。..。..。..。..。..。.

獲取設(shè)備序列號(hào)。..。..。..。..。..。..。..。..。..。..。.

USB標(biāo)準(zhǔn)請(qǐng)求。..。..。..。..。..。..。..。..。..。..。.

獲取描述符。..。..。..。..。..。..。..。..。..。..。.

USB標(biāo)準(zhǔn)請(qǐng)求。..。..。..。..。..。..。..。..。..。..。.

獲取描述符。..。..。..。..。..。..。..。..。..。..。.

獲取配置描述符。..。..。..。..。..。..。..。..。..。..。.

USB標(biāo)準(zhǔn)請(qǐng)求。..。..。..。..。..。..。..。..。..。..。.

獲取描述符。..。..。..。..。..。..。..。..。..。..。.

USB標(biāo)準(zhǔn)請(qǐng)求。..。..。..。..。..。..。..。..。..。..。.

獲取描述符。..。..。..。..。..。..。..。..。..。..。.

USB標(biāo)準(zhǔn)請(qǐng)求。..。..。..。..。..。..。..。..。..。..。.

獲取描述符。..。..。..。..。..。..。..。..。..。..。.

獲取字符串描述符。..。..。..。..。..。..。..。..。..。..。.

獲取語言ID.。..。..。..。..。..。..。..。..。..。..。

USB標(biāo)準(zhǔn)請(qǐng)求。..。..。..。..。..。..。..。..。..。..。.

獲取描述符。..。..。..。..。..。..。..。..。..。..。.

獲取字符串描述符。..。..。..。..。..。..。..。..。..。..。.

獲取產(chǎn)品字符串。..。..。..。..。..。..。..。..。..。..。.

USB標(biāo)準(zhǔn)請(qǐng)求。..。..。..。..。..。..。..。..。..。..。.

獲取描述符。..。..。..。..。..。..。..。..。..。..。.

USB標(biāo)準(zhǔn)請(qǐng)求。..。..。..。..。..。..。..。..。..。..。.

獲取描述符。..。..。..。..。..。..。..。..。..。..。.

USB標(biāo)準(zhǔn)請(qǐng)求。..。..。..。..。..。..。..。..。..。..。.

獲取描述符。..。..。..。..。..。..。..。..。..。..。.

USB標(biāo)準(zhǔn)請(qǐng)求。..。..。..。..。..。..。..。..。..。..。.

獲取描述符。..。..。..。..。..。..。..。..。..。..。.

USB標(biāo)準(zhǔn)請(qǐng)求。..。..。..。..。..。..。..。..。..。..。.

獲取描述符。..。..。..。..。..。..。..。..。..。..。.

USB標(biāo)準(zhǔn)請(qǐng)求。..。..。..。..。..。..。..。..。..。..。.

獲取描述符。..。..。..。..。..。..。..。..。..。..。.

獲取字符串描述符。..。..。..。..。..。..。..。..。..。..。.

獲取語言ID.。..。..。..。..。..。..。..。..。..。..。

USB標(biāo)準(zhǔn)請(qǐng)求。..。..。..。..。..。..。..。..。..。..。.

獲取描述符。..。..。..。..。..。..。..。..。..。..。.

獲取字符串描述符。..。..。..。..。..。..。..。..。..。..。.

獲取產(chǎn)品字符串。..。..。..。..。..。..。..。..。..。..。.

USB標(biāo)準(zhǔn)請(qǐng)求。..。..。..。..。..。..。..。..。..。..。.

獲取描述符。..。..。..。..。..。..。..。..。..。..。.

USB標(biāo)準(zhǔn)請(qǐng)求。..。..。..。..。..。..。..。..。..。..。.

獲取描述符。..。..。..。..。..。..。..。..。..。..。.

USB標(biāo)準(zhǔn)請(qǐng)求。..。..。..。..。..。..。..。..。..。..。.

獲取描述符。..。..。..。..。..。..。..。..。..。..。.

USB標(biāo)準(zhǔn)請(qǐng)求。..。..。..。..。..。..。..。..。..。..。.

獲取描述符。..。..。..。..。..。..。..。..。..。..。.

USB標(biāo)準(zhǔn)請(qǐng)求。..。..。..。..。..。..。..。..。..。..。.

獲取描述符。..。..。..。..。..。..。..。..。..。..。.

USB標(biāo)準(zhǔn)請(qǐng)求。..。..。..。..。..。..。..。..。..。..。.

獲取描述符。..。..。..。..。..。..。..。..。..。..。.

獲取設(shè)備描述符。..。..。..。..。..。..。..。..。..。..。.

USB標(biāo)準(zhǔn)請(qǐng)求。..。..。..。..。..。..。..。..。..。..。.

獲取描述符。..。..。..。..。..。..。..。..。..。..。.

USB標(biāo)準(zhǔn)請(qǐng)求。..。..。..。..。..。..。..。..。..。..。.

獲取描述符。..。..。..。..。..。..。..。..。..。..。.

獲取配置描述符。..。..。..。..。..。..。..。..。..。..。.

USB標(biāo)準(zhǔn)請(qǐng)求。..。..。..。..。..。..。..。..。..。..。.

獲取描述符。..。..。..。..。..。..。..。..。..。..。.

獲取配置描述符。..。..。..。..。..。..。..。..。..。..。.

USB標(biāo)準(zhǔn)請(qǐng)求。..。..。..。..。..。..。..。..。..。..。.

獲取描述符。..。..。..。..。..。..。..。..。..。..。.

USB標(biāo)準(zhǔn)請(qǐng)求。..。..。..。..。..。..。..。..。..。..。.

獲取描述符。..。..。..。..。..。..。..。..。..。..。.

USB標(biāo)準(zhǔn)請(qǐng)求。..。..。..。..。..。..。..。..。..。..。.

設(shè)置配置。..。..。..。..。..。..。..。..。..。..。.

USB類請(qǐng)求。..。..。..。..。..。..。..。..。..。..。.

設(shè)置空閑。..。..。..。..。..。..。..。..。..。..。.

USB標(biāo)準(zhǔn)請(qǐng)求。..。..。..。..。..。..。..。..。..。..。.

獲取描述符(從接口)。..。..。..。..。..。..。..。..。..。..

獲取報(bào)告描述符。..。..。..。..。..。..。..。..。..。..。.

USB標(biāo)準(zhǔn)請(qǐng)求。..。..。..。..。..。..。..。..。..。..。.

獲取描述符(從接口)。..。..。..。..。..。..。..。..。..。..

USB標(biāo)準(zhǔn)請(qǐng)求。..。..。..。..。..。..。..。..。..。..。.

獲取描述符(從接口)。..。..。..。..。..。..。..。..。..。..

USB標(biāo)準(zhǔn)請(qǐng)求。..。..。..。..。..。..。..。..。..。..。.

獲取描述符(從接口)。..。..。..。..。..。..。..。..。..。..

USB標(biāo)準(zhǔn)請(qǐng)求。..。..。..。..。..。..。..。..。..。..。.

獲取描述符(從接口)。..。..。..。..。..。..。..。..。..。..

USB標(biāo)準(zhǔn)請(qǐng)求。..。..。..。..。..。..。..。..。..。..。.

獲取描述符(從接口)。..。..。..。..。..。..。..。..。..。..

USB標(biāo)準(zhǔn)請(qǐng)求。..。..。..。..。..。..。..。..。..。..。.

獲取描述符(從接口)。..。..。..。..。..。..。..。..。..。..

USB標(biāo)準(zhǔn)請(qǐng)求。..。..。..。..。..。..。..。..。..。..。.

獲取描述符(從接口)。..。..。..。..。..。..。..。..。..。..

端點(diǎn)2輸出。..。..。..。..。..。..。..。..。..。..。.

端點(diǎn)2的數(shù)據(jù)是 0x01

端點(diǎn)2輸出。..。..。..。..。..。..。..。..。..。..。.

端點(diǎn)2的數(shù)據(jù)是 0x03

端點(diǎn)2輸出。..。..。..。..。..。..。..。..。..。..。.

端點(diǎn)2的數(shù)據(jù)是 0x01

端點(diǎn)2輸出。..。..。..。..。..。..。..。..。..。..。.

端點(diǎn)2的數(shù)據(jù)是 0x00

端點(diǎn)2輸出。..。..。..。..。..。..。..。..。..。..。.

端點(diǎn)2的數(shù)據(jù)是 0x02

端點(diǎn)2輸出。..。..。..。..。..。..。..。..。..。..。.

端點(diǎn)2的數(shù)據(jù)是 0x03

在設(shè)備管理器里看到的圖:

原理圖

(用的是以前做IDE轉(zhuǎn)USB的板,所以上面還有個(gè)IDE接口和573鎖存器,可以不用理會(huì)它們):

(注意:原理圖上所標(biāo)的晶體值是以前的,這個(gè)程序中使用的是22.1184M的晶體。它關(guān)系到串口波特率,如果你不使用串口,那么可以不用理會(huì)它。)

注意:圖中串口電平轉(zhuǎn)換部分的C8和C10接反了,C11負(fù)端應(yīng)接VDD。D12的SUSPEND(12腳)應(yīng)該接地。USB接頭的D+和D-跟芯的D+和D-之間應(yīng)該串聯(lián)22歐姆的匹配電阻。片由于圖得比較匆忙,所以沒留意。右擊選擇圖片另存為可以看到完整圖片了。

實(shí)物圖片(鍵盤是外接的):


責(zé)任編輯LK

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • usb
    usb
    +關(guān)注

    關(guān)注

    60

    文章

    7876

    瀏覽量

    263699
  • 鍵盤
    +關(guān)注

    關(guān)注

    4

    文章

    858

    瀏覽量

    39540
  • HID
    HID
    +關(guān)注

    關(guān)注

    2

    文章

    129

    瀏覽量

    46538
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    USB鍵盤夜燈自制

    有的人的本本上沒有鍵盤燈,盲打技術(shù)又不怎么樣!怎么辦呢?自制個(gè)。筆記本上可以提供電源的接口很多,當(dāng)然最方便的是USB,所以就選擇了PS/2
    發(fā)表于 10-09 15:06 ?1.3w次閱讀

    自制的臺(tái)燈兼鍵盤

    學(xué)校規(guī)定晚上11點(diǎn)關(guān)燈,所以在黑暗暗的靈感下自制自制的臺(tái)燈兼鍵盤燈,接到單片機(jī)上可以玩出不少花樣。
    發(fā)表于 11-25 11:40

    自制矩陣鍵盤

    學(xué)單片機(jī)學(xué)到矩陣鍵盤,但是沒有鍵盤(我用的最小系統(tǒng)板),就自己diy了個(gè) 這個(gè)能用的了么?
    發(fā)表于 04-27 19:10

    如何使用32U4來自制鍵盤

    1.前言如果你使用32U4來自制鍵盤,必然會(huì)遇到個(gè)大問題就是引腳不夠,隨便鍵盤,60按鍵以
    發(fā)表于 01-19 07:15

    如何去實(shí)現(xiàn)USB鍵盤功能呢

    的實(shí)現(xiàn)USB鍵盤功能。借此功能可以很容易的將Core改裝成個(gè)虛擬的USB鍵盤來控制
    發(fā)表于 01-19 08:07

    自制USB口ISP(用2313模擬USB)

    自制USB口ISP(2313模擬USB) 當(dāng)有的電腦沒有
    發(fā)表于 01-14 20:26 ?2055次閱讀

    什么是鍵盤USB HUB

    什么是鍵盤USB HUB 這個(gè)參數(shù)是指鍵盤上是否帶有USB HUB。計(jì)算機(jī)上的USB接口通常是在機(jī)箱的前面板或者機(jī)箱的背后,如果要連接
    發(fā)表于 12-28 11:14 ?4590次閱讀

    自制MINI USB的方法

    自制MINI USB的方法 近日完成HIFIDIY的MINI USB DAC配套專用電源升級(jí)套件裝配,輸出電壓正負(fù)9.8V.為USB DAC提供澎拜的動(dòng)力.
    發(fā)表于 03-16 11:37 ?3531次閱讀
    <b class='flag-5'>自制</b>MINI <b class='flag-5'>USB</b>的方法

    STM32的USB鍵盤及鼠標(biāo)例程

    程序上除了usb_desc.c及usb_endp.c外,其它部份同單鍵盤鼠標(biāo)樣。下面著重說
    發(fā)表于 07-16 10:24 ?2.1w次閱讀

    辦公室自制個(gè)植物鍵盤

    春暖花開草長鶯飛的季節(jié)就要到了,在辦公室里自制個(gè)植物鍵盤吧! 送給自己片綠意,送給同事
    發(fā)表于 05-14 17:07 ?1次閱讀

    PS2鍵盤轉(zhuǎn)USB鍵盤源碼

    PS2鍵盤轉(zhuǎn)USB鍵盤
    發(fā)表于 05-04 11:52 ?11次下載

    DIY制作USB機(jī)械鍵盤

    網(wǎng)上查了查鍵盤實(shí)現(xiàn)的原理,發(fā)現(xiàn)比較簡單。加上自己工作上直在接觸USB協(xié)議,于是做一個(gè)USB機(jī)械
    的頭像 發(fā)表于 02-02 17:36 ?1.1w次閱讀

    如何自制個(gè)屬于自己的MIDI鍵盤

    “磁性”這個(gè)詞語太玄幻,我們應(yīng)該用個(gè)更準(zhǔn)確的標(biāo)準(zhǔn)來定義這個(gè)“磁性”。我覺得我這種特殊的嗓音是來自喉腔管道引入的高次諧波失真。 “高次諧波失真”這個(gè)詞可能太嚴(yán)肅了,在音樂界,這種由音腔引起的諧波失真還有個(gè)更美妙的名字,叫做
    的頭像 發(fā)表于 04-10 16:10 ?7518次閱讀

    自制USB鍵盤的電路原理圖和工程文件與源代碼免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是自制USB鍵盤的電路原理圖和工程文件與源代碼免費(fèi)下載。
    發(fā)表于 11-22 17:36 ?86次下載
    <b class='flag-5'>自制</b><b class='flag-5'>USB</b><b class='flag-5'>鍵盤</b>的電路原理圖和工程文件與源代碼免費(fèi)下載

    基于樹莓派的自制MIDI鍵盤

    本教程將手把手教你從零開始自制屬于你自己的 MIDI/鋼琴/音樂/歌曲鍵盤。這是個(gè)基于樹莓派的開源項(xiàng)目,其中所需的文件在本項(xiàng)目文件庫中可以
    發(fā)表于 12-21 11:07 ?1次下載