C#中串口通信编程教程.docx

上传人:小飞机 文档编号:3153701 上传时间:2023-03-11 格式:DOCX 页数:8 大小:38.58KB
返回 下载 相关 举报
C#中串口通信编程教程.docx_第1页
第1页 / 共8页
C#中串口通信编程教程.docx_第2页
第2页 / 共8页
C#中串口通信编程教程.docx_第3页
第3页 / 共8页
C#中串口通信编程教程.docx_第4页
第4页 / 共8页
C#中串口通信编程教程.docx_第5页
第5页 / 共8页
亲,该文档总共8页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《C#中串口通信编程教程.docx》由会员分享,可在线阅读,更多相关《C#中串口通信编程教程.docx(8页珍藏版)》请在三一办公上搜索。

1、C#中串口通信编程教程C#中串口通信编程教程 本文将介绍如何在.NET平台下使用C#创建串口通信程序,.NET 2.0提供了串口通信的功能,其命名空间是System.IO.Ports。这个新的框架不但可以访问计算机上的串口,还可以和串口设备进行通信。我们将使用标准的RS 232 C 在PC间通信。它工作在全双工模式下,而且我们不打算使用任何的握手或流控制器,而是使用无modem连接。 命名空间 System.IO.Ports命名空间中最重用的是SerialPort 类。 创建SerialPort 对象 通过创建SerialPort 对象,我们可以在程序中控制串口通信的全过程。 我们将要用到的S

2、erialPort 类的方法: ReadLine:从输入缓冲区读一新行的值,如果没有,会返回NULL WriteLine(string):写入输出缓冲 Open:打开一个新的串口连接 Close:关闭 Code: /create a Serial Port object SerialPort sp = new SerialPort ; 默认情况下,DataBits 值是8,StopBits 是1,通信端口是COM1。这些都可以在下面的属性中重新设置 : BaudRate:串口的波特率 StopBits:每个字节的停止位数量 ReadTimeout:当读操作没有完成时的停止时间。单位,毫秒 还有

3、不少其它公共属性,自己查阅MSDN。 串口的硬件知识 在数据传输的时候,每个字节的数据通过单个的电缆线传输。包包括开始位,数据,结束为。一旦开始位传出,后面就会传数据,可能是5,6,7或8位,就看你的设定了。发送和接收必须设定同样的波特率和数据位数。 无猫模式 没有Modem模式的电缆只是简单地交叉传送和接收线。同样DTR & DSR, 和 RTS & CTS也需要交叉。 RS232针图 这里,我们三条线。互连2和3,连接两端的5pin。 示例程序 主程序 如果想使用默认属性,按“Save Status”按钮,如果想改变属性按“Property”。它会弹出下图: 设定好之后,可以通信了。 主窗

4、口的代码 Code: #region Using directives using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Windows.Forms; using System.IO.Ports; #endregion namespace Serialexpample partial class Form1 : Form /create instance of property pag

5、e /property page is used to set values for stop bits and /baud rate PropertyPage pp = new PropertyPage; /create an Serial Port object SerialPort sp = new SerialPort; public Form1 InitializeComponent; private void propertyButton_Click(object sender, EventArgs e) /show property dialog pp.ShowDialog; p

6、ropertyButton.Hide; private void sendButton_Click(object sender, EventArgs e) try /write line to serial port sp.WriteLine(textBox.Text); /clear the text box textBox.Text = ; catch (System.Exception ex) baudRatelLabel.Text = ex.Message; private void ReadButton_Click(object sender, EventArgs e) try /c

7、lear the text box textBox.Text = ; /read serial port and displayed the data in text box textBox.Text = sp.ReadLine; catch(System.Exception ex) baudRatelLabel.Text = ex.Message; private void Form1_Load(object sender, EventArgs e) private void Form1_FormClosing(object sender, FormClosingEventArgs e) M

8、essageBox.Show(Do u want to Close the App); sp.Close; private void startCommButton_Click(object sender, EventArgs e) startCommButton.Hide; sendButton.Show; readButton.Show; textBox.Show; /when we want to save the status(value) private void saveStatusButton_Click_1(object sender, EventArgs e) /displa

9、y values /if no property is set the default values if (pp.bRate = & pp.sBits = ) dataBitLabel.Text = BaudRate = + sp.BaudRate.ToString; readTimeOutLabel.Text = StopBits = + sp.StopBits.ToString; else dataBitLabel.Text = BaudRate = + pp.bRate; readTimeOutLabel.Text = StopBits = + pp.sBits; parityLabe

10、l.Text = DataBits = + sp.DataBits.ToString; stopBitLabel.Text = Parity = + sp.Parity.ToString; readTimeOutLabel.Text = ReadTimeout = + sp.ReadTimeout.ToString; if (propertyButton.Visible = true) propertyButton.Hide; saveStatusButton.Hide; startCommButton.Show; try /open serial port sp.Open; /set rea

11、d time out to 500 ms sp.ReadTimeout = 500; catch (System.Exception ex) baudRatelLabel.Text = ex.Message; 属性设置对话框代码: Code: #region Using directives using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Win

12、dows.Forms; #endregion namespace Serialexpample partial class PropertyPage : Form /variables for storing values of baud rate and stop bits private string baudR=; private string stopB=; /property for setting and getting baud rate and stop bits public string bRate get return baudR; set baudR = value;

13、public string sBits get return stopB; set stopB = value; public PropertyPage InitializeComponent; private void cancelButton_Click(object sender, EventArgs e) this.bRate = ; this.sBits = ; /close form this.Close; private void okButton_Click_1(object sender, EventArgs e) /here we set the value for stop bits and baud rate. this.bRate = BaudRateComboBox.Text; this.sBits = stopBitComboBox.Text; / this.Close;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号