<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于51單片機的模擬usb 鍵盤制作例程

          基于51單片機的模擬usb 鍵盤制作例程

          作者: 時間:2016-11-24 來源:網(wǎng)絡 收藏
          終于搞了一回USB HID設備,做了一個USB鍵盤來玩玩~~~~其中的報告描述符讓我暈了幾天~~~~~幾份HID相關的協(xié)議還是蠻長的~~~~~~明天再弄個USB鼠標設備玩玩~~~~~~~有空的話再搞個紅外遙控器玩玩~~~
          這回是拿以前做的Mass storage來改的,所以比較快,修改了一下描述符以及端點處理等,就行了。用了一個4*4的小鍵盤,有0-9十個數(shù)字鍵,Num Lock鍵,Caps Lock鍵,Shift鍵,Ctrl鍵,Alt鍵,回車鍵等。
          最多可以有三個鍵同時按下,如果相交的話,最多只能兩個鍵按下。
          以下是通過串口返回的調(diào)試信息:
           
          系統(tǒng)啟動................................
          斷開USB連接........................
          USBD12芯片初始化
          設置地址.....................
          地址為: 0
          連接USB...............
          USB總線復位................................
          USB總線掛起................................
          USB總線復位................................
          USB總線掛起................................
          USB總線復位................................
          USB標準請求................................
          獲取描述符................................
          獲取設備描述符................................
          USB總線復位................................
          USB標準請求................................
          設置地址.....................
          地址為: 2
          USB標準請求................................
          獲取描述符................................
          獲取設備描述符................................
          USB標準請求................................
          獲取描述符................................
          USB標準請求................................
          獲取描述符................................
          獲取配置描述符................................
          USB標準請求................................
          獲取描述符................................
          獲取字符串描述符................................
          獲取語言ID................................
          USB標準請求................................
          獲取描述符................................
          獲取字符串描述符................................
          獲取設備序列號................................
          USB標準請求................................
          獲取描述符................................
          USB標準請求................................
          獲取描述符................................
          獲取配置描述符................................
          USB標準請求................................
          獲取描述符................................
          USB標準請求................................
          獲取描述符................................
          USB標準請求................................
          獲取描述符................................
          獲取字符串描述符................................
          獲取語言ID................................
          USB標準請求................................
          獲取描述符................................
          獲取字符串描述符................................
          獲取產(chǎn)品字符串................................
          USB標準請求................................
          獲取描述符................................
          USB標準請求................................
          獲取描述符................................
          USB標準請求................................
          獲取描述符................................
          USB標準請求................................
          獲取描述符................................
          USB標準請求................................
          獲取描述符................................
          USB標準請求................................
          獲取描述符................................
          獲取字符串描述符................................
          獲取語言ID................................
          USB標準請求................................
          獲取描述符................................
          獲取字符串描述符................................
          獲取產(chǎn)品字符串................................
          USB標準請求................................
          獲取描述符................................
          USB標準請求................................
          獲取描述符................................
          USB標準請求................................
          獲取描述符................................
          USB標準請求................................
          獲取描述符................................
          USB標準請求................................
          獲取描述符................................
          USB標準請求................................
          獲取描述符................................
          獲取設備描述符................................
          USB標準請求................................
          獲取描述符................................
          USB標準請求................................
          獲取描述符................................
          獲取配置描述符................................
          USB標準請求................................
          獲取描述符................................
          獲取配置描述符................................
          USB標準請求................................
          獲取描述符................................
          USB標準請求................................
          獲取描述符................................
          USB標準請求................................
          設置配置................................
          USB類請求................................
          設置空閑................................
          USB標準請求................................
          獲取描述符(從接口)..............................
          獲取報告描述符................................
          USB標準請求................................
          獲取描述符(從接口)..............................
          USB標準請求................................
          獲取描述符(從接口)..............................
          USB標準請求................................
          獲取描述符(從接口)..............................
          USB標準請求................................
          獲取描述符(從接口)..............................
          USB標準請求................................
          獲取描述符(從接口)..............................
          USB標準請求................................
          獲取描述符(從接口)..............................
          USB標準請求................................
          獲取描述符(從接口)..............................
          端點2輸出................................
          端點2的數(shù)據(jù)是 0x01
          端點2輸出................................
          端點2的數(shù)據(jù)是 0x03
          端點2輸出................................
          端點2的數(shù)據(jù)是 0x01
          端點2輸出................................
          端點2的數(shù)據(jù)是 0x00
          端點2輸出................................
          端點2的數(shù)據(jù)是 0x02
          端點2輸出................................
          端點2的數(shù)據(jù)是 0x03
           
          在設備管理器里看到的圖:

          本文引用地址:http://www.ex-cimer.com/article/201611/320917.htm

          原理圖
          (用的是以前做IDE轉(zhuǎn)USB的板,所以上面還有個IDE接口和573鎖存器,可以不用理會它們):
          (注意:原理圖上所標的晶體值是以前的,這個程序中使用的是22.1184M的晶體.它關系到串口波特率,如果你不使用串口,那么可以不用理會它.)
           
           
          注意:圖中串口電平轉(zhuǎn)換部分的C8和C10接反了,C11負端應接VDD。D12的SUSPEND(12腳)應該接地。USB接頭的D+和D-跟芯的D+和D-之間應該串聯(lián)22歐姆的匹配電阻。片由于圖得比較匆忙,所以沒留意。右擊選擇圖片另存為可以看到完整圖片了.



          評論


          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();