vb 与RS-232的通讯
PrivateSubCommand1_Click()MSComm1.Output=Trim(Text1.Text)EndSubPrivateSubCommand2_Cli...
Private Sub Command1_Click()
MSComm1.Output = Trim(Text1.Text)
End Sub
Private Sub Command2_Click()
Dim buf$
buf = Trim(MSComm1.Input)
If Len(buf) = 0 Then
Text2.Text = "empty"
Else
Text2.Text = buf
End If
End Su
Private Sub Form_Load()
MSComm1.PortOpen = True
End Sub 为什么我接受到的总是空值 empty? 展开
MSComm1.Output = Trim(Text1.Text)
End Sub
Private Sub Command2_Click()
Dim buf$
buf = Trim(MSComm1.Input)
If Len(buf) = 0 Then
Text2.Text = "empty"
Else
Text2.Text = buf
End If
End Su
Private Sub Form_Load()
MSComm1.PortOpen = True
End Sub 为什么我接受到的总是空值 empty? 展开
4个回答
展开全部
给出在Win2000下利用VB6.0的MSComm控件开发计算机与一智能采集模块进行串行通信的程序实现。在工控领域内,智能采集模块有着相当重要的地位,它可以通过串口通讯协议(RS232、RS485等)或其他通讯协议与PC机相连,并与外界现场信号直接相连或与由传感器转换过的外界信号相连,由PC机中的程序控制并实现采集现场的模拟信号,并处理采集到的现场信号并输出模拟控制信号、开关量输入输出等功能。因此,智能采集模块在工业控制领域内有着极其广泛的应用。本例子中的智能采集模块与计算机进行通信时,采用一位开始位、一位停止位、7位数据位、偶校验方式,波特率为9600bps.
(1)在窗体中添加名为MyComm的MSComm控件,并设置空间的属性,如下:
.CommPort=2 ‘使用COM2
.Setting=”9600,e,7,1” ‘波特率9600,偶校验,7个数据位,1个停止位
.InBufferSize=40 ‘设置MyComm接收缓冲区为40个字节
.OutBufferSize=2 ‘设置MyComm发送缓冲区为2个字节
.InputMode=comInputModeBinary
‘设置接收数据模式为二进制模式
.InputLen=1 ‘设置一次从接收缓冲区读取字节数为1
.Sthreshold=1 ‘设置一次从发送缓冲区读取字节数为1
.PortOpen=True ‘打开通信口
‘其他属性设置省略
(2)下面是响应Mycomm_OnComm事件的处理程序,对数据库采集的处理程序采用MSComm事件驱动方式。
Private Sub MyComm_OnComm()
With MyComm
Select case .CommEvent
Case .comEvReceive
‘ 接收数据
‘ 对数据进行处理
case .comEVSend
‘发送数据
case .comEventRxParity
‘对奇偶校验错误进行处理
end select
end with
end sub
(1)在窗体中添加名为MyComm的MSComm控件,并设置空间的属性,如下:
.CommPort=2 ‘使用COM2
.Setting=”9600,e,7,1” ‘波特率9600,偶校验,7个数据位,1个停止位
.InBufferSize=40 ‘设置MyComm接收缓冲区为40个字节
.OutBufferSize=2 ‘设置MyComm发送缓冲区为2个字节
.InputMode=comInputModeBinary
‘设置接收数据模式为二进制模式
.InputLen=1 ‘设置一次从接收缓冲区读取字节数为1
.Sthreshold=1 ‘设置一次从发送缓冲区读取字节数为1
.PortOpen=True ‘打开通信口
‘其他属性设置省略
(2)下面是响应Mycomm_OnComm事件的处理程序,对数据库采集的处理程序采用MSComm事件驱动方式。
Private Sub MyComm_OnComm()
With MyComm
Select case .CommEvent
Case .comEvReceive
‘ 接收数据
‘ 对数据进行处理
case .comEVSend
‘发送数据
case .comEventRxParity
‘对奇偶校验错误进行处理
end select
end with
end sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的意思可能是通过同一个串口,自己发给自己。
这需要准备一个九针串口,并且把串口的2脚和3脚用导线连接在一起,就可以了。
因为2脚是发送,3脚是接收
这需要准备一个九针串口,并且把串口的2脚和3脚用导线连接在一起,就可以了。
因为2脚是发送,3脚是接收
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
控件 MSComm1 的输入 不是 你 点击按钮 就能输入的,要输入缓冲区 里 有数据 才行!
通常 MSComm1 的输入 在 OnComm 里处理
推荐 看书
Visual_Basic与_RS-232_串行通信控制
通常 MSComm1 的输入 在 OnComm 里处理
推荐 看书
Visual_Basic与_RS-232_串行通信控制
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为串口输出的数据不会被自己接收,除非用线把输出的针脚与输入的针脚连起来。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询