用VB编写一个与RS232有关的测试程序

我现在有安装VS2008的电脑,一根RS232导线,和一台电子天平,已连接。可不可以给我一段代码来测试,是否天平和电脑真正连接起来了。不需要任何对开始字符和结束字符判断即... 我现在有安装VS2008的电脑,一根RS232导线,和一台电子天平,已连接。

可不可以给我一段代码来测试,是否天平和电脑真正连接起来了。不需要任何对开始字符和结束字符判断即可,我只想看看两台设备是否连在了一起。请麻烦说的详细点,我只看了点资料,没有什么实战经验。

先谢谢大家了。
我的VB是2008的,我看的资料都是7,8年前的,有些无法对应,请给点注释,谢谢
展开
 我来答
pzowen
2010-06-20 · TA获得超过206个赞
知道小有建树答主
回答量:177
采纳率:0%
帮助的人:127万
展开全部
VB 6.0的测试代码如下: 可以做参考,用MSComm1控件
Dim i As Integer

Dim a As Integer
Dim t() As Byte

Private Sub Command1_Click()

If Command1.Caption = "打开串口" Then
'Shape1.Visible = True
Shape1.FillColor = &HFF&
Shape1.BackColor = &HFF&
Shape1.BorderColor = &HFF&

Command2.Enabled = True
Command3.Enabled = True
Command1.Caption = "关闭串口"
'MSComm1.CommPort = 1 '设定Com1口
MSComm1.CommPort = Combo1.Text '设定Com1口
If MSComm1.PortOpen = False Then
'MSComm1.Settings = "4800,N,8,1" '4800波特率,无校验,8位数据位,1位停止位
MSComm1.Settings = Combo2.Text & "," & Combo3.Text & "," & Combo4.Text & "," & Combo5.Text '4800波特率,无校验,8位数据位,1位停止位

MSComm1.InputLen = 1 '读取接收缓冲区的所有字符
MSComm1.InputLen = 5
MSComm1.InBufferSize = 5 '设置接收缓冲区为1024字节
MSComm1.OutBufferSize = 5 '设置发送缓冲区为512字节
MSComm1.SThreshold = 0 '不触发发送事件
MSComm1.RThreshold = 1 '每一个字符到接收缓冲区都触发接收事件
MSComm1.PortOpen = True '打开串口
End If
MSComm1.OutBufferCount = 0 '清空发送缓冲区
MSComm1.InBufferCount = 0 '清空接收缓冲区
Dim temp() As Byte
Else
'Option2.Value = False
'Option1.Value = False
'Shape1.Visible = False
Shape1.BackColor = &H808080
Shape1.BorderColor = &H808080
Shape1.FillColor = &H808080

Command2.Enabled = False
'Command3.Enabled = False
MSComm1.PortOpen = False
Command1.Caption = "打开串口"

End If

End Sub

Private Sub Command2_Click()
'Command2.Enabled = False
'Option2.Value = False
'Option1.Value = False

'Shape2.Visible = False
MSComm1.OutBufferCount = 0 '清空发送缓冲区
MSComm1.InBufferCount = 0 '清空接收缓冲区

't(0) = "255"

' MSComm1.Output = t

MSComm1.Output = Text2.Text
End Sub

Private Sub Command3_Click()
Text1.Text = ""

End Sub

Private Sub Command5_Click() '退出
End
End Sub

Private Sub Command6_Click()
Text2.Text = ""
End Sub

Private Sub Command7_Click()
If Command7.Value Then
'Command7.Visible = False
Command1.Visible = True
Command2.Visible = True
Command3.Visible = True
Command6.Visible = True
Label1.Visible = True
Label2.Visible = True
Label3.Visible = True
Label4.Visible = True
Label5.Visible = True
Label6.Visible = True
Label7.Visible = True
Combo1.Visible = True
Combo2.Visible = True
Combo3.Visible = True
Combo4.Visible = True
Combo5.Visible = True

Text1.Visible = True
Text2.Visible = True
Frame1.Visible = True
Frame2.Visible = False
'Command3.Visible = False
'Option1.Value = False
Shape1.Visible = True

Else
Label1.Visible = False
Label2.Visible = False
Label3.Visible = False
Label4.Visible = False
Label5.Visible = False
Label6.Visible = False
Label7.Visible = False
Combo1.Visible = False
Combo2.Visible = False
Combo3.Visible = False
Combo4.Visible = False
Combo5.Visible = False
Command1.Visible = False
Command2.Visible = False
Command3.Visible = False
Text1.Visible = False
Text2.Visible = False
Frame1.Visible = False
Frame2.Visible = False
End If
End Sub

Private Sub Form_Load()

MSComm1.InBufferCount = 0 '清除发送缓冲区数据
MSComm1.OutBufferCount = 0 '清除接收缓冲区数据
ReDim t(0)
t(0) = "0"
Combo1.AddItem "1"
Combo1.AddItem "2"
Combo1.AddItem "3"
Combo1.AddItem "4"
'Combo1.Text = "1"
Combo2.AddItem "300"
Combo2.AddItem "600"
Combo2.AddItem "1200"
Combo2.AddItem "2400"
Combo2.AddItem "4800"
Combo2.AddItem "9600"
Combo2.AddItem "19200"
Combo3.AddItem "N"
Combo3.AddItem "O"
Combo3.AddItem "E"
Combo4.AddItem "8"
Combo4.AddItem "7"
Combo4.AddItem "6"
Combo5.AddItem "1"
Combo5.AddItem "2"
Combo5.AddItem "3"

End Sub

Private Sub Frame2_DragDrop(Source As Control, X As Single, Y As Single)

End Sub

Private Sub MSComm1_OnComm()
Dim s1 As String
Dim s2 As String
Select Case MSComm1.CommEvent

Case comEventOverrun '数据丢失
Text_SEND.Text = "" '清空发送缓冲区
Text_RECV.Text = "" '清空接收缓冲区
Text_SEND.SetFocus
Exit Sub
Case comEventRxOver '接收缓冲区溢出
Text_SEND.Text = "" '清空发送缓冲区
Text_RECV.Text = "" '清空接收缓冲区
Text_SEND.SetFocus
Exit Sub
Case comEventTxFull '发送缓冲区已满
Text_SEND.Text = "" '清空发送缓冲区
Text_RECV.Text = "" '清空接收缓冲区
Text_SEND.SetFocus
Exit Sub
Case comEvReceive '接收字符数据
Dim Buffer As Variant
MSComm1.InputLen = 1
MSComm1.InputMode = comInputModeBinary '二进制传输
Buffer = MSComm1.Input
'Text1.Text = Buffer(0)
's2 = Buffer(1)

Text1.Text = Text1.Text & (Val(MSComm1.Input)) & " "

Case Else

End Select

End Sub

Private Sub Option1_Click()

End Sub
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式