当前位置:首页 > 代码 > 正文

vb串口程序代码(vb串口编程实例)[20240421更新]

admin 发布:2024-04-21 00:00 116


本篇文章给大家谈谈vb串口程序代码,以及vb串口编程实例对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

VB实现串口通讯程序代码

一个server端

Private Sub Command1_Click()

End

End Sub

Private Sub Command2_Click()

Winsockserver.SendData Text4.Text + ":" + textsend.Text

textget.Text = textget.Text + vbCrLf + Text4.Text + ":" + textsend.Text + " " + Str(Time)

textsend.Text = ""

End Sub

Private Sub Form_Load()

Command2.Visible = False

textsend.Visible = False

Text4.Visible = False

textget.Visible = False

Label1.Visible = False

Winsockserver.LocalPort = 1001

Winsockserver.Listen

End Sub

Private Sub textsend_Change()

'Winsockserver.SendData textsend.text

End Sub

Private Sub textsend_KeyPress(KeyAscii As Integer)

'If KeyAscii = 13 Then

'Winsockserver.SendData textsend.text

'textsend.text = ""

If KeyAscii = 13 Then

Winsockserver.SendData textsend.Text

' Text1.text = Text1.text + vbCrLf + Text4.text + ": " + Text2.text + " " + Str(Time)

textsend.Text = ""

End If

End Sub

Private Sub Timer1_Timer()

If Text4.Text = "" Then Text4.Text = "no name"

End Sub

Private Sub Winsockserver_Close()

Winsockserver.Close

End

End Sub

Private Sub Winsockserver_ConnectionRequest(ByVal requestID As Long)

Command2.Visible = True

textsend.Visible = True

textget.Visible = True

Text4.Visible = True

Label1.Visible = True

If Winsockserver.State sckClosed Then Winsockserver.Close

Winsockserver.Accept requestID

End Sub

Private Sub Winsockserver_DataArrival(ByVal bytesTotal As Long)

Dim tmpstr As String

Winsockserver.GetData tmpstr

'textget.text = textget + tmpstr + textsend

textget.Text = textget.Text + vbCrLf + tmpstr + " " + Str(Time)

End Sub

'(1)Command1:退出按钮;

'(2)textsend:发送数据文本框;

'(3)Winsockserver: 服务器Winsock;

'(4)textget :接收数据文本框。

一个clien

怎样在vb中自动检测到可用串口号的具体程序代码?

j = 0

For i = 1 To 16 Step 1

If comISP.PortOpen = True Then '先关闭串口

comISP.PortOpen = False

End If

comISP.CommPort = i

On Error Resume Next '说明当一个运行时错误发生时,控件转到紧接着发生错误的语句之后的语句,并在此继续运行。访问对象时要使用这种形式而不使用 On Error GoTo。

comISP.PortOpen = True

If Err.Number 8002 Then '无效的串口号。这样可以检测到虚拟串口,如果用Err.Number = 0的话检测不到虚拟串口

If j = 0 Then

j = i

End If

cboPort.AddItem "COM" i '生成串口选择列表

End If

comISP.PortOpen = False

Next i

If j = 1 Then

cboPort.Text = "COM" j '自动打开可用的最小串口号

comISP.CommPort = j

comISP.PortOpen = True

cmdOpenCom.Caption = "关闭串口"

shpCOM.FillColor = vbGreen

If Err.Number = 8005 Then '串口已打开,vbExclamation '

comISP.PortOpen = False

cboPort.Text = ""

cmdOpenCom.Caption = "打开串口"

shpCOM.FillColor = vbRed

End If

End If

向串口写数据 VB 源码

VB用MSCOMM控件与单片机经RS232串口实现通讯。一方为主发,一方为应答。规定好通讯格式。VB程序利用MSCOMM的ONCOMM事件进行接收。

Output

属性示例

下面的例子说明如何将用户键入的每一个字符送到串行端口:

Private

Sub

Form_KeyPress

(KeyAscii

As

Integer)

Dim

Buffer

as

Variant

'

设置并打开串口

MSComm1.CommPort

=

1

MSComm1.PortOpen

=

True

Buffer

=

Chr$(KeyAscii)

MSComm1.Output

=

Buffer

End

Sub

同样在串口打开时,给MSCOMM的属性Output赋值,就向串口写入数据.

串口传送数据实质是传送ASCII码,对于数值数据的处理:通常以16位二进制数字传递,而小数点不传递,仅乘一定倍率来实现.同时16位二进制数字按两个8位(ASCII码值)输送,上位机通过程序代码处理成10进制数.

串口通信中数制转换必须相当重视。

详细请参阅MSDN和人民邮电出版社的"UISUAL

BASIC

串口通讯工程开发实例导航"一书.其中有详细介绍.重点第一章“串口调试精灵”。其代码修改后可用作通讯模块。

vb串口通信程序实例

我也是自己摸索开发出来的每一款VBtoCOM通讯,有具体的思路如下:

给你推荐一个工具“com串口测试工具 ComTone V1.0 中文绿色版”

1、打开你的噪音计的测试软件,调整好串口号、通讯频率等等,我用温度计举例说明。

开始查询后有返回数值,这个Receive:就是返回的数值000304012200004b05,

打开串口监视精灵,监视软件的com口事件:

这里面的Write是测试软件发出的查询指令,read是设备返回的数据指令

Private Sub Command1_Click() '发送指令

If Not MSComm1.PortOpen Then

  MSComm1.CommPort = 7 '串口为7

  MSComm1.Settings = "9600,n,8,1"

  MSComm1.InBufferCount = 0 '清除接收缓冲区

  MSComm1.OutBufferCount = 0 '清除发送缓冲区

  MSComm1.InputMode = comInputModeBinary '二进制接收

  MSComm1.InputLen = 0 '读取接收缓冲区的所有字符

  MSComm1.PortOpen = True  '打开串口

  MSComm1.RTSEnable = False '置为发送状态

End If

Dim pu() As Byte

Dim strdata  As String

Dim crc_js() As Byte

ReDim pu(7)  '这个数组是8位的查询指令

pu(0) = "H00" '温度计地址

pu(1) = "H03" '查询指令

pu(2) = "H00" '2、3为温度计地址

pu(3) = "H00" '2、3为温度计地址

pu(4) = "H00" '4、5为读取寄存器长度

pu(5) = "H02" '4、5为读取寄存器长度

pu(6) = "HC5" '6、7为CRC校验码 因为我们不知道设备的CRC校验规则所以用测试软件产生的校验码

pu(7) = "HDA" '6、7为CRC校验码

MSComm1.Output = pu

'不做任何事情,仅仅允许其它应用程序处理它们的事件。

DoEvents

MSComm1.InBufferCount = 0 '清除接收缓冲区

MSComm1.RThreshold = 9 '所要接收的数据长度,我们通过COM检测精灵看到了回传数据一共是9字节

MSComm1.RTSEnable = True '转为接收状态

End Sub

Private Sub Command2_Click()

Timer1.Enabled = False

End Sub

Private Sub Form_Unload(Cancel As Integer)

    If MSComm1.PortOpen Then

        MSComm1.PortOpen = False  '关闭串口

    End If

    Timer1.Enabled = False

End Sub

Private Sub MSComm1_OnComm() 'COM事件

    Dim PA() As Byte

    Dim PB As String

Select Case MSComm1.CommEvent

 Case comEvReceive

            MSComm1.InputLen = 0 '读取接收缓冲区的所有字符

            PB = MSComm1.Input

            PA() = PB

            For i = 0 To UBound(PA())

                'Print "PA("  i  ")"; PA(i)

                If Len(Hex(PA(i))) = 1 Then

                    strdata = strdata  "0"  Hex(PA(i))

                Else

                    strdata = strdata  Hex(PA(i))

                End If

            Next

            '回传的数据串:000304012600000AC4,这9字节根据通讯协议我们进行拆分

            '00为协议内回传机号,03为读命令,04为返回的数据长度 0126 为我要的温度数据为十六进制表达,下面我进行数据处理

            wd = CLng("H"  Left(Right(strdata, 12), 4)) / 10  "℃"   '根据通讯协议换算成温度

            Text1 = Text1  vbCrLf  strdata  "  "  wd

            strdata = ""

   MSComm1.PortOpen = False  '关闭串口

 End Select

End Sub

Private Sub Timer1_Timer()

Call Command1_Click

End Sub

这是我的测试结果。

下面是通讯协议

这个是我的软件用检测精灵检测的结果

如何用VB编写串口程序

有串口控件MSComm控件

MSComm 控件示例

下面这个简单的例子演示了用调制解调器进行基本的串行通讯:

Private Sub Form_Load ()

' 保存输入子串的缓冲区

Dim Instring As String

' 使用 COM1。

MSComm1.CommPort = 1

' 9600 波特,无奇偶校验,8 位数据,一个停止位。

MSComm1.Settings = "9600,N,8,1"

' 当输入占用时,

' 告诉控件读入整个缓冲区。

MSComm1.InputLen = 0

' 打开端口。

MSComm1.PortOpen = True

' 将 attention 命令送到调制解调器。

' Chr$函数:返回 String,其中包含有与指定的字符代码相关的字符 。

MSComm1.Output = "ATV1Q0" Chr$(13) ' 确保

' 调制解调器以"OK"响应。

' 等待数据返回到串行端口。

Do

DoEvents

Buffer$ = Buffer$ MSComm1.Input

Loop Until InStr(Buffer$, "OK" vbCRLF)

' 从串行端口读 "OK" 响应。

' 关闭串行端口。

MSComm1.PortOpen = False

End Sub

vb编写的串口调试程序

串口

接收

可以放在MScomm控件的

OnComm

事件里

推荐看书

Visual_Basic与_RS-232_串行通信控制

关于vb串口程序代码和vb串口编程实例的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/133.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载