<dfn id="is4kg"></dfn>
  • <ul id="is4kg"></ul>
  • <abbr id="is4kg"></abbr>
  • <ul id="is4kg"></ul>
    <bdo id="is4kg"></bdo>

    曙海教育集團論壇開發語言培訓專區VB語言 → 開發語言中的VB串口通訊實例


      共有7998人關注過本帖樹形打印

    主題:開發語言中的VB串口通訊實例

    美女呀,離線,留言給我吧!
    wangxinxin
      1樓 個性首頁 | 博客 | 信息 | 搜索 | 郵箱 | 主頁 | UC


    加好友 發短信
    等級:青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊:2010-11-12 11:08:23
    開發語言中的VB串口通訊實例  發帖心情 Post By:2010-12-14 14:36:19

    高精度電壓表(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

    支持(0中立(0反對(0單帖管理 | 引用 | 回復 回到頂部

    返回版面帖子列表

    開發語言中的VB串口通訊實例








    簽名
    主站蜘蛛池模板: 久久免费精品一区二区| 国产乱叫456在线| 中文字幕日韩一区二区不卡| 月夜影视在线观看免费完整| 再深点灬舒服灬太大了少妇| 韩国免费人成在线观看网站| 天天综合天天色| 久久亚洲精品无码| 最新国产在线观看| 亚洲综合成人网| 粗大挺进尤物人妻中文字幕| 国产小视频在线观看www| 999在线视频精品免费播放观看| 怡红院国产免费| 乱之荡艳岳目录| 欧美人与牲动交xxxx| 免费看无码特级毛片| 老师xxxx69动漫| 国产欧美专区在线观看| javaparser日本高清| 成人禁在线观看| 久久精品隔壁老王影院| 欧乱色国产精品兔费视频| 亚洲美女激情视频| 男人肌肌桶女肌肌网站| 国产一区二区三区免费视频| 青青草91在线| 国产精品一区二区久久| aaaaa级毛片| 女人扒下裤让男人桶到爽| 久久久久久夜精品精品免费啦| 最新国产成人ab网站| 亚洲第一页综合图片自拍| 熟妇人妻中文字幕无码老熟妇| 四虎影视1515hh四虎免费| 色综合久久88| 国产成人精品影院狼色在线| 8x国产在线观看| 国产调教视频在线观看| www.色午夜| 女人扒开双腿让男人捅|