CH372如何判斷是否連接PC機

我使用的是CH376芯片,設(shè)置為從模式,連接PC機,PC連接正常,顯示外部設(shè)備!但是我希望在單片機端知道已經(jīng)連接上PC機,請問,如何操作?????我使用Suspend命令,

void ?SetCH376Suspend( void ) ?

{

? CH376_EXTI_ENABLE(); ? ? ? ? ? ? ? ? ?/* Enable ch376 Interrupt*/

/* 設(shè)備方式: 設(shè)置檢查USB總線掛起狀態(tài)的方式 */

/* 輸入: 數(shù)據(jù)10H, 檢查方式 */

/* ? ? ? ? ? 00H=不檢查USB掛起, 04H=以50mS為間隔檢查USB掛起, 05H=以10mS為間隔檢查USB掛起 */

xWriteCH376Cmd( CMD_CHK_SUSPEND ); ?

xWriteCH376Data( 0x10 );?

xWriteCH376Data( 0x04 );?

xEndCH376Cmd( );

}

然后在中斷中處理掛起,好像不起作用,無法判斷不出物理,不產(chǎn)生中斷!


而資料上講:USB 總線掛起狀態(tài)包括兩種情況:一是USB 信號線物理斷開,完全沒有USB信號;二是USB 主機

端停止發(fā)送SOF 信號,也就是USB 主機端要求USB設(shè)備進入掛起狀態(tài)。當檢查到USB總線掛起狀態(tài)后,

CH372 將產(chǎn)生USB_INT_USB_SUSPEND 事件中斷。


請教了!

你好:

CMD_CHK_SUSPEND這個命令設(shè)置是可以讓單片機檢測到設(shè)備掛起的。你的中斷開啟在這條命令后再執(zhí)行吧!另外注意供電,如果是主機USB口供電,那么連接供電同時設(shè)備沒有掛起,拔下USB口后雖然是物理線斷開也是掛起但同時單片機是否還有電?

測試時可以這樣,外部電源供電單片機+ch376,設(shè)置內(nèi)部固件模式和掛起檢測,再打開外部中斷。那么上電后就會產(chǎn)出掛起中斷,然后USB口連接主機,中斷取消。拔出USB連接線,中斷再次產(chǎn)生,這應(yīng)該是整個流程。


謝謝!

我使用USB端口可以連接PC、或者電源適配器,因此希望能將它們區(qū)分開來。

昨天我試著用USB_INT_EP0_SETUP、USB_INT_EP0_OUT、USB_INT_EP0_IN等中斷事務(wù)進行判斷。理論上應(yīng)該可以,PC機枚舉時必然有數(shù)據(jù)的交換,因此只要跟蹤到任意一個中斷,即可判斷是PC機了,但是我發(fā)現(xiàn)有時候能產(chǎn)生中斷、有時候不行,很不理解!不知能否告知一個辦法?

另外,好像CH376資料上沒有提供檢測PC機是否連接的信息,對吧?


你好:

連接PC,那么ch376是做設(shè)備的,查看ch372的手冊。檢測是否掛起一般就可以代表主機是否連接。如果ch376做主機是可以檢測是否有設(shè)備連接上的。


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频