VB运行MSComm1.Output = Text.Text时出现实时错误“8018”只有当端口打开时有效。如何设置串口通信啊?

我的程序片段啊PrivateSubForm_Load()IfVal(Text1.Text)<=65ThenMsgBox"地块缺水,请灌溉!"EndIfMSComm1.Co... 我的程序片段啊
Private Sub Form_Load()

If Val(Text1.Text) <= 65 Then
MsgBox "地块缺水,请灌溉!"
End If
MSComm1.CommPort = 1 '设置串口1
MSComm1.Settings = "2400,n,8,1" '字符形式设置或返回波特率等参数
MSComm1.InputLen = 0 '从接受缓冲区中每次读取一个字符
MSComm1.InBufferSize = 256 '设置接受缓冲区大小
MSComm1.OutBufferSize = 256 '设置发送缓冲区大小
'MSComm1.PortOpen = True '打开串口
MSComm1.SThreshold = 1
MSComm1.RThreshold = 1 '当缓冲区每接收一个字符就引发一次OnComm事件
MSComm1.InputMode = 0 'comInputModeText返回文本数据
MSComm1.DTREnable = True

End Sub

Private Sub Command2_Click()

If Not IsNumeric(Text7.Text) Then '如果不是数值信息则弹出提示信息
MsgBox "不能发送", vbExclamation, "请重新设置参数"
Text7.Text = ""
Text7.SetFocus
ElseIf Not IsNumeric(Text12.Text) Then '如果不是数值信息则弹出提示信息
MsgBox "不能发送", vbExclamation, "请重新设置参数"
Text12.Text = ""
Text12.SetFocus
Else
MSComm1.Output = Text12.Text
Text12.Text = ""
Text7.Text = ""

End If
End Sub
Private Sub MSComm1_OnComm()
Text16.Text = MSComm1.Input
End Sub

Private Sub MSComm2_OnComm()
Dim indata As Integer
Select Case MSComm2.CommEvent
Case comEvReceive '有接收事件发生
indata = MSComm2.Input
Text1.Text = (indata / 10) 'text1实时显示数显表的数据
MSComm2.InBufferCount = 0 '清空输入寄存器
End Select
End Sub
就会出现上面的问题。能用WINDOWS的超级终端实现数据的传输么?我的毕业设计啊!求高人指导,回答好了粉可以继续给啊!!!!!!
展开
 我来答
hmilyghime
2012-06-07 · 超过21用户采纳过TA的回答
知道答主
回答量:87
采纳率:0%
帮助的人:38.6万
展开全部
报错是指的你的端口已打开或未打开。不知道楼主有没有设置串口呢?如果计算机上有232串口,则把2 3脚短接,再进行调试,若没有,则要下载一个虚拟串口软件了
匿名用户
2012-05-25
展开全部
楼主 初学 吧!
Form_Load() 里 你把 MSComm1.PortOpen = True 前的 ‘ 号 去掉
就是 要 端口这个串口!

推荐看书
Visual_Basic与_RS-232_串行通信控制

祝你顺利
追问
我改了之后又出现什么,端口已打开,还是运行不了,您能不能加我下QQ。咱们Q上聊下好不好?毕业设计啊!完不成了~我的Q843879195!谢谢了啊!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式