电脑安装社保软件后,CH552就会死机!!!问题一麻烦再分析一下!!!

例程链接:CH55X 8位 MCU系列应用参考示例 - 沁恒微电子社区 (wch.cn),我参考了16,CH554模拟USB键盘 这个例程。


问题一:社保软件一直发送如下指令:80 06 00 04 00 00 3E 00 ,大概发送200次左右,单片机就会死机重启!!!


问题二:在外接的USB大键盘上按Num Lock或Caps Lock或Scr Lock键时,CH552设备上的的USB口会有Xact error出现,如下图所示:

image.png

但是USB大键盘就没有错误报出,如下图所示:

image.png

您好,可以使用BUSHound抓一下通讯过程,分析一下USB通讯过程是否有异常,比如是否有没有响应的USB命令导致USB总线复位。


你们可以自己烧一下例程中的hex试试,真实存在的问题!!!而且这个问题我以前就反应过,兜兜转转不是忙就是没空,然后让我自己去抓数据,现在数据也抓了,测试方法也告诉你们了,为什么不能去验证一下呢?用户那边频繁出现问题,烦请快点拿出解决方案,万分感谢!!!


image.png

你好,代码这一句去掉就行,状态阶段需要以DATA1包回复。后面若还有其他技术问题可以直接联系我:025-89692394。


问题二按照如上改了,试了可以。

问题一的话麻烦也解决一下,测试方法是发送 80 06 00 04 00 00 3E 00 ,大概发送200次左右,单片机就会死机重启!!!

发送截图如下:

image.png

捕获区截图如下:(红圈处CH552重启了)

image.png

数据包如下:

icon_rar.gifCH552重启数据抓包.rar



image.png

在标准请求里增加你这个命令的处理 上传的数据可以自己填充。

注:对于全速和低速,获取描述符的标准请求只有三种:01设备描述符、02配置描述符、03字符串描述符。另外的04接口描述符、05端点描述符是随着配置描述符一起返回的,如果单独返回,主机是无法确认它们是属于哪个配置的。不确定你的具体应用是什么样的,注意点需要注意一下。


针对04接口描述符可以这样解决,但是以后又有其他描述符的话,还是一样会出现重启问题,对于自己不需要的描述符是否可以不返回任何信息(个人觉得现在的程序可能是内存取值溢出造成的),这样以后也不会再出现此类问题了。


分析了一下,问题应该在这里:当接收的上位机请求码不支持时,指针pDesc会一直后移,造成指针溢出,CH552就会死机重启!!!(******应该在进中断或者default的时候先把指针pDesc的位置重新初始化一下*****)

image.png


你好,正如上面所说:对于全速和低速,获取描述符的标准请求只有三种:01设备描述符、02配置描述符、03字符串描述符,针对04标准请求,如果需要支持,修改代码支持即可。


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