求助:运行时出现错误!

lqg1999 2007-01-08 10:51:54
本人vb初学者,有个问题希望高手看一下:
现在做个通过串口采集下位仪表的小程序,单步运行的时候能采集到值,可是全部运行就出现错误:实时错误 '5'
无效的过程调用或参数

然后我点“调试”按钮,就进入到:

Function RecvCmdCom(buf As String) As String

Dim strRead As String
Dim intBeginBit As Integer
Dim intEndBit As Integer

intBeginBit = InStr(1, buf, ",")
intEndBit = InStr(intBeginBit, buf, ":")
strRead = Mid(buf, intBeginBit + 1, intEndBit - intBeginBit - 1)

RecvCmdCom = Str(Val("&H" & strRead))

End Function

光标停在strRead = Mid(buf, intBeginBit + 1, intEndBit - intBeginBit - 1)
这个语句上。

请问各位高手,这个这么解决呢?是什么原因?
...全文
201 4 打赏 收藏 举报
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
tmd007 2007-01-08
Function RecvCmdCom(buf As String) As String

Dim strRead As String
Dim intBeginBit As Integer
Dim intEndBit As Integer

intBeginBit = InStr(1, buf, ",")'这句加个判断
if intBeginBit = 0 then '如果buf 中没有"," ,那么
RecvCmdCom=""
exit function
end if
intEndBit = InStr(intBeginBit, buf, ":")'这句加个判断
if intEndBit = 0 then '如果buf 中没有":" ,那么
RecvCmdCom=""
exit function
end if
strRead = Mid(buf, intBeginBit + 1, intEndBit - intBeginBit - 1)

RecvCmdCom = Str(Val("&H" & strRead))

End Function
  • 打赏
  • 举报
回复
tmd007 2007-01-08
Function RecvCmdCom(buf As String) As String

Dim strRead As String
Dim intBeginBit As Integer
Dim intEndBit As Integer

intBeginBit = InStr(1, buf, ",")'这句加个判断
if intBeginBit = 0 then '如果buf 中没有"," ,那么
RecvCmdCom=""
exit function
end if
intEndBit = InStr(intBeginBit, buf, ":")'这句加个判断
if intBeginBit = 0 then '如果buf 中没有":" ,那么
RecvCmdCom=""
exit function
end if
strRead = Mid(buf, intBeginBit + 1, intEndBit - intBeginBit - 1)

RecvCmdCom = Str(Val("&H" & strRead))

End Function
  • 打赏
  • 举报
回复
hpygzhx520 2007-01-08
buf为空的时候会出错
  • 打赏
  • 举报
回复
lqg1999 2007-01-08
谢谢!是个延时问题,在读下位机字符前延时一下就好了。
  • 打赏
  • 举报
回复
发帖
VB基础类

7617

社区成员

VB 基础类
社区管理员
  • VB基础类社区
加入社区
帖子事件
创建了帖子
2007-01-08 10:51
社区公告
暂无公告