資源描述:
《c sharp串口通信程序》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、創(chuàng)建C#串口通信程序需要注意什么呢?創(chuàng)建C#串口通信程序的步驟是什么?那么本文就向你詳細(xì)介紹創(chuàng)建C#串口通信程序集體的內(nèi)容。在.NET平臺(tái)下創(chuàng)建C#串口通信程序,.NET2.0提供了串口通信的功能,其命名空間是System.IO.Ports。這個(gè)新的框架不但可以訪問(wèn)計(jì)算機(jī)上的串口,還可以和串口設(shè)備進(jìn)行通信。我們將使用標(biāo)準(zhǔn)的RS232C在PC間通信。它工作在全雙工模式下,而且我們不打算使用任何的握手或流控制器,而是使用無(wú)modem連接。創(chuàng)建C#串口通信程序的具體實(shí)現(xiàn)是如何的呢?讓我們開始吧:創(chuàng)建C#串口通信程序之命名空間System.IO.Ports命名空間中最重用的是SerialPort
2、類。創(chuàng)建C#串口通信程序之創(chuàng)建SerialPort對(duì)象通過(guò)創(chuàng)建SerialPort對(duì)象,我們可以在程序中控制串口通信的全過(guò)程。我們將要用到的SerialPort類的方法:ReadLine():從輸入緩沖區(qū)讀一新行的值,如果沒(méi)有,會(huì)返回NULLWriteLine(string):寫入輸出緩沖Open():打開一個(gè)新的串口連接Close():關(guān)閉1.//create?a?Serial?Port?object?2.SerialPort?sp?=?new?SerialPort?();?默認(rèn)情況下,DataBits值是8,StopBits是1,通信端口是COM1。這些都可以在下面的屬性中重新設(shè)置:
3、BaudRate:串口的波特率StopBits:每個(gè)字節(jié)的停止位數(shù)量ReadTimeout:當(dāng)讀操作沒(méi)有完成時(shí)的停止時(shí)間。單位,毫秒還有不少其它公共屬性,自己查閱MSDN。創(chuàng)建C#串口通信程序之串口的硬件知識(shí)在數(shù)據(jù)傳輸?shù)臅r(shí)候,每個(gè)字節(jié)的數(shù)據(jù)通過(guò)單個(gè)的電纜線傳輸。包包括開始位,數(shù)據(jù),結(jié)束為。一旦開始位傳出,后面就會(huì)傳數(shù)據(jù),可能是5,6,7或8位,就看你的設(shè)定了。發(fā)送和接收必須設(shè)定同樣的波特率和數(shù)據(jù)位數(shù)。創(chuàng)建C#串口通信程序之無(wú)貓模式?jīng)]有Modem模式的電纜只是簡(jiǎn)單地交叉?zhèn)魉秃徒邮站€。同樣DTR&DSR,和RTS&CTS也需要交叉。這里,我們?nèi)龡l線?;ミB2和3(一段的2pin連接3pin),
4、連接兩端的5pin。創(chuàng)建C#串口通信程序示例程序如果想使用默認(rèn)屬性,按“SaveStatus”按鈕,如果想改變屬性按“Property”。設(shè)定好之后,可以通信了。主窗口的代碼1.#region?Using?directives?2.?3.using?System;?4.using?System.Collections.Generic;?5.using?System.ComponentModel;?6.using?System.Data;?7.using?System.Drawing;?8.using?System.Windows.Forms;?9.using?System.IO.Port
5、s;?10.?11.#endregion?12.?13.namespace?Serialexpample?14.{?15.partial?class?Form1?:?Form?16.{?17.//create?instance?of?property?page?18.//property?page?is?used?to?set?values?for?stop?bits?and?19.//baud?rate?20.?21.PropertyPage?pp?=?new?PropertyPage();?22.?23.//create?an?Serial?Port?object?1.SerialP
6、ort?sp?=?new?SerialPort();?2.?3.public?Form1()?4.{?5.InitializeComponent();?6.}?7.?8.private?void?propertyButton_Click(object?sender,?EventArgs?e)?9.{?10.//show?property?dialog?11.pp.ShowDialog();?12.?13.propertyButton.Hide();?14.}?15.?16.private?void?sendButton_Click(object?sender,?EventArgs?e)?
7、17.{?18.try?19.{?20.//write?line?to?serial?port?21.sp.WriteLine(textBox.Text);?22.//clear?the?text?box?23.textBox.Text?=?"";?24.}?25.catch?(System.Exception?ex)?26.{?27.baudRatelLabel.Text?=?ex.Message;?28.}?29.?30.}?3