SerialPort 类

定义

表示串行端口资源。Represents a serial port resource.

public ref class SerialPort : System::ComponentModel::Component
public class SerialPort : System.ComponentModel.Component
type SerialPort = class
    inherit Component
Public Class SerialPort
Inherits Component
继承

示例

下面的代码示例演示如何使用SerialPort类,以允许两个用户从通过空调制解调器电缆连接的两台独立计算机进行聊天。The following code example demonstrates the use of the SerialPort class to allow two users to chat from two separate computers connected by a null modem cable. 在此示例中,系统会提示用户提供端口设置和在聊天前输入用户名。In this example, the users are prompted for the port settings and a username before chatting. 两台计算机都必须执行该程序才能实现此示例的完整功能。Both computers must be executing the program to achieve full functionality of this example.

#using <System.dll>

using namespace System;
using namespace System::IO::Ports;
using namespace System::Threading;

public ref class PortChat
{
private:
    static bool _continue;
    static SerialPort^ _serialPort;

public:
    static void Main()
    {
        String^ name;
        String^ message;
        StringComparer^ stringComparer = StringComparer::OrdinalIgnoreCase;
        Thread^ readThread = gcnew Thread(gcnew ThreadStart(PortChat::Read));

        // Create a new SerialPort object with default settings.
        _serialPort = gcnew SerialPort();

        // Allow the user to set the appropriate properties.
        _serialPort->PortName = SetPortName(_serialPort->PortName);
        _serialPort->BaudRate = SetPortBaudRate(_serialPort->BaudRate);
        _serialPort->Parity = SetPortParity(_serialPort->Parity);
        _serialPort->DataBits = SetPortDataBits(_serialPort->DataBits);
        _serialPort->StopBits = SetPortStopBits(_serialPort->StopBits);
        _serialPort->Handshake = SetPortHandshake(_serialPort->Handshake);

        // Set the read/write timeouts
        _serialPort->ReadTimeout = 500;
        _serialPort->WriteTimeout = 500;

        _serialPort->Open();
        _continue = true;
        readThread->Start();

        Console::Write("Name: ");
        name = Console::ReadLine();

        Console::WriteLine("Type QUIT to exit");

        while (_continue)
        {
            message = Console::ReadLine();

            if (stringComparer->Equals("quit", message))
            {
                _continue = false;
            }
            else
            {
                _serialPort->WriteLine(
                    String::Format("<{0}>: {1}", name, message) );
            }
        }

        readThread->Join();
        _serialPort->Close();
    }

    static void Read()
    {
        while (_continue)
        {
            try
            {
                String^ message = _serialPort->ReadLine();
                Console::WriteLine(message);
            }
            catch (TimeoutException ^) { }
        }
    }

    static String^ SetPortName(String^ defaultPortName)
    {
        String^ portName;

        Console::WriteLine("Available Ports:");
        for each (String^ s in SerialPort::GetPortNames())
        {
            Console::WriteLine("   {0}", s);
        }

        Console::Write("Enter COM port value (Default: {0}): ", defaultPortName);
        portName = Console::ReadLine();

        if (portName == "")
        {
            portName = defaultPortName;
        }
        return portName;
    }

    static Int32 SetPortBaudRate(Int32 defaultPortBaudRate)
    {
        String^ baudRate;

        Console::Write("Baud Rate(default:{0}): ", defaultPortBaudRate);
        baudRate = Console::ReadLine();

        if (baudRate == "")
        {
            baudRate = defaultPortBaudRate.ToString();
        }

        return Int32::Parse(baudRate);
    }

    static Parity SetPortParity(Parity defaultPortParity)
    {
        String^ parity;

        Console::WriteLine("Available Parity options:");
        for each (String^ s in Enum::GetNames(Parity::typeid))
        {
            Console::WriteLine("   {0}", s);
        }
        
        Console::Write("Enter Parity value (Default: {0}):", defaultPortParity.ToString());
        parity = Console::ReadLine();

        if (parity == "")
        {
            parity = defaultPortParity.ToString();
        }

        return (Parity)Enum::Parse(Parity::typeid, parity);
    }

    static Int32 SetPortDataBits(Int32 defaultPortDataBits)
    {
        String^ dataBits;

        Console::Write("Enter DataBits value (Default: {0}): ", defaultPortDataBits);
        dataBits = Console::ReadLine();

        if (dataBits == "")
        {
            dataBits = defaultPortDataBits.ToString();
        }

        return Int32::Parse(dataBits);
    }

    static StopBits SetPortStopBits(StopBits defaultPortStopBits)
    {
        String^ stopBits;

        Console::WriteLine("Available Stop Bits options:");
        for each (String^ s in Enum::GetNames(StopBits::typeid))
        {
            Console::WriteLine("   {0}", s);
        }

        Console::Write("Enter StopBits value (None is not supported and \n" +
            "raises an ArgumentOutOfRangeException. \n (Default: {0}):", defaultPortStopBits.ToString());
        stopBits = Console::ReadLine();

        if (stopBits == "")
        {
            stopBits = defaultPortStopBits.ToString();
        }

        return (StopBits)Enum::Parse(StopBits::typeid, stopBits);
    }

    static Handshake SetPortHandshake(Handshake defaultPortHandshake)
    {
        String^ handshake;

        Console::WriteLine("Available Handshake options:");
        for each (String^ s in Enum::GetNames(Handshake::typeid))
        {
            Console::WriteLine("   {0}", s);
        }

        Console::Write("Enter Handshake value (Default: {0}):", defaultPortHandshake.ToString());
        handshake = Console::ReadLine();

        if (handshake == "")
        {
            handshake = defaultPortHandshake.ToString();
        }

        return (Handshake)Enum::Parse(Handshake::typeid, handshake);
    }
};

int main()
{
    PortChat::Main();
}
// Use this code inside a project created with the Visual C# > Windows Desktop > Console Application template.
// Replace the code in Program.cs with this code.

using System;
using System.IO.Ports;
using System.Threading;

public class PortChat
{
    static bool _continue;
    static SerialPort _serialPort;

    public static void Main()
    {
        string name;
        string message;
        StringComparer stringComparer = StringComparer.OrdinalIgnoreCase;
        Thread readThread = new Thread(Read);

        // Create a new SerialPort object with default settings.
        _serialPort = new SerialPort();

        // Allow the user to set the appropriate properties.
        _serialPort.PortName = SetPortName(_serialPort.PortName);
        _serialPort.BaudRate = SetPortBaudRate(_serialPort.BaudRate);
        _serialPort.Parity = SetPortParity(_serialPort.Parity);
        _serialPort.DataBits = SetPortDataBits(_serialPort.DataBits);
        _serialPort.StopBits = SetPortStopBits(_serialPort.StopBits);
        _serialPort.Handshake = SetPortHandshake(_serialPort.Handshake);

        // Set the read/write timeouts
        _serialPort.ReadTimeout = 500;
        _serialPort.WriteTimeout = 500;

        _serialPort.Open();
        _continue = true;
        readThread.Start();

        Console.Write("Name: ");
        name = Console.ReadLine();

        Console.WriteLine("Type QUIT to exit");

        while (_continue)
        {
            message = Console.ReadLine();

            if (stringComparer.Equals("quit", message))
            {
                _continue = false;
            }
            else
            {
                _serialPort.WriteLine(
                    String.Format("<{0}>: {1}", name, message));
            }
        }

        readThread.Join();
        _serialPort.Close();
    }

    public static void Read()
    {
        while (_continue)
        {
            try
            {
                string message = _serialPort.ReadLine();
                Console.WriteLine(message);
            }
            catch (TimeoutException) { }
        }
    }

    // Display Port values and prompt user to enter a port.
    public static string SetPortName(string defaultPortName)
    {
        string portName;

        Console.WriteLine("Available Ports:");
        foreach (string s in SerialPort.GetPortNames())
        {
            Console.WriteLine("   {0}", s);
        }

        Console.Write("Enter COM port value (Default: {0}): ", defaultPortName);
        portName = Console.ReadLine();

        if (portName == "" || !(portName.ToLower()).StartsWith("com"))
        {
            portName = defaultPortName;
        }
        return portName;
    }
    // Display BaudRate values and prompt user to enter a value.
    public static int SetPortBaudRate(int defaultPortBaudRate)
    {
        string baudRate;

        Console.Write("Baud Rate(default:{0}): ", defaultPortBaudRate);
        baudRate = Console.ReadLine();

        if (baudRate == "")
        {
            baudRate = defaultPortBaudRate.ToString();
        }

        return int.Parse(baudRate);
    }

    // Display PortParity values and prompt user to enter a value.
    public static Parity SetPortParity(Parity defaultPortParity)
    {
        string parity;

        Console.WriteLine("Available Parity options:");
        foreach (string s in Enum.GetNames(typeof(Parity)))
        {
            Console.WriteLine("   {0}", s);
        }

        Console.Write("Enter Parity value (Default: {0}):", defaultPortParity.ToString(), true);
        parity = Console.ReadLine();

        if (parity == "")
        {
            parity = defaultPortParity.ToString();
        }

        return (Parity)Enum.Parse(typeof(Parity), parity, true);
    }
    // Display DataBits values and prompt user to enter a value.
    public static int SetPortDataBits(int defaultPortDataBits)
    {
        string dataBits;

        Console.Write("Enter DataBits value (Default: {0}): ", defaultPortDataBits);
        dataBits = Console.ReadLine();

        if (dataBits == "")
        {
            dataBits = defaultPortDataBits.ToString();
        }

        return int.Parse(dataBits.ToUpperInvariant());
    }

    // Display StopBits values and prompt user to enter a value.
    public static StopBits SetPortStopBits(StopBits defaultPortStopBits)
    {
        string stopBits;

        Console.WriteLine("Available StopBits options:");
        foreach (string s in Enum.GetNames(typeof(StopBits)))
        {
            Console.WriteLine("   {0}", s);
        }

        Console.Write("Enter StopBits value (None is not supported and \n" +
         "raises an ArgumentOutOfRangeException. \n (Default: {0}):", defaultPortStopBits.ToString());
        stopBits = Console.ReadLine();
       
        if (stopBits == "" )
        {
            stopBits = defaultPortStopBits.ToString();
        }

        return (StopBits)Enum.Parse(typeof(StopBits), stopBits, true);
    }
    public static Handshake SetPortHandshake(Handshake defaultPortHandshake)
    {
        string handshake;

        Console.WriteLine("Available Handshake options:");
        foreach (string s in Enum.GetNames(typeof(Handshake)))
        {
            Console.WriteLine("   {0}", s);
        }

        Console.Write("Enter Handshake value (Default: {0}):", defaultPortHandshake.ToString());
        handshake = Console.ReadLine();

        if (handshake == "")
        {
            handshake = defaultPortHandshake.ToString();
        }

        return (Handshake)Enum.Parse(typeof(Handshake), handshake, true);
    }
}
' Use this code inside a project created with the Visual Basic > Windows Desktop > Console Application template.
' Replace the default code in Module1.vb with this code. Then right click the project in Solution Explorer,
' select Properties, and set the Startup Object to PortChat.

Imports System.IO.Ports
Imports System.Threading

Public Class PortChat
    Shared _continue As Boolean
    Shared _serialPort As SerialPort

    Public Shared Sub Main()
        Dim name As String
        Dim message As String
        Dim stringComparer__1 As StringComparer = StringComparer.OrdinalIgnoreCase
        Dim readThread As New Thread(AddressOf Read)

        ' Create a new SerialPort object with default settings.
        _serialPort = New SerialPort()

        ' Allow the user to set the appropriate properties.
        _serialPort.PortName = SetPortName(_serialPort.PortName)
        _serialPort.BaudRate = SetPortBaudRate(_serialPort.BaudRate)
        _serialPort.Parity = SetPortParity(_serialPort.Parity)
        _serialPort.DataBits = SetPortDataBits(_serialPort.DataBits)
        _serialPort.StopBits = SetPortStopBits(_serialPort.StopBits)
        _serialPort.Handshake = SetPortHandshake(_serialPort.Handshake)

        ' Set the read/write timeouts
        _serialPort.ReadTimeout = 500
        _serialPort.WriteTimeout = 500

        _serialPort.Open()
        _continue = True
        readThread.Start()

        Console.Write("Name: ")
        name = Console.ReadLine()

        Console.WriteLine("Type QUIT to exit")

        While _continue
            message = Console.ReadLine()

            If stringComparer__1.Equals("quit", message) Then
                _continue = False
            Else
                _serialPort.WriteLine([String].Format("<{0}>: {1}", name, message))
            End If
        End While

        readThread.Join()
        _serialPort.Close()
    End Sub

    Public Shared Sub Read()
        While _continue
            Try
                Dim message As String = _serialPort.ReadLine()
                Console.WriteLine(message)
            Catch generatedExceptionName As TimeoutException
            End Try
        End While
    End Sub

    ' Display Port values and prompt user to enter a port.
    Public Shared Function SetPortName(defaultPortName As String) As String
        Dim portName As String

        Console.WriteLine("Available Ports:")
        For Each s As String In SerialPort.GetPortNames()
            Console.WriteLine("   {0}", s)
        Next

        Console.Write("Enter COM port value (Default: {0}): ", defaultPortName)
        portName = Console.ReadLine()

        If portName = "" OrElse Not (portName.ToLower()).StartsWith("com") Then
            portName = defaultPortName
        End If
        Return portName
    End Function
    ' Display BaudRate values and prompt user to enter a value.
    Public Shared Function SetPortBaudRate(defaultPortBaudRate As Integer) As Integer
        Dim baudRate As String

        Console.Write("Baud Rate(default:{0}): ", defaultPortBaudRate)
        baudRate = Console.ReadLine()

        If baudRate = "" Then
            baudRate = defaultPortBaudRate.ToString()
        End If

        Return Integer.Parse(baudRate)
    End Function

    ' Display PortParity values and prompt user to enter a value.
    Public Shared Function SetPortParity(defaultPortParity As Parity) As Parity
        Dim parity As String

        Console.WriteLine("Available Parity options:")
        For Each s As String In [Enum].GetNames(GetType(Parity))
            Console.WriteLine("   {0}", s)
        Next

        Console.Write("Enter Parity value (Default: {0}):", defaultPortParity.ToString(), True)
        parity = Console.ReadLine()

        If parity = "" Then
            parity = defaultPortParity.ToString()
        End If

        Return CType([Enum].Parse(GetType(Parity), parity, True), Parity)
    End Function
    ' Display DataBits values and prompt user to enter a value.
    Public Shared Function SetPortDataBits(defaultPortDataBits As Integer) As Integer
        Dim dataBits As String

        Console.Write("Enter DataBits value (Default: {0}): ", defaultPortDataBits)
        dataBits = Console.ReadLine()

        If dataBits = "" Then
            dataBits = defaultPortDataBits.ToString()
        End If

        Return Integer.Parse(dataBits.ToUpperInvariant())
    End Function
    ' Display StopBits values and prompt user to enter a value.

    Public Shared Function SetPortStopBits(defaultPortStopBits As StopBits) As StopBits
        Dim stopBits As String

        Console.WriteLine("Available StopBits options:")
        For Each s As String In [Enum].GetNames(GetType(StopBits))
            Console.WriteLine("   {0}", s)
        Next

        Console.Write("Enter StopBits value (None is not supported and " &
                      vbLf & "raises an ArgumentOutOfRangeException. " &
                      vbLf & " (Default: {0}):", defaultPortStopBits.ToString())
        stopBits = Console.ReadLine()

        If stopBits = "" Then
            stopBits = defaultPortStopBits.ToString()
        End If

        Return CType([Enum].Parse(GetType(StopBits), stopBits, True), StopBits)
    End Function
    Public Shared Function SetPortHandshake(defaultPortHandshake As Handshake) As Handshake
        Dim handshake As String

        Console.WriteLine("Available Handshake options:")
        For Each s As String In [Enum].GetNames(GetType(Handshake))
            Console.WriteLine("   {0}", s)
        Next

        Console.Write("Enter Handshake value (Default: {0}):", defaultPortHandshake.ToString())
        handshake = Console.ReadLine()

        If handshake = "" Then
            handshake = defaultPortHandshake.ToString()
        End If

        Return CType([Enum].Parse(GetType(Handshake), handshake, True), Handshake)
    End Function
End Class

注解

使用此类控制串行端口文件资源。Use this class to control a serial port file resource. 此类提供同步和事件驱动 i/o、对插针和中断状态的访问以及对串行驱动程序属性的访问。This class provides synchronous and event-driven I/O, access to pin and break states, and access to serial driver properties. 此外,此类的功能可以包装在内部Stream对象中,可BaseStream通过属性进行访问,并传递给包装或使用流的类。Additionally, the functionality of this class can be wrapped in an internal Stream object, accessible through the BaseStream property, and passed to classes that wrap or use streams.

ASCIIEncoding UTF8Encoding UnicodeEncoding类支持以下编码:、、 、UTF32Encoding和在 mscorlib.dll 中定义的代码页小于50000的任何编码,或者代码页为54936。 SerialPortThe SerialPort class supports the following encodings: ASCIIEncoding, UTF8Encoding, UnicodeEncoding, UTF32Encoding, and any encoding defined in mscorlib.dll where the code page is less than 50000 or the code page is 54936. 你可以使用备用编码,但你必须使用ReadByteWrite方法并自己执行编码。You can use alternate encodings, but you must use the ReadByte or Write method and perform the encoding yourself.

使用GetPortNames方法检索当前计算机的有效端口。You use the GetPortNames method to retrieve the valid ports for the current computer.

如果在读取操作过程中对象被阻止,请不要中止线程。SerialPortIf a SerialPort object becomes blocked during a read operation, do not abort the thread. 相反,请关闭基流或释放SerialPort对象。Instead, either close the base stream or dispose of the SerialPort object.

构造函数

SerialPort()

初始化 SerialPort 类的新实例。Initializes a new instance of the SerialPort class.

SerialPort(IContainer)

使用指定的 IContainer 对象初始化 SerialPort 类的新实例。Initializes a new instance of the SerialPort class using the specified IContainer object.

SerialPort(String)

使用指定的端口名初始化 SerialPort 类的新实例。Initializes a new instance of the SerialPort class using the specified port name.

SerialPort(String, Int32)

使用指定的端口名和波特率初始化 SerialPort 类的新实例。Initializes a new instance of the SerialPort class using the specified port name and baud rate.

SerialPort(String, Int32, Parity)

使用指定的端口名、波特率和奇偶校验位初始化 SerialPort 类的新实例。Initializes a new instance of the SerialPort class using the specified port name, baud rate, and parity bit.

SerialPort(String, Int32, Parity, Int32)

使用指定的端口名、波特率、奇偶校验位和数据位初始化 SerialPort 类的新实例。Initializes a new instance of the SerialPort class using the specified port name, baud rate, parity bit, and data bits.

SerialPort(String, Int32, Parity, Int32, StopBits)

使用指定的端口名、波特率、奇偶校验位、数据位和停止位初始化 SerialPort 类的新实例。Initializes a new instance of the SerialPort class using the specified port name, baud rate, parity bit, data bits, and stop bit.

字段

InfiniteTimeout

指示不应该发生超时。Indicates that no time-out should occur.

属性

BaseStream

获取 Stream 对象的基础 SerialPort 对象。Gets the underlying Stream object for a SerialPort object.

BaudRate

获取或设置串行波特率。Gets or sets the serial baud rate.

BreakState

获取或设置中断信号状态。Gets or sets the break signal state.

BytesToRead

获取接收缓冲区中数据的字节数。Gets the number of bytes of data in the receive buffer.

BytesToWrite

获取发送缓冲区中数据的字节数。Gets the number of bytes of data in the send buffer.

CanRaiseEvents

获取一个指示组件是否可以引发事件的值。Gets a value indicating whether the component can raise an event.

(继承自 Component)
CDHolding

获取端口的载波检测行的状态。Gets the state of the Carrier Detect line for the port.

Container

获取 IContainer,它包含 ComponentGets the IContainer that contains the Component.

(继承自 Component)
CtsHolding

获取“可以发送”行的状态。Gets the state of the Clear-to-Send line.

DataBits

获取或设置每个字节的标准数据位长度。Gets or sets the standard length of data bits per byte.

DesignMode

获取一个值,用以指示 Component 当前是否处于设计模式。Gets a value that indicates whether the Component is currently in design mode.

(继承自 Component)
DiscardNull

获取或设置一个值,该值指示 null 字节在端口和接收缓冲区之间传输时是否被忽略。Gets or sets a value indicating whether null bytes are ignored when transmitted between the port and the receive buffer.

DsrHolding

获取数据设置就绪 (DSR) 信号的状态。Gets the state of the Data Set Ready (DSR) signal.

DtrEnable

获取或设置一个值,该值在串行通信过程中启用数据终端就绪 (DTR) 信号。Gets or sets a value that enables the Data Terminal Ready (DTR) signal during serial communication.

Encoding

获取或设置传输前后文本转换的字节编码。Gets or sets the byte encoding for pre- and post-transmission conversion of text.

Events

获取附加到此 Component 的事件处理程序的列表。Gets the list of event handlers that are attached to this Component.

(继承自 Component)
Handshake

使用 Handshake 中的值获取或设置串行端口数据传输的握手协议。Gets or sets the handshaking protocol for serial port transmission of data using a value from Handshake.

IsOpen

获取一个值,该值指示 SerialPort 对象的打开或关闭状态。Gets a value indicating the open or closed status of the SerialPort object.

NewLine

获取或设置用于解释 ReadLine()WriteLine(String) 方法调用结束的值。Gets or sets the value used to interpret the end of a call to the ReadLine() and WriteLine(String) methods.

Parity

获取或设置奇偶校验检查协议。Gets or sets the parity-checking protocol.

ParityReplace

获取或设置一个字节,该字节在发生奇偶校验错误时替换数据流中的无效字节。Gets or sets the byte that replaces invalid bytes in a data stream when a parity error occurs.

PortName

获取或设置通信端口,包括但不限于所有可用的 COM 端口。Gets or sets the port for communications, including but not limited to all available COM ports.

ReadBufferSize

获取或设置 SerialPort 输入缓冲区的大小。Gets or sets the size of the SerialPort input buffer.

ReadTimeout

获取或设置读取操作未完成时发生超时之前的毫秒数。Gets or sets the number of milliseconds before a time-out occurs when a read operation does not finish.

ReceivedBytesThreshold

获取或设置 DataReceived 事件发生前内部输入缓冲区中的字节数。Gets or sets the number of bytes in the internal input buffer before a DataReceived event occurs.

RtsEnable

获取或设置一个值,该值指示在串行通信中是否启用请求发送 (RTS) 信号。Gets or sets a value indicating whether the Request to Send (RTS) signal is enabled during serial communication.

Site

获取或设置 ComponentISiteGets or sets the ISite of the Component.

(继承自 Component)
StopBits

获取或设置每个字节的标准停止位数。Gets or sets the standard number of stopbits per byte.

WriteBufferSize

获取或设置串行端口输出缓冲区的大小。Gets or sets the size of the serial port output buffer.

WriteTimeout

获取或设置写入操作未完成时发生超时之前的毫秒数。Gets or sets the number of milliseconds before a time-out occurs when a write operation does not finish.

方法

Close()

关闭端口连接,将 IsOpen 属性设置为 false,并释放内部 Stream 对象。Closes the port connection, sets the IsOpen property to false, and disposes of the internal Stream object.

CreateObjRef(Type)

创建一个对象,该对象包含生成用于与远程对象进行通信的代理所需的全部相关信息。Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(继承自 MarshalByRefObject)
DiscardInBuffer()

丢弃来自串行驱动程序的接收缓冲区的数据。Discards data from the serial driver's receive buffer.

DiscardOutBuffer()

丢弃来自串行驱动程序的传输缓冲区的数据。Discards data from the serial driver's transmit buffer.

Dispose()

释放由 Component 使用的所有资源。Releases all resources used by the Component.

(继承自 Component)
Dispose(Boolean)

释放由 SerialPort 占用的非托管资源,还可以另外再释放托管资源。Releases the unmanaged resources used by the SerialPort and optionally releases the managed resources.

Equals(Object)

确定指定的对象是否等于当前对象。Determines whether the specified object is equal to the current object.

(继承自 Object)
GetHashCode()

作为默认哈希函数。Serves as the default hash function.

(继承自 Object)
GetLifetimeService()

检索控制此实例的生存期策略的当前生存期服务对象。Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(继承自 MarshalByRefObject)
GetPortNames()

获取当前计算机的串行端口名的数组。Gets an array of serial port names for the current computer.

GetService(Type)

返回一个对象,该对象表示由 Component 或它的 Container 提供的服务。Returns an object that represents a service provided by the Component or by its Container.

(继承自 Component)
GetType()

获取当前实例的 TypeGets the Type of the current instance.

(继承自 Object)
InitializeLifetimeService()

获取生存期服务对象来控制此实例的生存期策略。Obtains a lifetime service object to control the lifetime policy for this instance.

(继承自 MarshalByRefObject)
MemberwiseClone()

创建当前 Object 的浅表副本。Creates a shallow copy of the current Object.

(继承自 Object)
MemberwiseClone(Boolean)

创建当前 MarshalByRefObject 对象的浅表副本。Creates a shallow copy of the current MarshalByRefObject object.

(继承自 MarshalByRefObject)
Open()

打开一个新的串行端口连接。Opens a new serial port connection.

Read(Byte[], Int32, Int32)

SerialPort 输入缓冲区读取一些字节并将那些字节写入字节数组中指定的偏移量处。Reads a number of bytes from the SerialPort input buffer and writes those bytes into a byte array at the specified offset.

Read(Char[], Int32, Int32)

SerialPort 输入缓冲区中读取一些字符,然后将这些字符写入字符数组中指定的偏移量处。Reads a number of characters from the SerialPort input buffer and writes them into an array of characters at a given offset.

ReadByte()

SerialPort 输入缓冲区中同步读取一个字节。Synchronously reads one byte from the SerialPort input buffer.

ReadChar()

SerialPort 输入缓冲区中同步读取一个字符。Synchronously reads one character from the SerialPort input buffer.

ReadExisting()

在编码的基础上,读取 SerialPort 对象的流和输入缓冲区中所有立即可用的字节。Reads all immediately available bytes, based on the encoding, in both the stream and the input buffer of the SerialPort object.

ReadLine()

一直读取到输入缓冲区中的 NewLine 值。Reads up to the NewLine value in the input buffer.

ReadTo(String)

一直读取到输入缓冲区中的指定 value 的字符串。Reads a string up to the specified value in the input buffer.

ToString()

返回包含 Component 的名称的 String(如果有)。Returns a String containing the name of the Component, if any. 不应重写此方法。This method should not be overridden.

(继承自 Component)
Write(Byte[], Int32, Int32)

使用缓冲区中的数据将指定数量的字节写入串行端口。Writes a specified number of bytes to the serial port using data from a buffer.

Write(Char[], Int32, Int32)

使用缓冲区中的数据将指定数量的字符写入串行端口。Writes a specified number of characters to the serial port using data from a buffer.

Write(String)

将指定的字符串写入串行端口。Writes the specified string to the serial port.

WriteLine(String)

将指定的字符串和 NewLine 值写入输出缓冲区。Writes the specified string and the NewLine value to the output buffer.

事件

DataReceived

指示已通过由 SerialPort 对象表示的端口接收了数据。Indicates that data has been received through a port represented by the SerialPort object.

Disposed

当通过调用 Dispose() 方法释放组件时发生。Occurs when the component is disposed by a call to the Dispose() method.

(继承自 Component)
ErrorReceived

指示由 SerialPort 对象表示的端口上发生了错误。Indicates that an error has occurred with a port represented by a SerialPort object.

PinChanged

指示由 SerialPort 对象表示的端口上发生了非数据信号事件。Indicates that a non-data signal event has occurred on the port represented by the SerialPort object.

安全性

SecurityPermission
用于调用非托管代码。for the ability to call unmanaged code. 关联的枚举:UnmanagedCodeAssociated enumeration: UnmanagedCode

适用于