c#中串口通信编程

c#中串口通信编程

ID:26036290

大小:122.50 KB

页数:9页

时间:2018-11-24

c#中串口通信编程_第1页
c#中串口通信编程_第2页
c#中串口通信编程_第3页
c#中串口通信编程_第4页
c#中串口通信编程_第5页
资源描述:

《c#中串口通信编程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、【翻译】C#中串口通信编程[翻译]TapanDantre.著SerialCommunicationusingC#andWhidbey[简介]本文将介绍如何在.NET平台下使用C#创建串口通信程序,.NET2.0提供了串口通信的功能,其命名空间是System.IO.Ports。这个新的框架不但可以访问计算机上的串口,还可以和串口设备进行通信。我们将使用标准的RS232C在PC间通信。它工作在全双工模式下,而且我们不打算使用任何的握手或流控制器,而是使用无modem连接。命名空间System.IO.Ports命名空间中最重用的是SerialPort

2、类。创建SerialPort对象通过创建SerialPort对象,我们可以在程序中控制串口通信的全过程。我们将要用到的SerialPort类的方法:ReadLine():从输入缓冲区读一新行的值,如果没有,会返回NULLWriteLine(string):写入输出缓冲Open():打开一个新的串口连接Close():关闭Code://createaSerialPortobjectSerialPortsp=newSerialPort();默认情况下,DataBits值是8,StopBits是1,通信端口是COM1。这些都可以在下面的属性中重新设置

3、:BaudRate:串口的波特率StopBits:每个字节的停止位数量ReadTimeout:当读操作没有完成时的停止时间。单位,毫秒还有不少其它公共属性,自己查阅MSDN。串口的硬件知识在数据传输的时候,每个字节的数据通过单个的电缆线传输。包包括开始位,数据,结束为。一旦开始位传出,后面就会传数据,可能是5,6,7或8位,就看你的设定了。发送和接收必须设定同样的波特率和数据位数。无猫模式没有Modem模式的电缆只是简单地交叉传送和接收线。同样DTR&DSR,和RTS&CTS也需要交叉。RS232针图这里,我们三条线。互连2和3(一段的2pin

4、连接3pin),连接两端的5pin。[示例程序]主程序如果想使用默认属性,按“SaveStatus”按钮,如果想改变属性按“Property”。它会弹出下图:设定好之后,可以通信了。主窗口的代码Code:#regionUsingdirectivesusingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Windows.Forms;usingSystem.IO.Po

5、rts;#endregionnamespaceSerialexpample{partialclassForm1:Form{//createinstanceofpropertypage//propertypageisusedtosetvaluesforstopbitsand//baudratePropertyPagepp=newPropertyPage();//createanSerialPortobjectSerialPortsp=newSerialPort();publicForm1(){InitializeComponent();}priv

6、atevoidpropertyButton_Click(objectsender,EventArgse){//showpropertydialogpp.ShowDialog();propertyButton.Hide();}privatevoidsendButton_Click(objectsender,EventArgse){try{//writelinetoserialportsp.WriteLine(textBox.Text);//clearthetextboxtextBox.Text="";}catch(System.Exception

7、ex){baudRatelLabel.Text=ex.Message;}}privatevoidReadButton_Click(objectsender,EventArgse){try{//clearthetextboxtextBox.Text="";//readserialportanddisplayedthedataintextboxtextBox.Text=sp.ReadLine();}catch(System.Exceptionex){baudRatelLabel.Text=ex.Message;}}privatevoidForm1_

8、Load(objectsender,EventArgse){}privatevoidForm1_FormClosing(objectsender,Fo

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。