ATemga16+CH375作为主机,操作罗技USB鼠标,参考了例程ch375_host_int_para.c,前面部分已经调试通过,完成了配置,在进行set_idle()时,SETUP阶段成功,再往下时就会失败,返回STALL错误。不知道是不是跟该鼠标有两个接口有关?是不是在进行配置时要进行相应的修改? 附该鼠标的配置描述符: 9,2,59,0,2,1,4,160,49 9,4,0,0,1,3,1,2,0,9,33,17,1,0,1,34,94,0,7,5,129,3,10,0,1 9,4,1,0,1,3,0,0,0,9,33,17,1,0,1,34,54,0,7,5,130,3,20,3,10
因而在执行函数 parse_config_descr()时,下面这段程序保存的信息其实都是接口2的,即report_descr_len=54,endp_int=2。不知道这跟后面的SET_IDLE出错有没有关? for(i=0;i!=data_buf[2];i++) { if((data_buf[i]==0x09)&&(data_buf[i+1]==0x04))//接口描述符 { } if((data_buf[i]==0x09)&&(data_buf[i+1]==0x21))//HID描述符 { report_descr_len=data_buf[i+7];} //REPORT描述符长度 if((data_buf[i]==0x07)&&(data_buf[i+1]==0x05))//端点描述符 { endp_int=data_buf[i+2]&0x0f;} //中断端点号 }
求高手指点!!遇到这种多个接口的设备,应该在哪些方面注意?