delphi开发一个程序用了一段时间以后就打开串口失败,什么原因?(100)

  • 主题发起人 主题发起人 hewenyuan77
  • 开始时间 开始时间
H

hewenyuan77

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大侠: 我用delphi开发一个程序(是用串口联接了一个读卡器)用了一段时间以后就打开串口失败,什么原因?这个软件在其他地方使用也正常。但到了另一个客户那里,在使用半小时,或稍长一点时间以后,就因为打不开串口而无法读卡了。 我向很多前辈请教,有一说是认为,那个客户的电脑上另一个软件占用了串口导致打不开。也有说是串口缓存没有清掉导致。 请各位大侠帮我分析分析。是什么原因。如何处理呀。
 
估计也就是这两个原因了。
 
一直霸占着试一试
 
打开串口失败后用Getlasterror取出错误码看一下就知道是什么原因了
 
串口是在你启动程序后一直打开的吗?如果是在你读卡的时候才打开,打卡完毕,就关了串口的话,有可能不别人占用。如果是你一直占用,那就是缓冲的问题了。
 
我查了我的源代码,每次打开串口,我都是用完后就关闭了.根据实际情况,那台电脑上的一般是同时运行两个软件.一个我的,另一个是另外一个系统的,每次工作不久以后,就出现打开串口失败.我现在想能再出一次差到现场调查.
 
还是程序的问题或者你在客户电脑里面设置好串口指定它用这个写注册表
 
每次打开的时候判断一下串口是否被占用,占用了就关闭,然后再打开,不就行了吗?
 
对通讯端口来说,频繁的打开/关闭不是个好主意,因为有缓冲器的问题既然这个串行口上就只连接着你的设备,打开和关闭对系统而言并无其他影响,为什么要关闭呢?我做过的工业控制机和安防系统值班机器都是一直打开串行口,机器连续工作若干年(因为随时要接收报警信息)都不会出现问题的。
 
做个LOG,查找出来打开串口失败的原因。。。。
 
后退
顶部