我在CH32和CH582的USB例程中,usbhost.c文件中,都看到了如下的注釋。
我現(xiàn)在用主機(jī)host,查詢方式。總感覺(jué)好像是速度有點(diǎn)慢。
我想問(wèn):
USB主機(jī)模式,有沒(méi)有類似USB從機(jī)那樣的中斷操作方式?
下邊的函數(shù),可否提供一個(gè)對(duì)運(yùn)行速度優(yōu)化后的版本?
/*********************************************************************
?* @fn? ? ? USBHostTransact
?*
?* @brief? ?傳輸事務(wù),輸入目的端點(diǎn)地址/PID令牌,同步標(biāo)志,以20uS為單位的NAK重試總時(shí)間(0則不重試,0xFFFF無(wú)限重試),返回0成功,超時(shí)/出錯(cuò)重試
?*? ? ? ? ? 本子程序著重于易理解,而在實(shí)際應(yīng)用中,為了提供運(yùn)行速度,應(yīng)該對(duì)本子程序代碼進(jìn)行優(yōu)化
?*
?* @param? ?endp_pid? ? - 令牌和地址, 高4位是token_pid令牌, 低4位是端點(diǎn)地址
?* @param? ?tog? ? ? ? ?- 同步標(biāo)志
?* @param? ?timeout? ? ?- 超時(shí)時(shí)間
?*
?* @return? ERR_USB_UNKNOWN 超時(shí),可能硬件異常
?*? ? ? ? ? ERR_USB_DISCON? 設(shè)備斷開
?*? ? ? ? ? ERR_USB_CONNECT 設(shè)備連接
?*? ? ? ? ? ERR_SUCCESS? ? ?傳輸完成
?*/
UINT8 USBHostTransact( UINT8 endp_pid, UINT8 tog, UINT32 timeout )