我實現USB上的PIC 18F2550使用通用HID界面。我建立了HID配置文件配置,爲輸入和輸出提供單個64字節的消息。USB HID協議問題
現在它基本上工作。該設備用Windows註冊OK。我可以在PC上的程序中找到它,並可以發送和接收數據。但問題在於 - 從PC到PIC的消息被截斷爲EP0端點緩衝區的大小。
我去調試太多進一步我想嘗試在這裏澄清我的USB協議的理解和檢查我得到了它的權利之前。
假設EP0輸入緩衝區是8個字節。我的理解是,PC端會發送一個8字節的控制包。其中有數據的字節長度。然後它會發送一個8字節的數據包序列,PIC端必須確認每個數據包。
這是我的理解是,PC知道到底有多大的每個報文可以在設備描述符中尋找最大數據包大小字段,將相應瓜分消息分成多個數據包。
在我尋找更多的代碼時,在任何人都可以確認這是基本正確的嗎?如果EP0緩衝區大小爲8個字節,那麼PC應該知道這一點,因爲上面提到的配置字段併發送多個數據包?
我若接收緩衝區的PIC 64字節然後我得到64個字節,這足以滿足我的需求的消息,但我不喜歡不理解爲什麼它不與小緩衝區工作,一個無論如何,我可能需要他們。
任何建議或信息將受到歡迎。