正在用沁恒公司给的CH372模拟键盘程序。CH372已经被识别成“人体学输入设备”和键盘里另赠一项:“HID Keyboard Device”。现有个问题,UPDATA_FLAG这个变量是标志什么的?以及当UPDATA_FLAG=1时,为什么要上传下面一段程序: up_data( ) { unsigned char i; for(i=0;i!=5;i++) //发送5个字节的数据出去 buf[i]=0; buf[2]=0x62; CH375_WR_CMD_PORT(CMD_WR_USB_DATA5); //发出写上传端点命令 CH375_WR_DAT_PORT(8); for(i=0;i!=5;i++) CH375_WR_DAT_PORT(buf[i]); } 这段程序做什么用的,工程师给看一下,谢谢!
这是向端点1上传8个0,你是模拟键盘的,键盘传数据的时候是先上传键值,然后在收到上传成功中断状态以后你要上传8个0,告知计算机一个键值的数据已经传完,如果你不上传8个0,那么计算机就认为这个键一直是按下的,不知道这样说你清楚没有!呵呵!
明白一些。可是UPDATA_FLAG是在“类请求”里面置1的。具体到: if((c1=request.r.bmReuestType)&0x20){ printf("b\n"); //类请求,未处理 if(request.buffer[1]==0x0a) {printf("c\n");} //SET_IDLE else if(request.buffer[1]==0x09) { UPDATA_FLAG=1; } }
这是获取描述符的最后一步,这个标志置1以后,就意味着你现在可以上传键值!
我等的就这是这句话,豁然开朗! 能不能给我一个HID类设备的接口协议,我想看一下,这个整个的过程是怎么样的?
呵呵,这个建议你去找一本USB书看看,上面肯定有讲HID设备的协议的