欢迎来到天天文库
浏览记录
ID:37239333
大小:16.60 KB
页数:7页
时间:2019-05-20
《C#中串口通信编程教程》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、C#中串口通信编程教程本文将介绍如何在.NET平台下使用C#创建串口通信程序,.NET2.0提供了串口通信的功能,其命名空间是System.IO.Ports。这个新的框架不但可以访问计算机上的串口,还可以和串口设备进行通信。我们将使用标准的RS232C在PC间通信。它工作在全双工模式下,而且我们不打算使用任何的握手或流控制器,而是使用无modem连接。命名空间System.IO.Ports命名空间中最重用的是SerialPort类。创建SerialPort对象通过创建SerialPort对象,我们可以在程序中控制
2、串口通信的全过程。我们将要用到的SerialPort类的方法:ReadLine():从输入缓冲区读一新行的值,如果没有,会返回NULLWriteLine(string):写入输出缓冲Open():打开一个新的串口连接Close():关闭Code://createaSerialPortobjectSerialPortsp=newSerialPort();默认情况下,DataBits值是8,StopBits是1,通信端口是COM1。这些都可以在下面的属性中重新设置:BaudRate:串口的波特率StopBits:每个
3、字节的停止位数量ReadTimeout:当读操作没有完成时的停止时间。单位,毫秒还有不少其它公共属性,自己查阅MSDN。串口的硬件知识在数据传输的时候,每个字节的数据通过单个的电缆线传输。包包括开始位,数据,结束为。一旦开始位传出,后面就会传数据,可能是5,6,7或8位,就看你的设定了。发送和接收必须设定同样的波特率和数据位数。无猫模式没有Modem模式的电缆只是简单地交叉传送和接收线。同样DTR&DSR,和RTS&CTS也需要交叉。RS232针图这里,我们三条线。互连2和3(一段的2pin连接3pin),连接两
4、端的5pin。[示例程序]主程序如果想使用默认属性,按“SaveStatus”按钮,如果想改变属性按“Property”。它会弹出下图:设定好之后,可以通信了。主窗口的代码Code:#regionUsingdirectivesusingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Windows.Forms;usingSystem.
5、IO.Ports;#endregionnamespaceSerialexpample{partialclassForm1:Form{//createinstanceofpropertypage//propertypageisusedtosetvaluesforstopbitsand//baudratePropertyPagepp=newPropertyPage();//createanSerialPortobjectSerialPortsp=newSerialPort();publicForm1(){Initia
6、lizeComponent();}privatevoidpropertyButton_Click(objectsender,EventArgse){//showpropertydialogpp.ShowDialog();propertyButton.Hide();}privatevoidsendButton_Click(objectsender,EventArgse){try{//writelinetoserialportsp.WriteLine(textBox.Text);//clearthetextboxte
7、xtBox.Text="";}catch(System.Exceptionex){baudRatelLabel.Text=ex.Message;}}privatevoidReadButton_Click(objectsender,EventArgse){try{//clearthetextboxtextBox.Text="";//readserialportanddisplayedthedataintextboxtextBox.Text=sp.ReadLine();}catch(System.Exceptione
8、x){baudRatelLabel.Text=ex.Message;}}privatevoidForm1_Load(objectsender,EventArgse){}privatevoidForm1_FormClosing(objectsender,FormClosingEventArgse){MessageBox.Show("DouwanttoClosetheApp"
此文档下载收益归作者所有