众哲之师 发表于 2023-3-2 17:47:58

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”设备,然后再启用才能正常通信


      

众哲之师 发表于 2023-3-2 17:49:45

板子上的复位操作,需要上位机也要进行“先禁用再启用”的操作才能恢复。
这是在是emmmmmmmmm,有点麻烦。。

lgwd 发表于 2023-3-2 20:25:45

你禁用再启用就是在PC端重启识别这个USB设备。如果你的USB设备不是直接按复位键,而是正常停止程序,断开USB通信也是这样吗?

电子DIY小家 发表于 2023-3-3 09:30:21

要是三楼的测试没有问题的话,在代码里USB初始化前加上这几句就好了

众哲之师 发表于 2023-3-3 10:41:59

如果你的USB设备不是直接按复位键,而是正常停止程序,断开USB通信也是这样吗?
<---- 应该怎么理解“正常停止程序”呢? 是指下位机先停止发送数据,然后再按复位按键吗?

另外,更新一下得到的信息:
如果上位机与下位机在正常通信的情况下,拔掉USB线也会出现“卡死”的现象。

查了下资料(主要是《USB CDC 类入门培训》一文),这个现象似乎是 USB-CDC 的“死症”。。。
与下位机无关。

众哲之师 发表于 2023-3-3 10:52:19

电子DIY小家 发表于 2023-3-3 09:30
要是三楼的测试没有问题的话,在代码里USB初始化前加上这几句就好了

增加了这个代码进行测试,但问题依旧。
这个应该是 上位机 驱动问题。
谢谢!

lgwd 发表于 2023-3-3 21:24:37

在PC机端,想中断调试或程序,先正常结束PC机端程序,再来停止或复位单片机,而不是PC机端通讯程序还在运行,单片机这边先断电或复位。之后USB-CDC可正常通信吗?南京沁恒刚开始推出的CH340/341芯片,常遇到的问题就是闲置时间长了,串口就丢失了,也容易受干扰。需要重新插拔或是WINDOWS下断开再启用设备。后来应该是驱动逐渐解决了问题。

众哲之师 发表于 2023-3-4 15:46:52

lgwd 发表于 2023-3-3 21:24
在PC机端,想中断调试或程序,先正常结束PC机端程序,再来停止或复位单片机,而不是PC机端通讯程序还在运行 ...

你说得没错。
只是我边的工业环境比较恶劣,有时候会导致单片机与PC的通信终止。。。
页: [1]
查看完整版本: STC32G 使用 USB-CDC 的问题