移植st官方usb-hid程式出現babble detected錯誤

來源:互聯網
上載者:User

我在移植st官方的usb-hid程式是可以啟動並執行,但是當我修改最大包時出現了babble detected錯誤,按照網上的操作,修改最大緩衝區需要修改3個地方,(1)usb_desc.c檔案中的CustomHID_ConfigDescriptor[CUSTOMHID_SIZ_CONFIG_DESC]數組,修改端點1的輸入輸出的最大包大小;(2)修改usb_prop.c檔案中的void CustomHID_Reset(void)函數,裡面有 需要設定 端點1的發送包大小,函數 SetEPTxCount(ENDP1, 4);(3)stm32f10x_it.c中的中斷處理常式的修改發送端點1的發送包的大小;就這些修改,但是用Bus Hound軟體做測試時,出現了babble detected錯誤,說host主機那出現接收資料溢出,但是如果不改變發送資料包的大小2,就不會出現錯誤,看來是設定的端點1的發送包的大小設定出現了問題,後來在網上尋找,發現是沒有修改usb報告描述符(Report Descriptor),網上說USB HID裝置是通過報告來給傳送資料的,報告有輸入報告和輸出報告。輸入報告是USB裝置發送給主機的,例如USB滑鼠將滑鼠移動和滑鼠點擊等資訊返回給電腦,應該是報告描述符裡帶有按鍵動作時,發送的資料包大小,

在報告描述符中的按鍵部分,加入了最後一句   0x95,0x04,  設定相應的按鍵動作發送的資料包的資料區段部分為4位元組;

/* key Push Button */
    0x85, 0x05,            /*     REPORT_ID (5)              */
    0x09, 0x05,            /*     USAGE (Push Button)        */
    0x15, 0x00,            /*     LOGICAL_MINIMUM (0)        */
    0x25, 0x01,            /*     LOGICAL_MAXIMUM (1)        */
    0x75, 0x01,            /*     REPORT_SIZE (1)            */
   0x95,0x04,             // REPORT_COUNT (4Byte) 

進行完上面的操作,需要修改一下報告描述符的大小CUSTOMHID_SIZ_REPORT_DESC,選中CUSTOMHID_SIZ_REPORT_DESC右擊滑鼠,進入定義處,把他的長度加1,這樣就不會出現babble detected錯誤了,在進行按鍵觸發下,可以進行4位元組資料的發送,如果要發送的位元組內容不僅僅是0或1,要修改上面的

    0x15, 0x00,            /*     LOGICAL_MINIMUM (0)        */
    0x25, 0x01,            /*     LOGICAL_MAXIMUM (1)        */

部分為    0x15, 0x00,            /*     LOGICAL_MINIMUM (0)        */
               0x25, 0xff,            /*     LOGICAL_MAXIMUM (255)        */

就可以進行0~255之間的資料發送了。

usb-hid剛剛學,基本上不太懂,有什麼寫錯的地方請批評指正,謝謝

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.