C# 串口編程,掃碼槍使用


 

一、串口通信簡介

串行接口(串口)是一種可以將接受來自CPU的並行數據字符轉換為連續的串行數據流發送出去,同時可將接受的串行數據流轉換為並行的數據字符供給CPU的器件。一般完成這種功能的電路,我們稱為串行接口電路。

串口通信(Serial Communications)的概念非常簡單,串口按位(bit)發送和接收字節。盡管比按字節(byte)的並行通信慢,但是串口可以在使用一根線發送數據的同時用另一根線接收數據。串口通信最重要的參數是波特率、數據位、停止位和奇偶校驗。對於兩個進行通信的端口,這些參數必須匹配。

  1. 波特率:這是一個衡量符號傳輸速率的參數。指的是信號被調制以后在單位時間內的變化,即單位時間內載波參數變化的次數,如每秒鍾傳送960個字符,而每個字符格式包含10位(1個起始位,1個停止位,8個數據位),這時的波特率為960Bd,比特率為10位*960個/秒=9600bps。

  2. 數據位:這是衡量通信中實際數據位的參數。當計算機發送一個信息包,實際的數據往往不會是8位的,標准的值是6、7和8位。標准的ASCII碼是0~127(7位),擴展的ASCII碼是0~255(8位)。

  3. 停止位:用於表示單個包的最后幾位。典型的值為1,1.5和2位。由於數據是在傳輸線上定時的,並且每一個設備有其自己的時鍾,很可能在通信中兩台設備間出現了小小的不同步。因此停止位不僅僅是表示傳輸的結束,並且提供計算機校正時鍾同步的機會。

  4. 校驗位:在串口通信中一種簡單的檢錯方式。有四種檢錯方式:偶、奇、高和低。當然沒有校驗位也是可以的。

二、C#串口編程類

從.NET Framework 2.0開始,C#提供了SerialPort類用於實現串口控制。命名空間:System.IO.Ports。其中詳細成員介紹參看MSDN文檔。下面介紹其常用的字段、方法和事件。

  1. 常用字段:

名稱 說明
PortName 獲取或設置通信端口
BaudRate 獲取或設置串行波特率
DataBits 獲取或設置每個字節的標准數據位長度
Parity 獲取或設置奇偶校驗檢查協議
StopBits 獲取或設置每個字節的標准停止位數

 

 

 

 

 

 

2. 常用方法:

名稱 說明
Close 關閉端口連接,將 IsOpen 屬性設置為 false,並釋放內部 Stream 對象
GetPortNames 獲取當前計算機的串行端口名稱數組
Open 打開一個新的串行端口連接
Read 從 SerialPort 輸入緩沖區中讀取
Write  將數據寫入串行端口輸出緩沖區

 

 

 

 

 

 

3. 常用事件:

名稱 說明
DataReceived 表示將處理 SerialPort 對象的數據接收事件的方法

 

 

 

三、實現方法,本地計算機使用虛擬串口軟件

1、下載virtual serial port driver 虛擬軟件,添加一對串口

添加以后設備管理就會生成串口設備

 

2、下載串口調試助手2.2,他會自動讀取剛才生成的串口

 

 

我這里使用com2串口發送數據,com1接收數據

 

3、c#代碼,設置窗口名稱,這個是固定的

serialPort1.PortName = comName;
serialPort1.Open();

 

4、獲取com2發送過來的數據,com1接收發送過來的數據

 

 

 

 以上就實現了串口通信

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM