新闻资讯
看你所看,想你所想

serialport

serialport

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

相关推荐

    声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:ailianmeng11@163.com