基于USB接口芯片CH372的人機接口設備設計與實現
4.2.2 部分子程序代碼
本地端主程序可以參照圖4 流程編寫代碼。在程序中,外置模式的設置是在CH372 初始化的子程序中完成的;中斷子程序編寫需要參考CH372 中文手冊(二)。從圖2 的硬件電路連接上可以看出,單片機的P1 口與CH372 的數據端連接,并非以總線方式掛接在單片機上,因此需要單片機的I/O 擬出相應的時序操作CH372 芯片。下面給出單片機通過數據端口寫命令,寫數據,讀數據的三段代碼。
枚舉成功后,PC 機識別為USB Mouse.此時單片機根據圖2 中所示的遙控指示信號LeftKey(P3.0 腳)和RightKey(P3.1 腳)電平高低,通過CH372端點1(中斷端點)發送USB 鼠標相應的鍵值給PC 機,端點1(中斷端點)的緩沖區數據塊長度為4 個字節,LeftKey 或者RightKey 鍵值需要放在第一個字節上。如果鼠標左鍵按下,則返回0x01,0x00,0x00,0x00;若鼠標右鍵按下,則返回0x02,0x00,0x00,0x00。
下面給出端點1 上傳數據示例:
5 結語
本系統是CH372 設置為靈活的外圍固件模式下的應用和開發。系統硬件設計簡單,軟件流程清晰。
若將硬件和軟件做很小的改動,就可以設計出其他很多HID 類設備。
評論