使用的STM32_USB-FS-Device_Driver庫,創建HID,和模擬鍵盤Keyboard。工作中根據需要模擬鍵盤發送一批字符串。
也按照網上找的移植文檔進行了更改。
相關代碼:
UserToPMABufferCopy(keyboardCodeBuf, GetEPTxAddr(ENDP3), 8); //發8個字節
SetEPTxCount(ENDP3, 8);
SetEPTxValid(ENDP3);
經過調試發現,GetEPTxAddr(ENDP3),如果返回0x01F0,就能正常工作。
有時會返回0xC36C,0xC34C ,則在進入函數UserToPMABufferCopy中后會跳轉到HardFault_Handler。
反復測試,一段時間都是返回0x01F0,工作完全正常
又可能一段時間,返回0xC36C,0xC34C,則會產生硬件故障中斷。
有時上位機PC會產生無法識別的USB設備提示。
請指導故障原因。
非常感謝!
|