上一篇看了Overlapped IO模型后,接下来看剩下两个重要结构:  2.COMMTIMEOUTS结构 超时设置 COMMTIMEOUTS:COMMTIMEOUTS主要用于串口超时参数设置.COMMTIMEOUTS结构如下:         typedef   struct   _COMMTIMEOUTS   {       DWORD   ReadIntervalTimeout;     //读间隔超时  DWORD   ReadTotalTimeoutMultiplier;//    读…
第一篇初步了解串口的大致运作,接下来我们看基本操作 先看串口操作的数据结构: 串口操作有几个比较重要的Struct 1.Overlapped I/O 异步I/O模型 异步I/O和同步I/O不同,同步I/O时,程序被挂起,一直到I/O处理完,程序才能获得控制.异步I/O,调用一个函数告诉OS,进行I/O操作,不等I/O结束就立即返回,继续程序执行,操作系统完成I/O之后,通知消息给你.Overlapped I/O只是一种模型,它可以由内核对象(hand),事件内核对象(hEvent), 异步过程调…
一.可能需要的软件:1.虚拟串口vspd(Virtual Serial Port Driver,用来在电脑上虚拟出一对串口,模拟通讯. 2.友善串口调试助手,用来发送.读取数据. 二.思路1.查询本机所有的串口 2.判断需要的串口是否存在本机的串口中 3.设置串口的参数,如波特率.奇偶校验等. 4.打开串口, 5.通过串口读取数据,处理数据 6.关闭当前窗口时,将串口一并关闭. 7.可以写一个定时器,来循环执行1.2两步,并判断串口是否打开,以保持串口通讯正常. 三,代码 1.查询本机所有的串口…
原文:c#调api串口通讯 在调试ICU通信设备的时候,由于串口通信老出现故障,所以就怀疑CF实现的SerialPort类是否有问题,所以最后决定用纯API函数实现串口读写. 先从网上搜索相关代码(关键字:C# API 串口),发现网上相关的资料大约来源于一个版本,那就是所谓的msdn提供的样例代码(msdn的具体出处,我没有考证),其它的代码大都是它的变种. 其实这个示例代码是有问题的,也就是说DCB结构体声明的有问题,虽然该代码可以正常通信,不过如果你设置了奇偶校验的话,你会发现奇偶校验无效…
串口通讯可以引出kernel32.dll中的API来操作,相关源码如下:using System;using System.Runtime.InteropServices; namespace Telehome.GSM{/// <summary>/// ************************************************************************************/// /// Function: 连接,断开串口;发送,接收串口数据,使用…
  用Delphi 实现串口通讯,常用的几种方法为:使用控件如MSCOMM和SPCOMM,使用API函数或者在Delphi 中调用其它串口通讯程序.利用API编写串口通信程序较为复杂,需要掌握大量通信知识,其优点是可实现的功能更强大,应用面更广泛,更适合于编写较为复杂 的低层次通信程序.相比较而言,利用SPComm控件则相对较简单,该控件具有丰富的与串口通信密切相关的属性及事件,提供了对串口的各种操作. 使用控件这一方法容易掌握,而SPCOMM支持多线程,所以SPCOMM控件的应用更加广泛.结合…
西门子plc串口通讯的三种方式 时间:2015-10-25 14:31:55编辑:电工栏目:西门子plc 导读:西门子plc串口通讯的三种方式,分为RS485 串口通信.PPI 通信.MPI 通信,自由口模式下西门子PLC与计算机的串口通信,S7-200系列PLC的通信口分3种工作方式. 西门子plc串口通讯的三种方式 1.RS485 串口通信第三方设备大部分支持,西门子S7 PLC 可以通过选择自由口通信模式控制串口通信.最简单的情况只用发送指令(XMT)向打印机或者变频器等第三方设备发送信息…
Delphi  MSComm 实时串口通讯 MSComm控件具有丰富的与串口通信密切相关的属性,提供了对串口进行的多种操作,进而使串行通信变得十分简便.MSComm的控件属性较多,常用的属性如下:1).CommPort:设置或返回串行端口号,缺省为1.2).Setting:设置或返回串口通信参数,格式为“波特率,奇偶校验位,数据位,停止位”.例如:MSComm1.Setting:=9600,n,8,13).PortOpen:打开或关闭串行端口,格式为:MSComm1.PortOpen:={Tru…
转自浅析PC机串口通讯流控制 我们在串行通讯处理中,常常看到RTS/CTS和XON/XOFF这两个选项,这就是两个流控制的选项,目前流控制主要应用于调制解调器的数据通讯中,但对普通RS232编程,了解一点这方面的知识是有好处的.那么,流控制在串行通讯中有何作用,在编制串行通讯程序怎样应用呢?这里我们就来谈谈这个问题.      1.流控制在串行通讯中的作用      这里讲到的"流",当然指的是数据流.数据在两个串口之间传输时,常常会出现丢失数据的现象,或者两台计算机的处理速度不同,如…
MFC下串口编程使用最多的两种方法是读取注册表和使用mscomm组件,都有着或多或少的缺陷,调用系统SDK比较麻烦,而MSCOMm组件最多支持16个串口,串口号大于16的时候无法打开,遇到这种情况,可以使用一个名为pcommlite的串口通讯库,下载安装之后,解压出来的文件包括 根据编译的平台选择相应的lib文件加入工程,并加入pcomm.h文件 寻找系统串口,sio_open()打开串口 sio_close()关闭串口 BYTE i = 0; CString str; // TODO: 在此添…