<dfn id="is4kg"></dfn>
  • <ul id="is4kg"></ul>
  • <abbr id="is4kg"></abbr>
  • <ul id="is4kg"></ul>
    <bdo id="is4kg"></bdo>
    以文本方式查看主題

    -  曙海教育集團論壇  (http://www.hufushizhe.com/bbs/index.asp)
    --  VB語言  (http://www.hufushizhe.com/bbs/list.asp?boardid=77)
    ----  開發語言中的VB串口通訊實例  (http://www.hufushizhe.com/bbs/dispbbs.asp?boardid=77&id=2606)

    --  作者:wangxinxin
    --  發布時間:2010-12-14 14:36:19
    --  開發語言中的VB串口通訊實例
    高精度電壓表(24bit) VB源程序
    Dim PortValue As Integer `端口號選擇1-4
    Dim value As Double `當前一次取值
    Dim value2 As Double `要顯示的值
    Dim valueSum As Double `和
    Dim numCount As Double `算平均值是的計數個數
    Dim func As Integer `功能號標志1-4
    Dim valueFlag As Integer
    Private Sub Check1_Click()
    `自動刷新 被選中則 刷新按鈕無效
    If Check1.value Then
    Command1.Enabled = False
    Else
    Command1.Enabled = True

    Command1.SetFocus
    End If
    End Sub
    Private Sub Command1_Click()
    `顯示
    Call display
    End Sub
    Private Sub Command2_Click()
    valueSum = 0 `清計數和
    numCount = 1 `清計數個數
    Label6.Caption = Str(numCount - 1) `顯示復位
    value = 0
    value2 = 0
    valueFlag = 0
    Call display
    End Sub
    Private Sub Form_Activate()
    numCount = 1
    value = 0
    valueSum = 0
    PortValue = 1
    Text1.Visible = False
    Label6.Caption = 0
    Option1(0).value = True
    Option2(0).value = True
    Command1.SetFocus
    Label1.Caption = Format(value2 0.000000)
    For i = 0 To 3
    If Option2(i).value = True Then
    func = i + 1
    End If
    Next i
    Check1.value = 1
    `Call ComPortOpen
    End Sub
    Public Sub ComPortOpen() `開串口
    With MSComm1
    .CommPort = PortValue `使用COM1
    .Settings = 9600N81 `設置通信口參數
    .InBufferSize = 40
    `設置MSComm1接收緩沖區為40字節
    `.OutBufferSize = 2
    `設置MSComm1發送緩沖區為2字節
    .InputMode = comInputModeBinary
    `設置接收數據模式為二進制形式
    .InputLen = 1
    `設置Input 一次從接收緩沖讀取字節數為1
    `.SThreshold = 1
    `設置Output 一次從發送緩沖讀取字節數為1
    .InBufferCount = 0 `清除接收緩沖區
    `.OutBufferCount = 0 `清除發送緩沖區
    `MaxW = -99
    `最大值賦初值
    `MinW = 99 `最小值賦初值
    `w = 0
    `數據個數計數器清零
    .RThreshold = 1
    On Error Resume Next
    `設置接收一個字節產生OnComm事件
    If .PortOpen = False Then
    `判斷通信口是否打開
    .PortOpen = True `打開通信口
    If Err Then `錯誤處理
    msg = MsgBox( 串口 COM PortValue 無效! vbOKOnly 警告)
    Exit Sub
    End If
    End If
    End With
    `MsgBox 端口已打開
    End Sub
    Public Sub ComPortClose() `關串口
    MSComm1.PortOpen = False
    ` MsgBox 端口已關閉
    End Sub
    Private Sub MSComm1_OnComm()
    Call recive
    End Sub
    Private Sub Option1_Click(Index As Integer)
    If MSComm1.PortOpen = True Then
    Call ComPortClose
    End If
    PortValue = Index + 1
    Call ComPortOpen
    End Sub
    Private Sub recive() `檢測起始位并接收數據
    Dim Buffer As Variant
    Dim Arr() As Byte
    Dim inData(5) As Byte
    Dim count As Integer
    Dim temp As Byte


    ` MsgBox OnComm
    With MSComm1

    Select Case .CommEvent
    `判斷MSComm1通信事件
    Case comEvReceive
    `收到Rthreshold個字節產生的接收事件
    Buffer = .Input
    Arr = Buffer

    `讀取一個接收字節
    ` Text1.Text = Arr(0)
    If Arr(0) = H1B Then
    .RThreshold = 0
    Do
    DoEvents
    Loop Until .InBufferCount >= 4

    For i = 1 To 4
    `count = .InBufferCount
    Buffer = .Input
    Arr = Buffer
    inData(i) = Arr(0)
    Next i
    If inData(4) = HA Then
    If (inData(1) Mod 64) >= 32 Then
    .RThreshold = 1
    Exit Sub
    End If
    valueFlag = 1
    `0.000003814697265625
    temp = inData(1) Mod 16
    If temp <= 7 Then
    value = inData(1) Mod 8
    value = value * 256 * 256
    value = value + Val(inData(2)) * 256
    value = value + Val(inData(3))
    value = value * 3.814697265625E-06
    `Text1.Text = Format(value 0.000000)
    Else
    value = inData(1) Mod 8
    value = value * 256 * 256
    value = value + Val(inData(2)) * 256
    value = value + Val(inData(3))
    value = value * 3.814697265625E-06
    value = 0 - value
    End If
    temp = inData(1) Mod 128
    ` test OF
    If temp >= 64 Then
    If value < 0 Then
    value = value - 0.000004
    Else
    value = value + 0.000004
    End If
    End If
    `檢測自動刷新
    If Check1.value Then
    `valueFlag = 1
    Call display
    End If

    主站蜘蛛池模板: 乡村乱妇一级毛片| 色九月亚洲综合网| 鸣人向纲手开炮| 精品亚洲一区二区三区在线观看| 欧美激情一区二区三区在线| 日韩在线观看中文字幕| 日本精a在线观看| 成人免费一区二区三区| 尤物视频193.com| 在线观看精品视频看看播放| 国产精品无码dvd在线观看| 国产成人综合欧美精品久久| 国产xxxxx在线观看| 人妻18毛片a级毛片免费看| 亚洲中文字幕久久精品无码a| 久久久久久久蜜桃| jealousvue熟睡入侵中| 韩国演艺圈悲参39全集都有谁| 精品久久人人妻人人做精品| 玖玖资源站无码专区| 亚洲免费在线视频观看| 久久青青草原亚洲av无码麻豆| 中文字幕无线码免费人妻| 一个人看的www日本高清视频| 黄页网站在线观看免费| 日本高清免费一本视频无需下载| 鲤鱼乡太大了坐不下去| 蜜中蜜3在线观看视频| 美女羞羞视频免费网站| 狼人总合狼人综合| 夜夜爽夜夜叫夜夜高潮漏水| 国产精品综合一区二区三区| 国产成人黄色在线观看| 第一福利在线观看| 曰本女同互慰高清在线观看| 岛国在线免费观看| 国产偷国产偷亚洲高清日韩| 亚洲成a人片77777老司机| 一区视频在线播放| 18分钟处破好疼哭视频在线| 美女**毛片一级视频|