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的超级终端实现数据的传输么?我的毕业设计啊!求高人指导,回答好了粉可以继续给啊!!!!!! 展开
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的超级终端实现数据的传输么?我的毕业设计啊!求高人指导,回答好了粉可以继续给啊!!!!!! 展开
2个回答
2012-05-25
展开全部
楼主 初学 吧!
Form_Load() 里 你把 MSComm1.PortOpen = True 前的 ‘ 号 去掉
就是 要 端口这个串口!
推荐看书
Visual_Basic与_RS-232_串行通信控制
祝你顺利
Form_Load() 里 你把 MSComm1.PortOpen = True 前的 ‘ 号 去掉
就是 要 端口这个串口!
推荐看书
Visual_Basic与_RS-232_串行通信控制
祝你顺利
追问
我改了之后又出现什么,端口已打开,还是运行不了,您能不能加我下QQ。咱们Q上聊下好不好?毕业设计啊!完不成了~我的Q843879195!谢谢了啊!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询