COM 连接问题

qq_sugar 2006-09-27 05:18:29
现象:
自己编写的串口类,在连接一些串口设备时,如交换机设备,会出现连接成功,但是不能输出设备发送过来的信息,获取设备发送过来的信息丢失非常严重,但是通过windows自带的超级终端连接设备却是可以的,能够正确地输出信息。不过这种情况非常少,目前只遇到两三个设备,绝大部分都是好的。

今天还碰到一个情况是,有一台PC上有两个串口,分别连接两个设备,如果同时连接的话,只有一个设备能够正确地输出信息,另外一个没有信息输出。单独连接设备的话都是没有问题的。

上面碰到的情况只是在很少情况下碰到,在大部分时候都是正确的。

不清楚是不是在使用串口的时候,某些地方没有注意导致这个问题,还是由于设备的串口模块的硬件驱动能力不行导致的问题?但是为什么用超级终端是好的呢,很郁闷!







...全文
151 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lic240 2006-09-28
  • 打赏
  • 举报
回复
先查一查波特率,再看一下是否有硬件流控,如果有可以短接连接线中的CTS引脚,在你的程序写一个事件来监视串口的状态,如果一有数据,马上接收,没有数据,就让接收线程,SLEEP一下,再就是如果你是用SLIP协议的话,一定要判断首尾的CO,是否完整,否则容易读不全数据
mwp 2006-09-28
  • 打赏
  • 举报
回复
如果你波特率、停止位啥的设置的没问题还有这情况的话,试着在循环读串口的时候 sleep一下,因为你的循环占用CPU太高,使得回调函数没有即使执行!
qq_sugar 2006-09-28
  • 打赏
  • 举报
回复
今天发现在那台PC上两个串口是可以同时连接,原来不能连接是设置的问题。


不过还是没有搞明白为什么某些情况下超级终端能够输出信息,而我自己终端不能输出信息?而且这种现象出现的非常少,目前只是在和一台设备上连接的时候出现这种情况。其它的设备连接都没有问题。






DentistryDoctor 2006-09-27
  • 打赏
  • 举报
回复
说明你的Serial通信的代码相当的。。。

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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