1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務時間:8:30-17:00
      你可能遇到了下面的問題
      關閉右側工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
      vb.net編寫串口程序 vb打開串口

      vb程序編寫模擬串口

      這是典型的VB串口通信

      公司主營業(yè)務:成都做網(wǎng)站、網(wǎng)站建設、移動網(wǎng)站開發(fā)等業(yè)務。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)建站是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)建站推出商水免費做網(wǎng)站回饋大家。

      你可以采用Mscomm控件實現(xiàn)串口通信時,首先添加一Mscomm控件到窗體中,通過菜單項“工程(P)→部件(O)”進入選擇窗口,在控件頁中選取“Microsoft?Comm?Control?6.0”?,此時工具窗口中出現(xiàn)Mscomm圖標,即可被使用。

      需要注意的幾點是:

      1.用mscomm控件進行通信,其波特率最高只能設為115200

      2.利用MSCOMM控件可以發(fā)送和接收任何文件的類型。

      3.接收文本文件和二進制文件有一定的區(qū)別,接收二進制文件時用scomm1.Input讀入的變量需用Variant類型的變量,而文本文件可以用字符型變量,另外InputMode屬性應設置相應的文本方式或二進制方式

      4.接收文本無大小限制。

      5.當連續(xù)存數(shù)據(jù)時記錄號是自動加的,但當文件關閉后再次打開時,默認的記錄號為1,存儲文件不完整的原因可能在此。接收到文件頭識別字符時打開文件,接收中途不要關閉文件,直到接收到文件結束符(Mscomm1.EOFEnable事件發(fā)生)才能關閉文件。

      我手頭有一個完整的VB串口通信源碼,對你的問題很有幫助

      若你需要,發(fā)郵件至donook@qq.com

      我會盡快發(fā)給你

      如果滿意,加點分哦,資料都來之不易的呵呵

      vb串口通信程序實例

      我也是自己摸索開發(fā)出來的每一款VBtoCOM通訊,有具體的思路如下:

      給你推薦一個工具“com串口測試工具 ComTone V1.0 中文綠色版”

      1、打開你的噪音計的測試軟件,調(diào)整好串口號、通訊頻率等等,我用溫度計舉例說明。

      開始查詢后有返回數(shù)值,這個Receive:就是返回的數(shù)值000304012200004b05,

      打開串口監(jiān)視精靈,監(jiān)視軟件的com口事件:

      這里面的Write是測試軟件發(fā)出的查詢指令,read是設備返回的數(shù)據(jù)指令

      Private?Sub?Command1_Click()?'發(fā)送指令

      If?Not?MSComm1.PortOpen?Then

      MSComm1.CommPort?=?7?'串口為7

      MSComm1.Settings?=?"9600,n,8,1"

      MSComm1.InBufferCount?=?0?'清除接收緩沖區(qū)

      MSComm1.OutBufferCount?=?0?'清除發(fā)送緩沖區(qū)

      MSComm1.InputMode?=?comInputModeBinary?'二進制接收

      MSComm1.InputLen?=?0?'讀取接收緩沖區(qū)的所有字符

      MSComm1.PortOpen?=?True??'打開串口

      MSComm1.RTSEnable?=?False?'置為發(fā)送狀態(tài)

      End?If

      Dim?pu()?As?Byte

      Dim?strdata??As?String

      Dim?crc_js()?As?Byte

      ReDim?pu(7)??'這個數(shù)組是8位的查詢指令

      pu(0)?=?"H00"?'溫度計地址

      pu(1)?=?"H03"?'查詢指令

      pu(2)?=?"H00"?'2、3為溫度計地址

      pu(3)?=?"H00"?'2、3為溫度計地址

      pu(4)?=?"H00"?'4、5為讀取寄存器長度

      pu(5)?=?"H02"?'4、5為讀取寄存器長度

      pu(6)?=?"HC5"?'6、7為CRC校驗碼?因為我們不知道設備的CRC校驗規(guī)則所以用測試軟件產(chǎn)生的校驗碼

      pu(7)?=?"HDA"?'6、7為CRC校驗碼

      MSComm1.Output?=?pu

      '不做任何事情,僅僅允許其它應用程序處理它們的事件。

      DoEvents

      MSComm1.InBufferCount?=?0?'清除接收緩沖區(qū)

      MSComm1.RThreshold?=?9?'所要接收的數(shù)據(jù)長度,我們通過COM檢測精靈看到了回傳數(shù)據(jù)一共是9字節(jié)

      MSComm1.RTSEnable?=?True?'轉為接收狀態(tài)

      End?Sub

      Private?Sub?Command2_Click()

      Timer1.Enabled?=?False

      End?Sub

      Private?Sub?Form_Unload(Cancel?As?Integer)

      If?MSComm1.PortOpen?Then

      MSComm1.PortOpen?=?False??'關閉串口

      End?If

      Timer1.Enabled?=?False

      End?Sub

      Private?Sub?MSComm1_OnComm()?'COM事件

      Dim?PA()?As?Byte

      Dim?PB?As?String

      Select?Case?MSComm1.CommEvent

      Case?comEvReceive

      MSComm1.InputLen?=?0?'讀取接收緩沖區(qū)的所有字符

      PB?=?MSComm1.Input

      PA()?=?PB

      For?i?=?0?To?UBound(PA())

      'Print?"PA("??i??")";?PA(i)

      If?Len(Hex(PA(i)))?=?1?Then

      strdata?=?strdata??"0"??Hex(PA(i))

      Else

      strdata?=?strdata??Hex(PA(i))

      End?If

      Next

      '回傳的數(shù)據(jù)串:000304012600000AC4,這9字節(jié)根據(jù)通訊協(xié)議我們進行拆分

      '00為協(xié)議內(nèi)回傳機號,03為讀命令,04為返回的數(shù)據(jù)長度?0126?為我要的溫度數(shù)據(jù)為十六進制表達,下面我進行數(shù)據(jù)處理

      wd?=?CLng("H"??Left(Right(strdata,?12),?4))?/?10??"℃"???'根據(jù)通訊協(xié)議換算成溫度

      Text1?=?Text1??vbCrLf??strdata??"??"??wd

      strdata?=?""

      MSComm1.PortOpen?=?False??'關閉串口

      End?Select

      End?Sub

      Private?Sub?Timer1_Timer()

      Call?Command1_Click

      End?Sub

      這是我的測試結果。

      下面是通訊協(xié)議

      這個是我的軟件用檢測精靈檢測的結果

      vb.NET中用mscomm控件編寫串口通信軟件數(shù)據(jù)無法接收

      .net中不用mscomm 而改用 searport

      AxMSComm1.Input 只能一次,會把輸入緩沖區(qū)的內(nèi)容全都讀出來并清空

      如果沒有產(chǎn)生Oncomm事件,你可以把輸入經(jīng)部區(qū)的大小改一下改成1就行了


      網(wǎng)站欄目:vb.net編寫串口程序 vb打開串口
      當前網(wǎng)址:http://www.ef60e0e.cn/article/doshidd.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        武邑县| 得荣县| 普兰县| 玉田县| 安西县| 巴彦淖尔市| 博乐市| 桂东县| 丰城市| 杭锦后旗| 永德县| 大厂| 三台县| 定州市| 绥滨县| 云龙县| 宁河县| 古交市| 云和县| 漳州市| 乐昌市| 抚松县| 桃园县| 彩票| 杭州市| 新巴尔虎左旗| 拜城县| 房山区| 恭城| 桂阳县| 商丘市| 兴化市| 光泽县| 仙桃市| 海南省| 天镇县| 庆元县| 南丹县| 河东区| 卓尼县| 武强县|