我用的程序是你们提供的,有两个鼠标总能枚举完成后工作,有一个是偶尔能,但多数是不行,问题都是在下面这一步: get_descr(0x01); //获取设备描述符
在上面这个函数中又包函了下面这个: uint8 get_descr( uint8 type ) /* 从设备端获取描述符 */ { status = 0xff; CH375_WR_CMD_PORT( CMD_GET_DESCR ); /* 主机方式: 控制传输-获取描述符 */ CH375_WR_DAT_PORT( type ); // 描述符类型, 只支持1(设备)或者2(配置) status = wait_interrupt( ); // 等待CH375操作完成 */ if ( status == USB_INT_SUCCESS ) /* 操作成功 */ { len_descr = rd_usb_data( data_buf ); //读描述符 } return( status ); } 问题就在这里了,那些不能枚举的鼠标都在完成下面这两步后
CH375_WR_CMD_PORT( CMD_GET_DESCR ); CH375_WR_DAT_PORT( type );
单片机等不到375操作完成。但是有只是两个鼠标总是能等到,并枚举成功的。 我想不同的鼠标是有点差异,但是我不知道应该修改程序的哪个地方。