无码乱肉视频免费大全合集 I 男男gaygays白袜视频 I 全部毛片在线播放免费观看 I 国产日韩在线一区 I 成人免费性生活视频 I 亚洲熟女综合一区二区三区 I 激情五月在线观看 I 国产高清在线看 I 欧美 日韩 亚洲 在线 I 久久96国产精品久久99软件 I 国产福利在线视频网站 I 黄色电影在线视频 I 粉嫩av 在线 I 亚洲妇熟xx妇色黄 I 女生免费视频 I 操人视频在线播放 I 最新国产一区 I 91亚洲国产成人精品一区二三 I 九色综合九色综合色鬼 I 杀死比尔在线观看 I 国产一区二区三区在线观看网站 I 日日狠狠久久偷偷四色综合免费 I 欧美调教网站 I 亲子乱对白乱都乱了视频 I 在线一区国产 I 国产日日骚 I 香蕉黄色片 I 精品网站在线看 I 在线视频91 I 亚洲免费小视频 I 天天干小说 I 国产av一二三无码影片 I 美女被草高潮 I 男生坤坤放进女生坤坤里 I free性饿老太xxhd孕妇 I 久久丫精品忘忧草西安产品 I 国产白丝精品爽爽久久久久久蜜臀 I 一级片观看 I 亚洲综合无码无在线观看 I 狠狠爱五月丁香亚洲综合 I 亚洲成人精品一区二区三区 I 欧美另类国产 I 制服丝袜电影av I 揉我胸啊嗯~出水了 I 久久久蜜桃一区二区人 I 日本最长最激烈床吻戏 I 日本按摩偷拍 I 午夜 在线 I 草久久 I 亚洲男人资源 I 性生交大片免费观看 I 久久伊人青青 I 欧美成人 一区 二区 三区 I 国产成人精品久久一区二区三区 I 欧美mv日韩mv亚洲 I 国产10000部拍拍拍免费视频 I 免费看美女毛片

產(chǎn)品列表PRODUCTS LIST

聯(lián)系信息

  • 電話:
    13521418576
  • 傳真:
    010-62979724
首頁 > 技術(shù)與支持 > Visual Basic串口通訊調(diào)試方法
Visual Basic串口通訊調(diào)試方法
點擊次數(shù):5428 更新時間:2009-12-25

Visual Basic串口通訊調(diào)試方法

  現(xiàn)有電子秤一臺,使用串口與計算機進行通訊。編寫VB程序來訪問串口,達到讀取電子秤上顯示的數(shù)據(jù)。該電子秤為BE01型儀表,輸出為RS-232C標準接口,波特率為300-9600、偶校驗、7個數(shù)據(jù)位、2個停止位。所有字符均發(fā)送11位ASCII碼,一個起始位。在VB中與串口通訊需要引入控件MSComm串口通訊控件(在Microsoft Comm Control 6.0中)。具體程序如下:控件簡稱:MSC

Dim Out(12) As Byte '接收var中的值
Dim var As Variant '接收MSC.input中的數(shù)值
Dim nRece As Integer '計算MSC.inputbuffer的個數(shù)
Dim i As Integer, j As Integer '隨即變量,計算循環(huán)

****************************************************************************

Private Sub Form_Load()
 ClearText
 With MSC
  .CommPort = 1 '設(shè)置Com1為通信端口
  .Settings = "9600,E,7,2" '設(shè)置通信端口參數(shù) 9600赫茲、偶校驗、7個數(shù)據(jù)位、1個停止位.(這里需要進一步說明的是:.Setting=”BBBB,P,D,S”。
  含義是:B:Baud Rate(波特率);P:Parity(奇偶);D:Data Bit;S:Stop Bit)

  .InBufferSize = 40 '設(shè)置緩沖區(qū)接收數(shù)據(jù)為40字節(jié)
  .InputLen = 1 '設(shè)置Input一次從接收緩沖讀取字節(jié)數(shù)為1
  .RThreshold = 1 '設(shè)置接收一個字節(jié)就產(chǎn)生OnComm事件

 End With

End Sub

****************************************************************************

Private Sub ClearText()
 Text3.Text = ""
 Text2.Text = "5"
 Text1.Text = ""
End Sub

Private Sub Command1_Click()
 ClearText
 ' nRece = 0 '計數(shù)器清零
 With MSC
  .InputMode = comInputModeBinary '設(shè)置數(shù)據(jù)接收模式為二進制形式
  .InBufferCount = 0 '清除接收緩沖區(qū)
  If Not .PortOpen Then
   .PortOpen = True '打開通信端口
  End If
 End With
End Sub

Private Sub MSC_OnComm()
 DelayTime ‘用來延續(xù)時間
 ClearText
 With MSC
  Select Case .CommEvent '判斷通信事件
  Case comEvReceive: '收到Rthreshold個字節(jié)產(chǎn)生的接收事件
   SwichVar 1
   If Out(1) = 2 Then '判斷是否為數(shù)據(jù)的開始標志
    .RThreshold = 0 '關(guān)閉OnComm事件接收
   End If
   Do
    DoEvents
   Loop Until .InBufferCount >= 3 '循環(huán)等待接收緩沖區(qū)>=3個字節(jié)
   ' nRece = nRece + 1
   For i = 2 To 12
    SwichVar i
    Text1.Text = Text1.Text & Chr(Out(i))
   Next
   Text1.Text = LTrim(Text1.Text)
   Text2.Text = Text2.Text & CStr(nRece)
   .RThreshold = 1 '打開MSComm事件接收
  Case Else
   ' .PortOpen = False
  End Select
 End With

End Sub

****************************************************************************

Private Sub DelayTime()

 Dim bDT As Boolean
 Dim sPrevious As Single, sLast As Single

 bDT = True

 sPrevious = Timer (Timer可以計算從子夜到現(xiàn)在所經(jīng)過的秒數(shù),在Microsoft Windows中,Timer函數(shù)可以返回一秒的小數(shù)部分)

 Do While bDT
  If Timer - sPrevious >= 0.3 Then bDT = False
 Loop
 bDT = True

End Sub

(通信傳輸速率為9600bps,則zui快速度1.04ms發(fā)送一個字節(jié),儀表每秒發(fā)送50幀數(shù)據(jù),每幀數(shù)據(jù)有4個字節(jié),即每秒發(fā)送200個字節(jié),平均5.0ms 發(fā)送一個字節(jié),連續(xù)讀取串口數(shù)據(jù)時要在程序中添加循環(huán)等待程序)

Private Sub SwichVar(ByVal nNum As Integer)

 DelayTime
 var = Null
 var = MSC.Input
 Out(nNum) = var(0)

End Sub

(設(shè)置接收數(shù)據(jù)模式采用二進制形式,即 InputMode=comInputModeBinary,但用Input屬性讀取數(shù)據(jù)時,不能直接賦值給 Byte 類型變量,只能通過先賦值給一個 Variant 類型變量,返回一個二進制數(shù)據(jù)的數(shù)組,再轉(zhuǎn)換保存到Byte類型數(shù)變量中。)

Private Sub Text1_Change()

 Text3.Text = CText(Text1.Text) - CText(Text2.Text)

End Sub

****************************************************************************

Private Function CText(ByVal str As String) As Currency

 If str <> "" Then
  CText = CCur(Val(str))
 Else
  CText = 0
 End If

End Function
 

主站蜘蛛池模板: 开封县| 常山县| 琼中| 泌阳县| 阿勒泰市| 微博| 长沙市| 涟水县| 淄博市| 交口县| 宜宾县| 长治县| 五台县| 梧州市| 霸州市| 句容市| 开平市| 广河县| 法库县| 吉首市| 延长县| 中卫市| 凤庆县| 剑川县| 永靖县| 安康市| 仁寿县| 龙川县| 原阳县| 安远县| 舒城县| 航空| 石渠县| 万宁市| 仙居县| 梨树县| 沧源| 巴塘县| 临漳县| 竹山县| 开原市|