學習SerialPort的筆記

2021-07-04 06:00:59 字數 1974 閱讀 7105

serialport學習資料在網上已經有很多了,我在這裡主要是把我學習中用到的資料整理,歸類一下.

首先我們學習的時候沒有串列埠硬體,那麼我們去找乙個模擬虛擬串列埠的工具

開始學習serialport,首先先來看看一些基礎知識

串列埠簡單講解

串列埠是計算機上一種非常通用裝置通訊的協議(不要與通用序列匯流排universal serial bus或者usb混淆).大多數計算機包含兩個基於rs232的串列埠.串列埠同時也是儀器儀表裝置通用的通訊協議;很多gpib相容的裝置也帶有rs-232口.同時,串列埠通訊協議也可以用於獲取遠端採集裝置的資料.串列埠通訊的概念非常簡單,串列埠按位(bit)傳送和接收位元組。儘管比按位元組(byte)的並行通訊慢,但是串列埠可以在使用一根線傳送資料的同時用另一根線接收資料。它很簡單並且能夠實現遠距離通訊。比如ieee488定義並行通行狀態時,規定裝置線總常不得超過20公尺,並且任意兩個裝置間的長度不得超過2公尺;而對於串列埠而言,長度可達1200公尺。 典型地,串列埠用於ascii碼字元的傳輸。通訊使用3根線完成:(1)地線,(2)傳送,(3)接收。由於串列埠通訊是非同步,埠能夠在一根線上傳送資料同時在另一根線上接收資料。其他線用於握手,但是不是必須的。串列埠通訊最重要的引數是波特率、資料位、停止位和奇偶校驗。對於兩個進行通行的埠,這些引數必須匹配

c#中用到的類 serialport類

msdn 位址

serialport類中幾個比較重要的屬性

串列埠名稱 portname

通訊埠名稱 com1,com2 之類

波特率 baudrate

這是乙個衡量通訊速度的引數。它表示每秒鐘傳送的bit的個數。例如300波特表示每秒鐘傳送300個bit。當我們提到時鐘週期時,我們就是指波特率例如如果協議需要4800波特率,那麼時鐘是4800hz。這意味著串列埠通訊在資料線上的取樣率為4800hz。通常**線的波特率為14400,28800和36600。波特率可以遠遠大於這些值,但是波特率和距離成反比。高波特率常常用於放置的很近的儀器間的通訊,典型的例子就是gpib裝置的通訊。

位。由於實際資料位取決於通訊協議的選取,術語「包」指任何通訊的情況。

率同時也越慢。

奇偶校驗 parity

奇偶校驗位:在串列埠通訊中一種簡單的檢錯方式。有四種檢錯方式:偶、奇、高和低。當然沒有校驗位也是可以的。對於偶和奇校驗的情況,串列埠會設定校驗位(資料位後面的一位),用乙個值確保傳輸的資料有偶個或者奇個邏輯高位。例如,如果資料是011,那麼對於偶校驗,校驗位為0,保證邏輯高的位數是偶數個。如果是奇校驗,校驗位位1,這樣就有3個邏輯高位。高位和低位不真正的檢查資料,簡單置位邏輯高或者邏輯低校驗。這樣使得接收裝置能夠知道乙個位的狀態,有機會判斷是否有雜訊干擾了通訊或者是否傳輸和接收資料是否不同步

msdn 講解

的講解握手控制協議 handshake

主要設定控制串列埠的方式,軟體控制,硬體控制,等等

msdn 講解

我也是半路出家,對協議的了解程度也是相當有限

以下有部分資料

xon/xoff 

關於rts和cts可以去simcom公司看看,是一些關於串列埠通訊的東西.

主要說說我的步驟

先設定模擬串列埠:

程式設定完之後在開啟vspm.exe,選擇剛才設定的串列埠,然後管理它,選擇"檢查此串列埠連線",在彈出的子視窗中輸入ip和埠,點重新連線之後,看看主視窗的"最後一操作"是否為成功,不成功那麼就重新設定一下.一般問題可能是設定的引數不對應.如果顯示顯示"客戶端已經建立連線",那麼串列埠設定就成功了.

模擬串列埠發訊息:

在串列埠設定成功之後,那麼我們就可以用c#程式讓模擬串列埠傳送訊息了,在c#控制台傳送一條訊息,其實就是我們模擬了串列埠設定在發訊息.

就能看到com發出來的訊息.這裡好象是vspm.exe工具有點問題,輸入的值看不到,也許是我的問題,大家可以研究下.

vspm.exe工具的"跟蹤功能"

因為我們的c#程式是得到乙個存在com物件,操作它.

所以在傳送資料區域顯示的就是我們模擬的傳送的資料.

而接受資料區域就是我們操作的這個模擬com物件所接受到的資料

使用QT串列埠類serialport筆記

4.在完成基本的qt配置後就能正常使用qt了,現在開始配置serialport相關 想使用serialport,除了引入serialport相關的類,還必須在pro檔案中,引入qt serialport pro檔案類似於乙個給qmake看的使用文件,把這個程式需要的庫檔案,包含目錄或者預處理的資訊都...

SerialPort的簡單應用

最近做了乙個數位相機包裝流水線控制的專案,在包裝作業的幾道工序中,其中有一條工序是重量檢查。檢查相機重量的工具是電子秤,可以精確到0.01克 nb 通過串列埠連線到電腦上。下面 的功能是,程式向電子秤傳送命令 q 電子秤向程式返回測重資料。private function openserialpor...

SerialPort 控制項的使用例項

以下是 serialport 控制項的使用例項,傳送端和接收端 除了埠號 例 com9 不同,其他都一樣 using system using system.collections.generic using system.componentmodel using system.data using...