[求助]CH341T串口专用版本使用中USB插头意外脱离主机带来的问题

Readme.txt 中提及:

注意事项: CH341串口是即插即用的USB设备,正在使用CH341串口进行数据传输的过程中, 不可以将其断开(断开是指从USB插座中取出CH341或者关闭CH341的电源), 也就是说,必须在应用程序关闭该串口后,CH341串口才可以从USB插座中拔出。

如果在应用程序使用CH341串口的过程中,CH341串口设备从USB插座中断开, 那么应用程序应该尽快关闭CH341串口并退出(关闭及退出可能需要数秒时间)。

我遇到的问题: 脱离之后,应用程序立即陷入死循环,使用任务管理器也无法结束。 我已经设置了通讯端口的超时,但是好像根本不起作用。

请问如何解决?

与你的程序设计有关,到我们网上下载"模块调试"工具用于串口调试,或者到其它网上下载各种串口调试工具,都可以正常使用,不会在USB脱机后死机,你在你程序中换个方法试试


使用"模块调试"工具用于串口调试, 如果发送中去掉插头。然后再次插上,就无法搜索到 CH341串口了。

使用COMMaster 测试, 定时发送, 如果发送中去掉插头。然后再次插上, 再次打开串口,显示

串口被占用!


"发送中去掉插头"---这个不行吧!!!容易死机的


>>"发送中去掉插头"---这个不行吧!!!容易死机的

但是这个不可避免的


顶一下,看看有没有解决方案?


>使用"模块调试"工具用于串口调试, 如果发送中去掉插头。然后再次插上,就无法搜索到 CH341串口了。

原因很简单,CH341 芯片一直在循环等待剩余的数据。必须重新启动。我认为 CH341 的控制代码应该添加超时复位功能。


引用回复:>使用"模块调试"工具用于串口调试, 如果发送中去掉插头。然后再次插上,就无法搜索到 CH341串口了。

原因很简单,CH341 芯片一直在循环等待剩余的数据。必须重新启动。我认为 CH341 的控制代码应该添加超时复位功能。

是修改驱动程序,还是CH341固件,或者修改应用程序?


这个问题必须得到解决,否则无法把产品交付用户。总不能告诉他们,我们的产品在使用中千万不能拔掉 USB插头,必须在关闭应用程序之后才可以拔掉!


应该有超时的提示功能!!


到底该如何解决呢?


>>应该有超时的提示功能!!

是在应用程序,还是驱动程序里面呢?


应该在驱动程序中作,但现在驱动程序中没有就要自己作了


引用回复:应该在驱动程序中作,但现在驱动程序中没有就要自己作了

我在应用程序中已经设置了超时, 但是不知道为什么当USB意外脱离时,超时不起作用,应用程序挂起了!

难道驱动程序,不知道USB已经脱离了么?

是不是需要更新驱动程序了?


这个最好问问沁恒的技术人员! 他们最清楚!


引用回复:这个最好问问沁恒的技术人员! 他们最清楚!

坛子里有没有沁恒的技术人员?给一个答复呀。


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