VB串口数据接受问题

来源:百度知道 编辑:UC知道 时间:2024/05/08 23:38:59
MSCOMM设置:
MSComm1.CommPort = 1
MSComm1.Settings = "38400,N,8,1"
MSComm1.InBufferSize = 1024
MSComm1.OutBufferSize = 1024
MSComm1.InputMode = MSCommLib.InputModeConstants.comInputModeBinary
MSComm1.RThreshold = 1
MSComm1.InputLen = 0
数据处理:
Public inData As String
Public a() As Byte

Private Sub MSComm1_OnComm(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MSComm1.OnComm
Dim inLen As Integer
Dim i As Integer
Select Case MSComm1.CommEvent
Case MSCommLib.OnCommConstants.comEvReceive
inLen = MSComm1.InputLen
ReDim a(inLen)
a = MSComm1.Input
For i = 0 To UBound(a)
If Len(Hex(a(i))) = 1 Then
inData = inData & "0" & Hex(a(i

假如你需显示在frmMain窗体,用
frmMain.Text1.Text = Hex(a(3))
显示在frmwel窗体,用
frmwel.Text1.Text = Hex(a(3))

frmwel窗体代码:
Option Explicit
Dim inData As String

Private Sub Form_Load()
MSComm1.CommPort = 1
MSComm1.Settings = "38400,N,8,1"
MSComm1.InBufferSize = 1024
MSComm1.OutBufferSize = 1024
MSComm1.InputMode = comInputModeBinary '.InputModeConstants.comInputModeBinary
MSComm1.RThreshold = 1
MSComm1.InputLen = 0
MSComm1.PortOpen = True
End Sub

Private Sub MSComm1_OnComm()
Dim inLen As Integer
Dim i As Integer
Dim a() As Byte
Select Case MSComm1.CommEvent
Case MSCommLib.OnCommConstants.comEvReceive
inLen = MSComm1.InputLen
ReDim a(inLen)
a = MSComm1.Input
Text1.Text = Hex(a(3))
frmMain.Text1.Text = Hex(a(3))