STC32G 使用 USB-CDC 的问题
使用环境:芯片:STC32G12K128
板子:使用 USB 线供电
复位脚没有用作I/O口
主机:windows 10
工具:stc-isp v6.91K
USB线
正常情况:
板子可以用 stc-isp 的 USB-CDC 串口助手 与 PC 正常通信
异常情况:
当板子与 PC 在正常通信的情况下,按下板子上的复位按键然后松开
此时,在 设备管理器 中依然能看到 “端口(COM和LPT) --> STC USB-CDC (COMX)” 正常
但是,此时 使用 stc-isp 的串口助手 发送数据会出现“卡死”现象 (stc-isp 卡顿)
此后,拔掉板子的 USB 线,使板子完全放电再接上USB线,使用 stc-isp 发送数据依然“卡死”
需要在设备管理中,先禁用“STC USB-CDC”设备,然后再启用才能正常通信
板子上的复位操作,需要上位机也要进行“先禁用再启用”的操作才能恢复。
这是在是emmmmmmmmm,有点麻烦。。 你禁用再启用就是在PC端重启识别这个USB设备。如果你的USB设备不是直接按复位键,而是正常停止程序,断开USB通信也是这样吗? 要是三楼的测试没有问题的话,在代码里USB初始化前加上这几句就好了
如果你的USB设备不是直接按复位键,而是正常停止程序,断开USB通信也是这样吗?
<---- 应该怎么理解“正常停止程序”呢? 是指下位机先停止发送数据,然后再按复位按键吗?
另外,更新一下得到的信息:
如果上位机与下位机在正常通信的情况下,拔掉USB线也会出现“卡死”的现象。
查了下资料(主要是《USB CDC 类入门培训》一文),这个现象似乎是 USB-CDC 的“死症”。。。
与下位机无关。 电子DIY小家 发表于 2023-3-3 09:30
要是三楼的测试没有问题的话,在代码里USB初始化前加上这几句就好了
增加了这个代码进行测试,但问题依旧。
这个应该是 上位机 驱动问题。
谢谢! 在PC机端,想中断调试或程序,先正常结束PC机端程序,再来停止或复位单片机,而不是PC机端通讯程序还在运行,单片机这边先断电或复位。之后USB-CDC可正常通信吗?南京沁恒刚开始推出的CH340/341芯片,常遇到的问题就是闲置时间长了,串口就丢失了,也容易受干扰。需要重新插拔或是WINDOWS下断开再启用设备。后来应该是驱动逐渐解决了问题。 lgwd 发表于 2023-3-3 21:24
在PC机端,想中断调试或程序,先正常结束PC机端程序,再来停止或复位单片机,而不是PC机端通讯程序还在运行 ...
你说得没错。
只是我边的工业环境比较恶劣,有时候会导致单片机与PC的通信终止。。。
页:
[1]