C#软件如何读取串口数据阿?跪求
SerialPort 类
此类用于控制串行端口文件资源。此类提供同步 I/O 和事件驱动的 I/O、对管脚和中断状态的访问以及对串行驱动程序属性的访问。另外,此类的功能可以包装在内部 Stream 对象中,可通过 BaseStream 属性访问,并且可以传递给包装或使用流的类。
SerialPort 类支持以下编码:ASCIIEncoding、UTF8Encoding、UnicodeEncoding、UTF32Encoding 以及 mscorlibdll 中定义的、代码页小于 50000 或者为 54936 的所有编码。您可以使用其他编码,但必须使用 ReadByte 或 Write 方法并自己执行编码。
以下是SerialPort类的一些方法:
Read 已重载。 从 SerialPort 输入缓冲区中读取。
ReadByte 从 SerialPort 输入缓冲区中同步读取一个字节。
ReadChar 从 SerialPort 输入缓冲区中同步读取一个字符。
ReadExisting 在编码的基础上,读取 SerialPort 对象的流和输入缓冲区中所有立即可用的字节。
ReadLine 一直读取到输入缓冲区中的 NewLine 值。
ReadTo 一直读取到输入缓冲区中的指定 value 的字符串。
来源:MSDN
一般串口通讯,除了要求波特率,奇偶校验,数据位长度一致外,还要求有一定的通讯协议,保证接收端收到数据是正确的。如帧头、帧号,数据,校验和,帧尾。具体协议不尽相同,但保证数据作用一致。如用delphi,可选用spcomm控件程序。
VB60可使用MsComm控件实现串口通信。按通信协议和数据帧规约接收和处理数据。
MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。
MSComm 控件提供下列两种处理通讯的方式:
事件驱动通讯是处理串行端口交互作用的一种非常有效的方法。在许多情况下,在事件发生时需要得到通知,例如,在 Carrier Detect (CD) 或
Request To Send (RTS) 线上一个字符到达或一个变化发生时。在这些情况下,可以利用 MSComm 控件的 OnComm
事件捕获并处理这些通讯事件。OnComm 事件还可以检查和处理通讯错误。所有通讯事件和通讯错误的列表,参阅 CommEvent
属性。
在程序的每个关键功能之后,可以通过检查 CommEvent 属性的值来查询事件和错误。如果应用程序较小,并且是自保持的,这种方法可能是更可取的。例如,如果写一个简单的电话拨号程序,则没有必要对每接收一个字符都产生事件,因为唯一等待接收的字符是调制解调器的“确定”响应。
尽管 MSComm 控件有很多重要的属性,但首先必须熟悉几个属性。
0条评论