我想用CH376S读取手柄键值,但是不能获取手柄的HID设备描述符。 准确的说是SETUP事务都执行失败了
事务执行函数如下: void issue376(UCHAR tog,UCHAR pid) { wr_cmd376(CMD_ISSUE_TKN_X); wr_dat376(tog); wr_dat376(pid); _nop_(); }
获取设备描述符函数如下: UCHAR get_dev_descr() { UCHAR length; UCHAR *p = data_buf; mode = 0x00; wr_buf376(8,SetupGetDevDescr); _nop_(); issue376(mode,DEF_USB_PID_SETUP); _nop_(); status = INT_QUERY376(); _nop_(); if(status!=USB_INT_SUCCESS) return(ERR_SETUP_F); else mode = 0x80; …… }
手册上说事务执行完毕后CH376会产生中断,返回0x14,但是我查看上面函数的返回值,就是ERR_SETUP_F (这个是我自己定义的值) 我用的是89C52,晶振12M,376的晶振也是12M,CMD_CHECK_EXIST命令的返回值是正常的
调了半天也不对,不知道怎么回事啊,请求大家帮忙看看,谢谢!