求救

我现在用CH376 HOST接键盘可以操作,但是接USB 条码墙就出现

get device descr failed cfg 28

set idle error report error 00

set report error 谁又接过扫描枪,可以告诉我它的设备描述符是多少啊?小弟非常感谢!

按照你描述的这个现象可以确定CH376和扫描枪之间的USB通信就有问题。


是模式设置的问题吗?比如说扫描枪用得时高速模式,请问下如何判断呢?如果要设置为高速模式我如何设置呢? //***************************************************** //* NAME: set_freq(void) //* FUCTION: 设置CH376的进入低速模式 //* 输入参数:无 //* 输出参数:无 //* 说明: 对于鼠标键盘等低速设备,要先设置ch376为低速模式 //******************************************************

void set_freq(void) { CH376_WR_CMD_PORT(0x0b); // 切换使375B进入低速模式 CH376_WR_DAT_PORT(0x17); CH376_WR_DAT_PORT(0xd8); } 请教,非常感谢~


CH376_WR_CMD_PORT( 0x0a ); //检测是全速设备还是低速设备 CH376_WR_DAT_PORT( 0x07 ); c=CH376_DAT_PORT; if( c&0x10 ){ //低速设备 } else{ //全速设备 }


谢谢楼主,只是想再问下:我进行选择,接上低速键盘还OK,插上扫描枪也OK,可是似乎不稳定,扫描一枪就挂了,可能我没有设置高速模式把?请问高速模式如何设置呢? //* NAME: set_freq(void) //* FUCTION: 设置CH376的进入低速模式 //* 输入参数:无 //* 输出参数:无 //* 说明: 对于鼠标键盘等低速设备,要先设置ch376为低速模式 //******************************************************

void set_freq(void) { UINT8 check; CH376_WR_CMD_PORT( 0x0a ); //检测是全速设备还是低速设备 CH376_WR_DAT_PORT( 0x07 ); check=CH376_DAT_PORT; if( check&0x10 ) { CH376_WR_CMD_PORT(0x0b); // 切换使375B进入低速模式 CH376_WR_DAT_PORT(0x17); CH376_WR_DAT_PORT(0xd8); //低速设备 led3=0; } else { //led3=0;//全速设备 }

} //


全速就不设置就可以了。还有什么好设置的?在检测到设备移除之后复位芯片重新初始化CH375,在检测设备连接。等设备连接之后通过这个判断设置速度即可。


非常感謝樓主!在幫個忙:我用貴司提供的CH376操作鍵盤鼠標的例程,現在主函數裏面代碼如下: while(1) { //获取设备1的数据 s = get_int_in( Device_Atti.Device[0].tog,Device_Atti.Device[0].Device_endp);

//如果该设备是符合设备,则需要获取设备2的数据 if( Device_Atti.Device_compat ) { s = get_int_in( Device_Atti.Device[1].tog,Device_Atti.Device[1].Device_endp); } 函数s = get_int_in( Device_Atti.Device[0].tog,Device_Atti.Device[0].Device_endp);如果我接上键盘,按下"A“,串口顯示是00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00!我想知道 这个變量s到底得到了一個什麽值啊?因為我想把按下鍵盤A通過LCD顯示出來,但是一直不知道變量s得到什麽值???求解,感謝


前面是键值码,后面是断码。断码表示按键释放。这个是有规范的。你自己到网上去下载相关资料。


有沒有C8051F340操作的CH376程序呢?


C8051和51操作程序一样的,只是C8051的速度快点。


只有登录才能回复,可以选择微信账号登录