转:C#串口编程
本文用來簡單介紹一下C#串口編程的知識,主要以實例為內容。
凡是串口設備和計算機交互的時候都用到串口,在C#中我們如何來操作串口呢?
大話串口工作原理
實際串口是用來和外部設備進行交換數據的,我抽象出下面一個圖形,來簡單解釋一下串口的原理。
上圖表示一個COM口,可以往外傳輸數據流,也可以往里傳輸數據流,我們如果想獲得傳入的數據流只需要監聽往計算機的數據流即可。
虛擬串口軟件
當我們沒有設備時我們可以用虛擬串口軟件來模擬串口操作。下面我來介紹一款軟件?VSPM 虛擬串口軟件。大家可以去天空軟件站下載,地址請點擊我。
下載下來安裝成功后如下圖所示:
然后你就點擊添加端口,我上圖中的COM2和COM3就是VSDM添加的,這個時候你把COM2和Com3看做是一個真實的串口,然后用兩個軟件連接,就相當于一個串口了,我用一個串口測試器和我們自己編寫的軟件進行測試:
如下圖所示,我們的串口測試器已經連接到COM3上了,
監聽串口程序
直接上代碼,在控制臺程序中添加如下源碼就可以直接運行了:
using System; using System.IO.Ports; using System.Text; namespace PortDataReceived {class PortDataReceived{public static void Main(){SerialPort mySerialPort = new SerialPort("COM2");mySerialPort.BaudRate = 9600;mySerialPort.Parity = Parity.None;mySerialPort.StopBits = StopBits.One;mySerialPort.DataBits = 8;mySerialPort.Handshake = Handshake.None;mySerialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler); mySerialPort.Open(); Console.WriteLine("Press any key to continue..."); Console.WriteLine(); Console.ReadKey(); mySerialPort.Close();}private static void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e){SerialPort sp = (SerialPort)sender; string indata = sp.ReadExisting(); Console.WriteLine("Data Received:"); Console.Write(StrToHex(indata));}public static string StrToHex(string mStr) //返回處理后的十六進制字符串 {return BitConverter.ToString(ASCIIEncoding.Default.GetBytes(mStr)).Replace("-", " ");}} }運行結果如下圖:
數據完全正確,發出的數據和接受的數據都一樣,而且此時VSDM的界面有簡單變化:
總結:本文寫了一個用虛擬串口軟件編寫的C#串口編程實例。希望對大家有幫助。
除非注明,木杉博客文章均為原創并采用BY-NC-SA協議進行授權原創文章,轉載請注明: 轉載自木杉博客
轉載于:https://www.cnblogs.com/lusunqing/p/3449594.html
總結
- 上一篇: oracle数据库常用的函数总结
- 下一篇: 归并排序算法(C#实现)