
serialport
serial port,即串列连线埠,现在大多数硬体设备均採用串口技术与计算机相连,因此串口的应用程式开发越来越普遍。例如,在计算机没有安装网卡的情况下,将本机上的一些信息数据 传输到另一台计算机上,那幺利用串口通信就可以实现。运行本程式,在“传送数据”文本框中输入要传送的数据,单击【传送】按钮,将传送的数据传送到所选择 的连线埠号中;单击【接收】按钮,传递的数据被接收到“接收数据”文本框中。
基本介绍
- 中文名:串列连线埠
- 外文名:serialport
- 实现:串口数据通信等
- 现状:串口的应用程式开发越来越普遍
技术要点
在.NET Framework 2.0中提供了SerialPort类,该类主要实现串口数据通信等。下面主要介绍该类的主要属性和方法。
属性部分
公共属性
名称 | 说明 |
BaseStream | 获取 SerialPort 对象的基础 Stream 对象。 |
BaudRate | 获取或设定串列波特率。 |
BreakState | 获取或设定中断信号状态。 |
BytesToRead | 获取接收缓冲区中数据的位元组数。 |
BytesToWrite | 获取传送缓冲区中数据的位元组数。 |
CDHolding | 获取连线埠的载波检测行的状态。 |
Container | 获取 IContainer,它包含 Component。(从 Component 继承。) |
CtsHolding | 获取“可以传送”行的状态。 |
DataBits | 获取或设定每个位元组的标準数据位长度。 |
DiscardNull | 获取或设定一个值,该值指示 Null 位元组在连线埠和接收缓冲区之间传输时是否被忽略。 |
DsrHolding | 获取数据设定就绪 (DSR) 信号的状态。 |
DtrEnable | 获取或设定一个值,该值在串列通信过程中启用数据终端就绪 (DTR) 信号。 |
Encoding | 获取或设定传输前后文本转换的位元组编码。 |
Handshake | 获取或设定串列连线埠数据传输的握手协定。 |
IsOpen | 获取一个值,该值指示 SerialPort 对象的打开或关闭状态。 |
NewLine | 获取或设定用于解释 ReadLine 和 WriteLine 方法调用结束的值。 |
Parity | 获取或设定奇偶校验检查协定。 |
ParityReplace | 获取或设定一个位元组,该位元组在发生奇偶校验错误时替换数据流中的无效位元组。 |
PortName | 获取或设定通信连线埠,包括但不限于所有可用的 COM 连线埠。 |
ReadBufferSize | 获取或设定 SerialPort 输入缓冲区的大小。 |
ReadTimeout | 获取或设定读取操作未完成时发生逾时之前的毫秒数。 |
ReceivedBytesThreshold | 获取或设定 DataReceived 事件发生前内部输入缓冲区中的位元组数。 |
RtsEnable | 获取或设定一个值,该值指示在串列通信中是否启用请求传送 (RTS) 信号。 |
Site | 获取或设定 Component 的 ISite。(从 Component 继承。) |
StopBits | 获取或设定每个位元组的标準停止位数。 |
WriteBufferSize | 获取或设定串列连线埠输出缓冲区的大小。 |
WriteTimeout | 获取或设定写入操作未完成时发生逾时之前的毫秒数。 |
保护属性
名称 | 说明 |
CanRaiseEvents | 获取一个指示组件是否可以引发事件的值。(从 Component 继承。) |
DesignMode | 获取一个值,用以指示 Component 当前是否处于设计模式。(从 Component 继承。) |
Events | 获取附加到此 Component 的事件处理程式的列表。(从 Component 继承。) |
方法部分
公共方法
名称 | 说明 |
Close | 关闭连线埠连线,将 IsOpen 属性设定为 false,并释放内部 Stream 对象。 |
CreateObjRef | 创建一个对象,该对象包含生成用于与远程对象进行通信的代理所需的全部相关信息。 (从 MarshalByRefObject 继承。) |
DiscardInBuffer | 丢弃来自串列驱动程式的接收缓冲区的数据。 |
DiscardOutBuffer | 丢弃来自串列驱动程式的传输缓冲区的数据。 |
Dispose | 已重载。 释放 SerialPort 对象使用的非託管资源。 |
Equals | 已重载。 确定两个 Object 实例是否相等。 (从 Object 继承。) |
GetHashCode | 用作特定类型的哈希函式。GetHashCode 适合在哈希算法和数据结构(如哈希表)中使用。 (从 Object 继承。) |
GetLifetimeService | 检索控制此实例的生存期策略的当前生存期服务对象。 (从 MarshalByRefObject 继承。) |
GetPortNames | 获取当前计算机的串列连线埠名称数组。 |
GetType | 获取当前实例的 Type。 (从 Object 继承。) |
InitializeLifetimeService | 获取控制此实例的生存期策略的生存期服务对象。 (从 MarshalByRefObject 继承。) |
Open | 打开一个新的串列连线埠连线。 |
Read | 已重载。 从 SerialPort 输入缓冲区中读取。 |
ReadByte | 从 SerialPort 输入缓冲区中同步读取一个位元组。 |
ReadChar | 从 SerialPort 输入缓冲区中同步读取一个字元。 |
ReadExisting | 在编码的基础上,读取 SerialPort 对象的流和输入缓冲区中所有立即可用的位元组。 |
ReadLine | 一直读取到输入缓冲区中的 NewLine 值。 |
ReadTo | 一直读取到输入缓冲区中的指定 value 的字元串。 |
ReferenceEquals | 确定指定的 Object 实例是否是相同的实例。 (从 Object 继承。) |
ToString | 返回包含 Component 的名称的 String(如果有)。不应重写此方法。 (从 Component 继承。) |
Write | 已重载。 将数据写入串列连线埠输出缓冲区。 |
WriteLine | 将指定的字元串和 NewLine 值写入输出缓冲区。 |
保护方法
名称 | 说明 |
Dispose | 已重载。 已重写。 释放 SerialPort 对象使用的非託管资源。 |
Finalize | 在通过垃圾回收将 Component 回收之前,释放非託管资源并执行其他清理操作。 (从 Component 继承。) |
GetService | 返回一个对象,该对象表示由 Component 或它的 Container 提供的服务。 (从 Component 继承。) |
MemberwiseClone | 已重载。 (从 MarshalByRefObject 继承。) |
公共事件
名称 | 说明 |
DataReceived | 表示将处理 SerialPort 对象的数据接收事件的方法。 |
Disposed | 添加事件处理程式以侦听组件上的 Disposed 事件。(从 Component 继承。) |
ErrorReceived | 表示处理 SerialPort 对象的错误事件的方法。 |
PinChanged | 表示将处理 SerialPort 对象的串列管脚更改事件的方法。 |
实现过程
(1)新建一个项目,命名为Ex13_01,默认窗体为Form1。
(2)在Form1窗体中,主要添加两个Button控制项,分别用于执行传送数据和接受数据,添加两个TextBox控制项,用于输入传送数据和显示接收数据。
(3)主要程式代码。
private void button1_Click(object sender, EventArgs e)
{
serialPort1.PortName = "COM1";
serialPort1.BaudRate = 9600;
serialPort1.Open();
byte[] data = Encoding.Unicode.GetBytes(textBox1.Text);
string str = Convert.ToBase64String(data);
serialPort1.WriteLine(str);
MessageBox.Show("数据传送成功!","系统提示");
}
private void button2_Click(object sender, EventArgs e)
{
byte[] data = Convert.FromBase64String(serialPort1.ReadLine());
textBox2.Text = Encoding.Unicode.GetString(data);
serialPort1.Close();
MessageBox.Show("数据接收成功!","系统提示");
}
相关技术
现在微软推出了最新版本的 Visual Studio 2008 开发工具,可以不再采 用第三方控制项的方法来设计串口通讯程式。NET Framework 2.0 类库包含了 SerialPort 类,方便地实现了所需要串口通讯的多种功能, 可以实现MSComm 编程方法快速转换到以 SerialPort 类为核心的串口通讯,关于设计和方法,可以参考下面的扩展阅读。
转载请注明出处海之美文 » serialport