else return(0);
send_mode=0x40;
WR_USB_DATA(0,SetupGetDevDescr);
issue_token(send_mode,( 0 << 4 ) | DEF_USB_PID_OUT);status=wait_interrupt();
if(status==USB_INT_SUCCESS)//状态阶段操作成功
return(1);
else return(0);
}
//*****************************************************
//*NAME: Get_Cfg_Descr( PUINT8 buf )
//*FUCTION: 获取配置描述符
//*输入参数: 接收缓冲区地址
//* 输出参数:成功返回1,否则返回0
//*说明: 该程序采用外置固件模式获取配置描述符
//******************************************************
UINT8 Get_Cfg_Descr( PUINT8 buf )
{
unsigned char descr_len;
unsigned char *p=data_buf;
send_mode=0x00;
WR_USB_DATA(8,buf);
issue_token(send_mode,( 0 << 4 ) | DEF_USB_PID_SETUP);status=wait_interrupt();
if(status==USB_INT_SUCCESS)//SETUP阶段操作成功
{
receive_mode=0x80;
}
else return(0);
issue_token(receive_mode,( 0 << 4 ) | DEF_USB_PID_IN);status=wait_interrupt();
if(status==USB_INT_SUCCESS)//DATA阶段操作成功
{
receive_mode ^= 0x80;
if(flag_config_2) //第二次获取设备的配置描述符
descr_len=data_buf[2]-RD_USB_DATA(data_buf);
else descr_len=data_buf[0]-RD_USB_DATA(dat
a_buf);
while(descr_len>0)
{
p+=0x08;
issue_token(receive_mode,( 0 << 4 ) | DEF_USB_PID_IN);status=wait_interrupt();
if(status==
搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新人文社科CH376主机控制键盘鼠标程序(6)全文阅读和word下载服务。