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

    曙海教育集團(tuán)論壇開發(fā)語(yǔ)言培訓(xùn)專區(qū)VB語(yǔ)言 → 開發(fā)語(yǔ)言中的VB串口通訊實(shí)例


      共有7999人關(guān)注過本帖樹形打印

    主題:開發(fā)語(yǔ)言中的VB串口通訊實(shí)例

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


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

    高精度電壓表(24bit) VB源程序
    Dim PortValue As Integer `端口號(hào)選擇1-4
    Dim value As Double `當(dāng)前一次取值
    Dim value2 As Double `要顯示的值
    Dim valueSum As Double `和
    Dim numCount As Double `算平均值是的計(jì)數(shù)個(gè)數(shù)
    Dim func As Integer `功能號(hào)標(biāo)志1-4
    Dim valueFlag As Integer
    Private Sub Check1_Click()
    `自動(dòng)刷新 被選中則 刷新按鈕無(wú)效
    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 `清計(jì)數(shù)和
    numCount = 1 `清計(jì)數(shù)個(gè)數(shù)
    Label6.Caption = Str(numCount - 1) `顯示復(fù)位
    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 `設(shè)置通信口參數(shù)
    .InBufferSize = 40
    `設(shè)置MSComm1接收緩沖區(qū)為40字節(jié)
    `.OutBufferSize = 2
    `設(shè)置MSComm1發(fā)送緩沖區(qū)為2字節(jié)
    .InputMode = comInputModeBinary
    `設(shè)置接收數(shù)據(jù)模式為二進(jìn)制形式
    .InputLen = 1
    `設(shè)置Input 一次從接收緩沖讀取字節(jié)數(shù)為1
    `.SThreshold = 1
    `設(shè)置Output 一次從發(fā)送緩沖讀取字節(jié)數(shù)為1
    .InBufferCount = 0 `清除接收緩沖區(qū)
    `.OutBufferCount = 0 `清除發(fā)送緩沖區(qū)
    `MaxW = -99
    `最大值賦初值
    `MinW = 99 `最小值賦初值
    `w = 0
    `數(shù)據(jù)個(gè)數(shù)計(jì)數(shù)器清零
    .RThreshold = 1
    On Error Resume Next
    `設(shè)置接收一個(gè)字節(jié)產(chǎn)生OnComm事件
    If .PortOpen = False Then
    `判斷通信口是否打開
    .PortOpen = True `打開通信口
    If Err Then `錯(cuò)誤處理
    msg = MsgBox( 串口 COM PortValue 無(wú)效! vbOKOnly 警告)
    Exit Sub
    End If
    End If
    End With
    `MsgBox 端口已打開
    End Sub
    Public Sub ComPortClose() `關(guān)串口
    MSComm1.PortOpen = False
    ` MsgBox 端口已關(guān)閉
    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() `檢測(cè)起始位并接收數(shù)據(jù)
    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個(gè)字節(jié)產(chǎn)生的接收事件
    Buffer = .Input
    Arr = Buffer

    `讀取一個(gè)接收字節(jié)
    ` 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
    `檢測(cè)自動(dòng)刷新
    If Check1.value Then
    `valueFlag = 1
    Call display
    End If

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

    返回版面帖子列表

    開發(fā)語(yǔ)言中的VB串口通訊實(shí)例








    簽名
    主站蜘蛛池模板: 欧美a级完整在线观看| 久久久久亚洲av成人网人人软件| www.com日本| 日本午夜免费福利视频| 国产xvideos国产在线| 99精品久久99久久久久久| 日本中文字幕有码在线视频| 亚洲男人的天堂网站| 黑人巨大两根69gv| 天天做天天摸天天爽天天爱| 亚洲一区二区精品视频| 精品久久久噜噜噜久久久| 国产高清在线精品二区| 丰满多毛的陰户视频| 最新国产在线拍揄自揄视频| 免费观看黄a一级视频日本| 足本玉蒲团在线观看| 国产高清乱理论片在线看| 中文字幕国产综合| 极度另类极品另类| 全彩里番acg海贼王同人本子| 884hutv四虎永久7777| 成人国产精品免费视频| 亚洲av福利天堂一区二区三| 欧美精品高清在线观看| 另类ts人妖一区二区三区| 青娱乐国产盛宴| 国产精品美女网站在线看| 久久97久久97精品免视看秋霞| 欧美激情videos| 刘敏涛三级无删减版在线观看| 99精品欧美一区二区三区| 成年美女黄网站色大片免费看| 免费人成视频x8x8入口| 美国农夫激情在线综合| 国产精品男男视频一区二区三区| 久久久久亚洲精品中文字幕| 欧美一区二区三区免费不卡 | 翁熄系列乱老扒bd在线播放| 在线精品91青草国产在线观看 | 处女的诱惑在线观看|