我的USB设备插上,主机不显示发现新硬件。单片机程序中,地址已修改,CH375初始化子程序如下: void CH375_Init( void ) { UINT8 i;

/*#ifdef MY_USB_VENDOR_ID #ifdef MY_USB_PRODUCT_ID */ /* 设置外部自定义的USB设备VID和PID,可选操作,不执行该命令则使用默认的VID和PID, 如果设置使用自定义的ID,那么计算机端驱动程序INF安装文件中的"USB\VID_4348&PID_5537"需要进行类似修改 */ /* CH375_WR_CMD_PORT( CMD_SET_USB_ID ); */ /* 设置外部自定义的USB设备VID和PID,可选操作 */ /* CH375_WR_DAT_PORT( (UINT8)MY_USB_VENDOR_ID ); */ /* 写入厂商ID的低字节 */ /* CH375_WR_DAT_PORT( (UINT8)(MY_USB_VENDOR_ID>>8) );*/ /* 写入厂商ID的高字节 */ /* CH375_WR_DAT_PORT( (UINT8)MY_USB_PRODUCT_ID ); *//* 写入产品ID的低字节 */ /* CH375_WR_DAT_PORT( (UINT8)(MY_USB_PRODUCT_ID>>8) );*/ /* 写入产品ID的高字节 */ /*#endif #endif */ CH375_WR_CMD_PORT(CMD_RESET_ALL); for ( i=100; i!=0; i-- ) Delay2us(); /* 设置USB工作模式, 必要操作 */ CH375_WR_CMD_PORT( CMD_SET_USB_MODE ); CH375_WR_DAT_PORT( 2 ); /* 设置为使用内置固件的USB设备方式 */ for ( i=100; i!=0; i-- ) if ( CH375_RD_DAT_PORT( ) == CMD_RET_SUCCESS ) break; /* 等待操作成功,通常需要等待10uS-20uS */ /* if ( i == 0 ) { CH372/CH375芯片内部或者物理连接存在硬件错误 }; */

#ifdef ENABLE_USB_SUSPEND /* 设置检查USB总线挂起状态,便于在USB总线挂起时使CH375也进入低功耗状态 */ CH375_WR_CMD_PORT( CMD_CHK_SUSPEND ); /* 设置检查USB总线挂起状态的方式 */ CH375_WR_DAT_PORT( 0x10 ); CH375_WR_DAT_PORT( 0x04 ); /* 以50mS为间隔检查USB挂起 */ #endif

/* 下面启用USB中断,CH375的INT#引脚可以连接到单片机的中断引脚,中断为低电平有效或者下降沿有效, 如果不使用中断,那么也可以用查询方式,由单片机程序查询CH375的INT#引脚为低电平则说明CH375请求中断 */ #ifdef __C51__ IT0 = 0; /* 置外部信号为低电平触发 */ IE0 = 0; /* 清中断标志 */ EX0 = 1; /* 允许CH375中断,假定CH375的INT#引脚连接到单片机的INT0 */ #endif }