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

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


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

    主題:開發語言中的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串口通訊實例








    簽名
    主站蜘蛛池模板: 好吊操视频在线观看| 激情偷乱人伦小说视频在线| 在线A级毛片无码免费真人| 久久精品国产99国产精品澳门 | 亚洲欧美另类一区| 男男gvh肉在线观看免费| 国产成人www| 97国产精品视频观看一| 好大的奶女好爽视频| 久久国产精品99国产精| 本道久久综合无码中文字幕| 伊人不卡久久大香线蕉综合影院| 美女无遮挡免费视频网站| 国产真实迷j在线播放| jlzz奶水太多奶水太多| 性色a∨精品高清在线观看| 久久精品视频16| 樱桃视频高清免费观看在线播放| 人妻丰满熟妇av无码区| 精品丝袜人妻久久久久久| 国产在线精品一区二区不卡麻豆| 99久久99久久精品免费观看| 好猛好深好爽好硬免费视频| 久久大香伊焦在人线免费| 欧洲一卡2卡3卡4卡免费观看| 依恋影视在线观看韩国| 精品久久久久久中文字幕无碍| 国产在线视频www色| 2一8一teesex| 国产美女在线免费观看| √天堂资源地址在线官网| 性色av无码一区二区三区人妻| 久久棈精品久久久久久噜噜| 最新国产三级在线不卡视频| 亚洲深深色噜噜狠狠爱网站| 潘多拉铂金刊33刊无圣光| 午夜三级A三级三点在线观看| 美女被扒开胸罩| 国产噜噜在线视频观看| 麻豆精品久久久久久久99蜜桃| 国产精品视频李雅|