基本概況
串口介紹
- 串口 :是一種可以將接受來自CPU的并行數(shù)據(jù)字符轉(zhuǎn)換為連續(xù)的串行數(shù)據(jù)流發(fā)送出去,同時可將接受的串行數(shù)據(jù)流轉(zhuǎn)換為并行的數(shù)據(jù)字符供給CPU的器件。一般完成這種功能的電路,我們稱為串行接口電路。
- 串口通信(Serial Communications) :串口按位(bit)發(fā)送和接收字節(jié)。盡管比按字節(jié)(byte)的并行通信慢,但是串口可以在使用一根線發(fā)送數(shù)據(jù)的同時用另一根線接收數(shù)據(jù)。串口通信最重要的參數(shù)是波特率、數(shù)據(jù)位、停止位和奇偶校驗。對于兩個進行通信的端口,這些參數(shù)必須匹配。
- 波特率: 這是一個衡量符號傳輸速率的參數(shù)。指的是信號被調(diào)制以后在單位時間內(nèi)的變化,即單位時間內(nèi)載波參數(shù)變化的次數(shù),如每秒鐘傳送240個字符,而每個字符格式包含10位(1個起始位,1個停止位,8個數(shù)據(jù)位),這時的波特率為240Bd,比特率為10位*240個/秒=2400bps。
- 數(shù)據(jù)位: 這是衡量通信中實際數(shù)據(jù)位的參數(shù)。當計算機發(fā)送一個信息包,實際的數(shù)據(jù)往往不會是8位的,標準的值是6、7和8位。標準的ASCII碼是0~127(7位),擴展的ASCII碼是0~255(8位)。如果數(shù)據(jù)使用簡單的文本(標準 ASCII碼),那么每個數(shù)據(jù)包使用7位數(shù)據(jù)。每個包是指一個字節(jié),包括開始/停止位,數(shù)據(jù)位和奇偶校驗位。
- 停止位: 用于表示單個包的最后幾位。典型的值為1,1.5和2位。由于數(shù)據(jù)是在傳輸線上定時的,并且每一個設備有其自己的時鐘,很可能在通信中兩臺設備間出現(xiàn)了小小的不同步。因此停止位不僅僅是表示傳輸?shù)慕Y束,并且提供計算機校正時鐘同步的機會。適用于停止位的位數(shù)越多,不同時鐘同步的容忍程度越大,但是數(shù)據(jù)傳輸率同時也越慢
- 奇偶校驗位: 在串口通信中一種簡單的檢錯方式。有四種檢錯方式:偶、奇、高和低。當然沒有校驗位也是可以的。
- 串口通信的接口標準: 標準有很多,有 RS-232C、RS-232、RS-422A、RS-485 等。常用的就是 RS-232 和 RS-485。串口通信使用的大多都是 DB9 接口,如下圖
編輯
1 載波檢測(DCD) 2 接受數(shù)據(jù)(RXD) 3 發(fā)出數(shù)據(jù)(TXD) 4 數(shù)據(jù)終端準備好(DTR) 5 信號地線(SG) 6 數(shù)據(jù)準備好(DSR) 7 請求發(fā)送(RTS) 8 清除發(fā)送(CTS) 9 振鈴指示(RI)
c#中的串口操作類
****System.IO.Port.SerialPort 是 .NET Framework提供的操作串行端口的類,里面提供了一些方法、屬性和和事件供開發(fā)者調(diào)用操作串口。
** 常用字段**
| 名稱 | 說明 |
|---|---|
| PortName | 獲取或設置通信端口 |
| BaudRate | 獲取或設置串行波特率 |
| DataBits | 獲取或設置每個字節(jié)的標準數(shù)據(jù)位長度 |
| Parity | 獲取或設置奇偶校驗檢查協(xié)議 |
| StopBits | 獲取或設置每個字節(jié)的標準停止位數(shù) |
示例
// 建立串口對象
private static SerialPort serialPort;
public void init()
{
serialPort = new SerialPort();
//串行波特率
serialPort.BaudRate = 115200;
//每個字節(jié)的標準數(shù)據(jù)位長度
serialPort.DataBits = 8;
// 設置每個字節(jié)的標準停止位數(shù)
serialPort.StopBits = StopBits.One;
// 讀、寫 超時時間 單位毫秒
serialPort.ReadTimeout = 500;
serialPort.WriteTimeout = 500;
// 串口名稱
serialPort.PortName = "COM1";
}
常用方法
| 名稱 | 說明 |
|---|---|
| Close | 關閉端口連接,將 IsOpen 屬性設置為false,并釋放內(nèi)部 Stream 對象 |
| GetPortNames | 獲取當前計算機的串行端口名稱數(shù)組 |
| Open | 打開一個新的串行端口連接 |
| Read | 從SerialPort輸入緩沖區(qū)中讀取 |
| ReadExisting | 讀取 SerialPort 對象的流和輸入緩沖區(qū)中所有立即可用的字節(jié) |
| Write | 將數(shù)據(jù)寫入串行端口輸出緩沖區(qū) |
示例
public void test1()
{
// 判斷串口是否打開
if (serialPort==null || serialPort.IsOpen)
{
return;
}
// 打開串口
serialPort.Open();
// 讀取串口中的內(nèi)容
serialPort.ReadExisting()
//如果串口處于打開狀態(tài),則關閉
if (serialPort.IsOpen)
{
// 關閉串口
serialPort.Close();
}
}
常用事件
| 名稱 | 說明 |
|---|---|
| DataReceived | 表示將處理SerialPort對象的數(shù)據(jù)接收事件的方法 |
示例
public void test2()
{
//設備監(jiān)聽回調(diào)
serialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);
}
// 回調(diào)方法
public void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
{
try
{
//解析內(nèi)容
SerialPort sp = (SerialPort)msg;
string content = sp.ReadExisting();
Console.WriteLine("WX GZH: 程序猿知秋,"+content);
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
}
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
接口電路
+關注
關注
8文章
471瀏覽量
58269 -
cpu
+關注
關注
68文章
11213瀏覽量
222789 -
器件
+關注
關注
4文章
351瀏覽量
28700
發(fā)布評論請先 登錄
相關推薦
熱點推薦
在STM32上如何去對接一款串口傳感器
背景說明:STM32上對接一款串口傳感器,該串口采用串口如下波特率:115200停止位:1校驗位:偶校驗(Even)硬件流控:無數(shù)據(jù)位:8bit筆者使用STM32F103
發(fā)表于 08-05 07:28
怎么實現(xiàn)阿里云IOT與單片機的對接?
基于MQTT通信協(xié)議 實現(xiàn)單片機與騰訊云IOT|阿里云IOT|中國移動ONENET的對接。在實際調(diào)試時選擇STM32F103C8T6與ESP826601S的開發(fā)板,對接過程是一個比較艱難的過程。編譯
發(fā)表于 11-22 06:55
LVGL的輸入設備API對接
LittleVGL (LVGL)干貨入門教程二之LVGL的輸入設備(indev)API對接前言:閱讀前,請確保你擁有以下條件:你已經(jīng)完成“顯示API”的移植。你已經(jīng)實現(xiàn)了一個屏幕的觸摸驅(qū)動 (如果你
發(fā)表于 01-18 10:12
m452rg6串口與8位mcu串口如何對接才能傳輸數(shù)據(jù)?
目前有一案子,利用m452rg6與8位芯片串口對接,m452串口串接470歐的電阻,用usb轉(zhuǎn)串口模塊與pc調(diào)試時是正常的,但與8位機串口
發(fā)表于 06-25 06:56
設備對接專題
課程說明 1課程介紹 1課程目標 1相關資料 1第1章 SDH接口的對接 21.1 業(yè)務的對接 21.1.1 業(yè)務對接 21.2 開銷與
發(fā)表于 08-03 10:37
?10次下載
傳輸設備PDH接口對接問題
設備對接是任何通信工程中非常重要的一個環(huán)節(jié),設備對接的好壞直接影響到通信質(zhì)量。而我們在設備對接中
發(fā)表于 07-26 09:34
?3204次閱讀
PLC與對接設備如何實現(xiàn)無線通信
PLC與對接設備要實現(xiàn)無線通信,如何選用匹配的無線通信模塊,取決于PLC及設備的通訊接口、通訊協(xié)議、通訊距離等。因此可分為兩類進行概述。
發(fā)表于 02-11 11:17
?7150次閱讀
什么是串口轉(zhuǎn)I2C?有什么特點?
什么是串口轉(zhuǎn)I2C?有什么特點?? 串口轉(zhuǎn)I2C是一種設備,用于將串行通信接口(通常稱為串口)轉(zhuǎn)
工業(yè)RTU串口網(wǎng)關有哪些使用用途和使用場景
工業(yè)RTU串口網(wǎng)關主要以串口形式實現(xiàn)對設備的鏈接和數(shù)據(jù)采集、傳輸,具有設備對接方便、設備
工業(yè)串口設備通訊神器:串口服務器CS64J
串口服務器作為連接傳統(tǒng)串口設備與網(wǎng)絡的橋梁,串口服務器實現(xiàn)了設備間的無縫對接和數(shù)據(jù)互通。這意味著

C#-串口設備對接

評論