【翻译】C#中串口通信编程 [翻译] Tapan Dantre.著Serial Communication using C# and Whidbey [简介] 本文将介绍如何在.NET 平台下使用C#创建串口通信程序,.NET 2.0 提供了串口通信的功能,其命名空间是System.IO.Ports。这个新的框架不但可以访问计算机上的串口,还可以和串口设备进行通信。我们将使用标准的RS 232 C 在PC 间通信。它工作在全双工模式下,而且我们不打算使用任何的握手或流控制器,而是使用无 modem 连接。 命名空间 System.IO.Ports 命名空间中最重用的是SerialPort 类。 创建SerialPort 对象 通过创建SerialPort 对象,我们可以在程序中控制串口通信的全过程。 我们将要用到的SerialPort 类的方法: ReadLine():从输入缓冲区读一新行的值,如果没有,会返回 NULL WriteLine(string):写入输出缓冲 Open():打开一个新的串口连接 Close():关闭 Code: //create a Serial Port object SerialPort sp = new SerialPort (); 默认情况下,DataBits 值是8,StopBits 是1,通信端口是COM1。这些都可以在下面的属性中重新设置 : BaudRate:串口的波特率 StopBits:每个字节的停止位数量 ReadTimeout:当读操作没有完成时的停止时间。单位,毫秒 还有不少其它公共属性,自己查阅 MSDN。 串口的硬件知识 在数据传输的时候,每个字节的数据通过单个的电缆线传输。包包括开始位,数据,结束为。一旦开始位传出,后面就会传数据,可能是 5,6,7 或 8 位,就看你的设定了。发送和接收必须设定同样的波特率和数据位数。 无猫模式 没有 Modem 模式的电缆只是简单地交叉传送和接收线。同样 DTR & DSR, 和 RTS & CTS 也需要交叉。 RS232 针图 这里,我们三条线。互连 2 和 3(一段的2pin 连接 3pin),连接两端的5pin。 [示例程序] 主程序 如果想使用默认属性,按“Save Status”按钮,如果想改变属性按“Property”。它会弹出下图: 设定好之后,可以通信了。 主窗口的代码 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 page //property...