C及232串口通信方法计划.docxVIP

  • 1
  • 0
  • 约1.23万字
  • 约 24页
  • 2021-06-27 发布于山东
  • 举报
精品文档 精品文档 PAGE PAGE24 精品文档 PAGE v1.0 可编写可改正 本例程主要解说使用 C#,实现与232串口通信。达到采集串口数据,监控,可 视化办理等。 一.概括 在VisualStudio 中编写串口通讯程序,一般都使用 Microsoft Communication Control(简称MSComm)的通讯控件,只需通 过 对此控件的属性和事件进行相应编程操作, 就能够轻松地实现串口通讯。但在技 术宽泛应用的今天,Visual 没有将此控件加入控件库,所以人们采用了很多方 法在Visual 来编写串口通讯程序:第一种方法是经过采用 Visual Studio 中原 来的MSComm控件这是最简单的,最方便的方法,但需要注册;第二种方法是采 用微软在.NET推出了一个串口控件,鉴于.NET的P/Invoke调用方法实现;第三种方法是自己用API写串口通信,虽然难度高,但能够方便实现自己想要的各样功能。 现在微软推出了最新版本的VisualStudio2005开发工具,能够不再采用第三方控件的方法来设计串口通讯程序。NETFramework类库包含了SerialPort类,方便地实现了所需要串口通讯的多种功能,为了使MSComm编程 方法迅速变换到以 SerialPort 类为中心的串口通讯的设计方法,本文着重议论 了VisualStudio 的MSComm控件和SerialPort 类设计方法的异同点。 二.SerialPort 常用属性、方法和事件 1.命名空间 命名空间包含了控制串口重要的SerialPort类,该类提供了同步I/O和事件驱动的I/O、对管脚和中止状态的接见以及对串行驱动程序属性的接见,所以在程序代码开端位置需加入Using。 2.串口的通讯参数 1 v1.0 可编写可改正 串口通最常用的参数就是通端口号及通格式 (波特率、数据位、停止 位和校位),在MSComm中有关的属性是CommPort和Settings。SerialPort 与MSComm有一些区: 通端口号 [PortName]属性取或置通信端口,包括但不限于所有可用的COM端口,注意属性返回型String,不是的short型。往常情况下,PortName正常返回的COM1、COM2??,SerialPort最大支持的端口数打破了CommPort控件中CommPort属性不能超16的限止,大大方便了用串口的配置。 通格式 SerialPort 分用[BaudRate]、[Parity] 、[DataBits] 、[StopBits] 属性置通格式中的波特率、数据位、停止位和校位,其中 [Parity] 和 [StopBits]分是枚型Parity、StopBits,Parity型中枚了Odd(奇)、Even(偶)、Mark、None、Space,Parity枚了None、One、OnePointFive、Two。 SerialPort 提供了七个重的结构函数,既能够已例化的 SerialPort 象置上述有关属性的,也能够使用指定的端口名称、波特率 和奇偶校位数据位和停止位直接初始化 SerialPort 的新例。 3.串口的翻开和关 SerialPort 没有采用=True/False置属性翻开关串口,相的是 用的Open()和Close()方法。 数据的送和取 Serial 用重的Write和WriteLine 方法送数据,其中 WriteLine 可送字符串并在字符串末尾加入行符, 取串口冲区的方法有多, 其中 除了ReadExisting 和ReadTo,其余的方法都是同步用,程被阻塞直到冲 区有相的数据或大于 ReadTimeOut属性定的后,引 ReadExisting 异样。 事件 2 v1.0 可编写可改正 该事件近似于MSComm控件中的OnComm事件,DataReceived事件在接收到 了[ReceivedBytesThreshold]设置的字符个数或接收到了文件结束字符并将其 放入了输入缓冲区时被触发。其中[ReceivedBytesThreshold]相当于MSComm控件的[Rthreshold]属性,该事件的用法与MsComm控件的OnComm事件在 CommEvent为comEvSend和comEvEof时是一致的。 三.SerialPort 的使用 关于熟悉MSComm控件的程序设计者,SerialPort 类是相当容易上手的。 在进行串口通讯时,一般的流程是设置通讯端口号及波特率、 数据位、停止位和 校验位,再翻初步口连结,发送数据,接收数据,最后封闭端口连结这样几个步 骤。 数据接收的设计方法在这里比较重要,采用轮询的方法比较浪费时间,在 Visual Basic中的延时方法中一般

文档评论(0)

1亿VIP精品文档

相关文档