西門子PLC: | 西門子伺服電機 |
西門子觸摸屏: | 西門子電纜 |
西門子變頻器: | 西門子模塊 |
單價: | 面議 |
發(fā)貨期限: | 自買家付款之日起 天內(nèi)發(fā)貨 |
所在地: | 廣東 惠州 |
有效期至: | 長期有效 |
發(fā)布時間: | 2024-07-23 10:16 |
最后更新: | 2024-07-23 10:16 |
瀏覽次數(shù): | 140 |
采購咨詢: |
請賣家聯(lián)系我
|
先來看看運行結(jié)果
最近在研究串口通訊,,其中有幾個比較重要的概念,,RS-232這種適配于上位機和PC端進行連接,RS-232只限于PC串口和設備間點對點的通信,。它很簡單的就可以進行連接,,由于串口通訊是異步的,,也就是說你可以同時向兩端或者更多進行數(shù)據(jù)發(fā)送,它們之間的傳輸數(shù)據(jù)類型是byte,,串口通信最重要的參數(shù)是波特率,、數(shù)據(jù)位、停止位和奇偶校驗。對于兩個進行通信的端口,,這些參數(shù)必須匹配,。接下來先解釋一下幾個關(guān)于串口通訊的術(shù)語:
第一個波特率,這個東西在不同領(lǐng)域都有涉及,,在串口通訊中兩個串口之間通訊之間的信號單元叫做碼元,每分鐘傳遞的信號(碼元)也就是波特率,;
第二個數(shù)據(jù)位,、停止位:這個聽名字就知道是啥意思了,在傳遞數(shù)據(jù)過程之前,,機器會識別你的數(shù)據(jù)是個啥,,然后根據(jù)這個類型,去調(diào)整不同的起始位,、停止位,。
第三個奇偶校驗:就是想知道你這個數(shù)據(jù)有多大,多長,,因為傳輸都是1 和 0 ,,具體校驗方法如下:
奇校驗:就是讓原有數(shù)據(jù)序列中(包括你要加上的一位)1的個數(shù)為奇數(shù) ---- 1000110(0)你必須添0這樣原來有3個1已經(jīng)是奇數(shù)了所以你添上0之后1的個數(shù)還是奇數(shù)個。
偶校驗:就是讓原有數(shù)據(jù)序列中(包括你要加上的一位)1的個數(shù)為偶數(shù) ---- 1000110(1)你就必須加1了這樣原來有3個1要想1的個數(shù)為偶數(shù)就只能添1了,。
如果想要在C#中玩轉(zhuǎn)串口通訊或者模擬串口,,你必須先搞個硬件,當然我們是在模擬,,那你就弄個模擬的工具唄,,
安裝好了之后,桌面會有圖標,,然后打開,,添加一個串口,具體請看下圖:
下面我們就開始代碼的實現(xiàn)了,,創(chuàng)建一個.NET Fwk的 Winform 項目,,然后開始我們的代碼:
SerialPort sp1 = new SerialPort();
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
string[] strCom = SerialPort.GetPortNames();
if (strCom == null)
{
MessageBox.Show("本機沒有串口!", "Error");
return;
}
foreach (string com in System.IO.Ports.SerialPort.GetPortNames())
{
cbCom.Items.Add(com);
}
cbCom.SelectedIndex = 0;
sp1.BaudRate = 9600;
Control.CheckForIllegalCrossThreadCalls = false;
sp1.DataReceived += Sp1_DataReceived;
sp1.DtrEnable = true;
sp1.RtsEnable = true;
sp1.ReadTimeout = 1000;
sp1.Close();
}