关于Run-time error '8005' port already open 大家给点意见

wjr1982et 2011-11-22 09:32:28
本人最近做了个VB的小程序,目的是将计算机数据通过串口发送到LED显示屏幕上,每5秒发送一次。
当时买LED显示屏的时候厂家给我个.OCX的控件。这个控件我在VB注册后,然后通过调用控件中的一个
方法,就可以把字符串发送到LED显示屏上。
最近发现问题:由于程序是每5秒循环发送,当程序运行一天左右时间后,VB就会提示Run-time error '8005'
port already open。
请各位高手帮我分析下原因,最好能告诉我如何解决,呵呵,谢谢大家
...全文
1101 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wjr1982et 2011-11-22
  • 打赏
  • 举报
回复
明白了 太谢谢这位高手啦。
贝隆 2011-11-22
  • 打赏
  • 举报
回复
我的理解,在程序中,你只需要打开一次串口(在程序加载时),其他时候串口都处于打开状态,可以随时收发命令,当你要关闭程序时再关闭串口即可。
所以,在整个过程中可以不用判断,如果如此使用还出错,那么标明对方提供的控件可能存在问题。
wjr1982et 2011-11-22
  • 打赏
  • 举报
回复
对 谢谢。
SendToLedOCX1.SendCommand语句前用不用加串口打开的判断呢?
贝隆 2011-11-22
  • 打赏
  • 举报
回复
Call SendToLedOCX1.SetComm(0, 1, "28800", "0")
这个语句用一次就够了,不需要每次都用。
wjr1982et 2011-11-22
  • 打赏
  • 举报
回复
十、 控件事件
1. 当调用SendCommand函数或SendScript函数时,将激发SendToLedSendStart事件
SendToLedSendStart() 无参数
2. 当处于发送过程中时,将激发控件的SendToLedSendProgress事件
SendToLedSendProgress(SendProgress, SendStage)
参数SendProgress:发送完成的百分比
参数SendStage:发送过程描述字符串
3. 发送成功,将激发控件的SendToLedSendEnd事件
SendToLedSendEnd() 无参数
4. 当有错误产生时,将激发控件的SendToLedOnError事件
SendToLedOnError(ErrorNo, ErrorDescription)
参数ErrorNo:错误号
参数ErrorDescription:错误内容描述字符串
=================================================
还有这些,也是控件说明
wjr1982et 2011-11-22
  • 打赏
  • 举报
回复
这就是发送的代码,SendToLedOCX1就是提供的控件,SetComm;ClearSrn;PrintStr;SendCommand是控件提供的方法。
这是控件给我的说明:
10. 发送命令
SendCommand
无参数
返回值:整型,0-调用成功,非0不成功
wjr1982et 2011-11-22
  • 打赏
  • 举报
回复
Private Sub SendToLed()

Call SendToLedOCX1.SetComm(0, 1, "28800", "0")

If (clear) Then
Call SendToLedOCX1.ClearSrn(0, 0, 127, 95)
clear = False
Else
Call SendToLedOCX1.PrintStr(Round(Values(1), 1) & " ", 0, 0, 0, 1)
Call SendToLedOCX1.PrintStr(Round(Values(2), 1) & " ", 64, 0, 0, 1)
Call SendToLedOCX1.PrintStr(Round(Values(3)) & " ", 0, 32, 0, 1)
Call SendToLedOCX1.PrintStr(Round(Values(4), 1) & " ", 64, 32, 0, 1)
Call SendToLedOCX1.PrintStr(Round(Values(5)) & " ", 0, 64, 0, 1)
Call SendToLedOCX1.PrintStr(Format(Now, "hh:mm") & " ", 64, 64, 0, 1)
End If
Call SendToLedOCX1.SendCommand

End Sub
贝隆 2011-11-22
  • 打赏
  • 举报
回复
请附上你的代码,不然不好贸然作答。
wjr1982et 2011-11-22
  • 打赏
  • 举报
回复
谢谢高手回答,那么我是不是应该在每次发送前加个端口是否打开的判断?
贝隆 2011-11-22
  • 打赏
  • 举报
回复
意欲打开已经打开的串口,肯定会报错的。

863

社区成员

发帖
与我相关
我的任务
社区描述
VB COM/DCOM/COM+
c++ 技术论坛(原bbs)
社区管理员
  • COM/DCOM/COM+社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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