是vista串口不稳定吗?

weistar0622 2009-04-20 06:24:51
同一个项目,用的串口控制硬件,在xp中, 写入串口后,sleep 20ms,运行一切都正常。

而客户想用vista系统,于是装了vista下的USB转串口的驱动(设备管理中看到的是COM8),看似没有问题,可是软件一跑起来就发现和串口通信不太正常。

比如应该读出3个设备以及相关的信息。在vista下有时能读出1,3 有时能读出2,而且设备的详细信息一般都读不出来。

比较纳闷的是:1、vista下通过串口调试工具进行调试,没有发现任何问题。
2、如果在vista单步调试我的程序,也没有发现任何问题。
3、把sleep时间设长一些(1000ms,5000ms),还是读不全,不稳定。


我就觉得没招了,希望高人指点。不胜感激!
...全文
152 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
yafeya 2009-04-21
  • 打赏
  • 举报
回复
你代码的问题,应该设置一下触发接受事件的字节数。
yafeya 2009-04-21
  • 打赏
  • 举报
回复
可能和许多东西有关系,包括波特率,通信的速率等等,一般的串口工具类都会有一个触发接收事件的接收字节数的属性,你可以根据你自己的协议来定义.
weistar0622 2009-04-21
  • 打赏
  • 举报
回复
是这句话么?
serPort.ReceivedBytesThreshold = 7; //因为我的协议返回的长度的固定的7个字节

也奇怪,试着改了不少地方,其中包括这句话,就好了。
但是 最后我想确定是不是关键就在这句话,测试代码都注掉,加上这句话,可以,把这句话注销,竟然也可以出来正确的结果,唉,摸不着头脑。


怎么回事?

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧