关于VB的8020报错,代码如下

qq_36410799 2017-05-20 01:33:15
Option Explicit

Private Sub Command1_Click()
With MSComm1
.CommPort = 3
.DTREnable = True
.InputMode = 0
.Settings = "9600,n,8,1"
.PortOpen = True
.InBufferCount = 0
.RThreshold = 3
.InputLen = 3

End With
End Sub

Private Sub MSComm1_OnComm()
Dim buf As String
Select Case MSComm1.CommEvent
Case comEvCD
Case comEvCTS
Case comEvDSR
Case comEvReceive
buf = MSComm1.Input
Case comEvSend
End Select
Text1.Text = Text1.Text & buf

End Sub



然后我用arduino的IDE可以收到数据,就是用这段代码报错8020错误然后无法进行通讯求,串口号没错的,驱动是arduino的,拜托各位大神帮个忙,报错的位置是在buf = MSComm1.Input这一行
...全文
436 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2017-05-21
  • 打赏
  • 举报
回复
注释掉所有On Error Resume Next语句,在VB6 IDE中运行, 出错后点击调试,光标会停在出错的那条语句处, 或者 事先在怀疑可能有逻辑错误的语句处设置断点,运行经过断点时中断, 此时可以在立即窗口中使用 ?变量名 或 ?函数名(函数参数) 或 过程名(参数) 辅助调试。
qq_36410799 2017-05-21
  • 打赏
  • 举报
回复
吼的,感谢楼上回答我去看下硬件问题
zdingyun 2017-05-21
  • 打赏
  • 举报
回复
读错误请从arduino硬件找问题,是硬件问题,也可能驱动不对。用你的代码可以接收来自串口的字节流。
qq_36410799 2017-05-20
  • 打赏
  • 举报
回复
我这样写它可以在文本框输出1,但是我加了个buf = MSComm1.Input就报8020了。。。。
qq_36410799 2017-05-20
  • 打赏
  • 举报
回复
Private Sub MSComm1_OnComm()
Dim buf As String
If MSComm1.InBufferCount > 0 Then
Text1.Text = Text1.Text & "1"
End If
End Sub
qq_36410799 2017-05-20
  • 打赏
  • 举报
回复
不行吖还是难道我串口有毒?
笨狗先飞 2017-05-20
  • 打赏
  • 举报
回复
可能你读早了,等MSComm1.InBufferCount>0的时候你再去读。

863

社区成员

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

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