我的USB設(shè)備插上,主機(jī)不顯示發(fā)現(xiàn)新硬件。單片機(jī)程序中,地址已修改,CH375初始化子程序如下: void CH375_Init( void ) { UINT8 i;

/*#ifdef MY_USB_VENDOR_ID #ifdef MY_USB_PRODUCT_ID */ /* 設(shè)置外部自定義的USB設(shè)備VID和PID,可選操作,不執(zhí)行該命令則使用默認(rèn)的VID和PID, 如果設(shè)置使用自定義的ID,那么計算機(jī)端驅(qū)動程序INF安裝文件中的"USB\VID_4348&PID_5537"需要進(jìn)行類似修改 */ /* CH375_WR_CMD_PORT( CMD_SET_USB_ID ); */ /* 設(shè)置外部自定義的USB設(shè)備VID和PID,可選操作 */ /* CH375_WR_DAT_PORT( (UINT8)MY_USB_VENDOR_ID ); */ /* 寫入廠商ID的低字節(jié) */ /* CH375_WR_DAT_PORT( (UINT8)(MY_USB_VENDOR_ID>>8) );*/ /* 寫入廠商ID的高字節(jié) */ /* CH375_WR_DAT_PORT( (UINT8)MY_USB_PRODUCT_ID ); *//* 寫入產(chǎn)品ID的低字節(jié) */ /* CH375_WR_DAT_PORT( (UINT8)(MY_USB_PRODUCT_ID>>8) );*/ /* 寫入產(chǎn)品ID的高字節(jié) */ /*#endif #endif */ CH375_WR_CMD_PORT(CMD_RESET_ALL); for ( i=100; i!=0; i-- ) Delay2us(); /* 設(shè)置USB工作模式, 必要操作 */ CH375_WR_CMD_PORT( CMD_SET_USB_MODE ); CH375_WR_DAT_PORT( 2 ); /* 設(shè)置為使用內(nèi)置固件的USB設(shè)備方式 */ for ( i=100; i!=0; i-- ) if ( CH375_RD_DAT_PORT( ) == CMD_RET_SUCCESS ) break; /* 等待操作成功,通常需要等待10uS-20uS */ /* if ( i == 0 ) { CH372/CH375芯片內(nèi)部或者物理連接存在硬件錯誤 }; */

#ifdef ENABLE_USB_SUSPEND /* 設(shè)置檢查USB總線掛起狀態(tài),便于在USB總線掛起時使CH375也進(jìn)入低功耗狀態(tài) */ CH375_WR_CMD_PORT( CMD_CHK_SUSPEND ); /* 設(shè)置檢查USB總線掛起狀態(tài)的方式 */ CH375_WR_DAT_PORT( 0x10 ); CH375_WR_DAT_PORT( 0x04 ); /* 以50mS為間隔檢查USB掛起 */ #endif

/* 下面啟用USB中斷,CH375的INT#引腳可以連接到單片機(jī)的中斷引腳,中斷為低電平有效或者下降沿有效, 如果不使用中斷,那么也可以用查詢方式,由單片機(jī)程序查詢CH375的INT#引腳為低電平則說明CH375請求中斷 */ #ifdef __C51__ IT0 = 0; /* 置外部信號為低電平觸發(fā) */ IE0 = 0; /* 清中斷標(biāo)志 */ EX0 = 1; /* 允許CH375中斷,假定CH375的INT#引腳連接到單片機(jī)的INT0 */ #endif }