原创 使用 VB6 MSCOMM 控件 进行二进制收发

2012-1-10 17:30 6686 27 19 分类: MCU/ 嵌入式

MSCOMM 控件是用于串口通信的,使用方便。在VB中,这个串口控件缺省是用于收发字符串的。在实际的控制应用场合经常需要使用二进制收发。在程序编制时注意以下内容。

1、设置串口
    Dim temp As String
    temp = Mid(Combo1.Text, 4)
    MSComm1.CommPort = CDec(Mid(Combo1.Text, 4))
    'MSComm1.InBufferCount = 0
    MSComm1.InputLen = 64
    MSComm1.SThreshold = 0 '一旦发送数据就触发OnComm()事件来检测是否返回数据
    MSComm1.RThreshold = 3 '接收到1个字节数据就立即触发OnComm()事件
    MSComm1.Settings = "115200,n,8,1"
    MSComm1.InputMode = comInputModeBinary  '这个地方要设置为输入binary模式
    MSComm1.PortOpen = True

2、发送二进制数 可以定义一个Byte数组然后连接到output发送出去
    Dim bytebuf(0 To 5) As Byte
bytebuf(0) = 1
bytebuf(1) = 13
bytebuf(2) = &H53
bytebuf(3) = &HAA
bytebuf(4) = &HEF
bytebuf(5) = &HFF
MSComm1.Output = bytebuf

3、接收二进制数 可以使用一个checkbox选择是十六进制还是文本型显示
Dim tempstr As Variant '定义一个Variant型的数,这个非常重要
Dim i As Integer

If MSComm1.InputLen <> 0 Then
tempstr = MSComm1.Input
For i = LBound(tempstr) To UBound(tempstr)
If Check1.Value = Checked Then
    Text7.Text = Text7.Text + Hex(tempstr(i)) + " "
Else
    Text7.Text = Text7.Text + Chr(tempstr(i))
End If
Next i
End If

附:查找机器上的可用串口 一般做法是读注册表 但这里使用穷举法

Dim i As Integer
Combo1.Clear
On Error Resume Next
        For i = 1 To 100
        MSComm1.CommPort = i
        If (MSComm1.PortOpen = False) Then
                MSComm1.PortOpen = True
        End If
        If (MSComm1.PortOpen) Then
                Combo1.AddItem "com" + CStr(i)
                MSComm1.PortOpen = False
        End If
Next i
 

 

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户1588142 2012-3-26 21:17

mark!!
相关推荐阅读
southcreek 2024-12-04 16:32
PWM输出隔离DAC设计
这个设计的目标是产生一个隔离的DAC输出。12V供电,产生0~5V的输出。达到10000约13.3位的分辨率。要求DAC输出在改变设置后1S内能稳定。需要能长时间保持稳定和低噪声。能达到要求的DAC只...
southcreek 2024-12-04 15:23
一个基于HAL库的串口控制框架
将串口接收配置为 DMA方式,DMA 使用 DMA_CIRCULAR 模式工作。串口接收的数据实际上构成循环队列。 定义一个结构Comm_typedef 结构体中包含指向接收到的第一字节位置chrc...
southcreek 2024-07-08 11:38
接地不良导致的故障分析
这个电路的控制板需要连接显示板和识别板。5V 供电和串行控制连到显示板,显示板再连接到识别板。识别板上电位器使用一个LDO供电,将输入的5V转成3.3V。当电位器滑动时,输出电压在0~3.3V之间。...
southcreek 2024-06-26 09:15
【EMC整改】带辅助加热的滴速控制器辐射抗扰整改
这个滴速式的输液泵使用一个红外线发射和接收装置,当有液滴通过时,会扰动检测信号,识别这个扰动检测到液滴滴下,获得滴壶中的液滴速度,调整阀门大小,实现输液速度控制。控制器还配备一根加热条,用于输液时对药...
southcreek 2024-06-06 08:52
QT 使用QSettings 操作ini文件配合表格操作
这个项目可以演示 使用QSetting 读取或写入 ini文件。并使用tablewidget 显示。Ini文件的格式如下,这个文件可以事先编写。也可以在程序中生成。有一个大类,下面有一个小类使用等号设...
southcreek 2024-05-27 16:18
差分输入ADC的单端到差分转换器驱动设计
单端信号需要转换成差分信号,以便使用ADC进行转换。这个就所谓的ADC驱动电路。需要的结果为Vp = Vcm + Vi/2Vn = Vcm – Vi/2这样 Vp – Vn = Vi使用简单的加法器和...
EE直播间
更多
我要评论
1
27
关闭 站长推荐上一条 /3 下一条