RS-232-C端口实时监控软件的设计实现[VC++6]

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情
作者:郎锐 更新时间: 2005-05-07  
 
   摘要:

   本文介绍了在Microsoft Visual C++ 6.0环境下对RS-232-C串行端口进行编程,以及对后台监控程序所普遍涉及到的无阻塞后台运行、数据的实时接收和处理等问题的解决方法。

   一、 引言

   在实验室和工业应用中,受信道成本限制,串口常常作为计算机与外部串行设备之间的首选数据传输通道,而且由于串行通信方便易行,许多设备和计算机都可以通过串口对外设进行控制、检测,串口通讯日益成为计算机和外设进行通讯、获取由外设采集到的监测数据的一个非常重要的手段。本文所描述的程序实例运行于Windows 9x操作系统下,可后台运行、实时接收、处理从端口传来的数据,并能通过向串口发送命令来控制外设的动作。为了避免在实时监控数据时引发程序阻塞,在本程序中引入了线程和端口中断响应等技术。

   二、 程序设计思路

   由于本程序要对串行端口进行实时监控,这就要求它是一个后台程序,在监控的同时可以在前台进行其他一些于之无关的操作。因而在实现时即要避免无时无刻都在反复读端口的效率低下的轮询方式,又不能因为来不及处理而将突然到达的监测数据丢失。只有采取端口中断的异步方式才能实现高效、安全的监控过程,只要一有数据到达端口,马上抛出中断请求,中断处理函数便会及时启动以处理到来的数据,从而避免了轮询间隙丢时数据的可能。而在大部分无数据到达的时间内不会有中断抛出,中断处理函数也不会执行,即仅仅在有数据到达的一瞬间进行工作,此效率不可谓不高。

   综上所述,要实现上述要求,就要用到下列技术来解决所遇到的关键性问题:一是采用多线程来避免在进行文件操作等耗时操作时会引发阻塞现象的发生。同时为了防止多个线程同时对同一个变量进行操作引起时序上的差错,为了保持线程的同步,还采取了临界区加解锁的技术;二是对端口的数据读取方式采取中断响应模式,具体原因前面以讲的很清楚,在此不再赘述;三是使用了定时器,以满足实时监控类程序的实时显示功能,以便及时的将所接收到的动态数据及时的反映到屏
幕上。

三、 RS-232-C串行端口监控软件的程序实现

   (一) 界面风格

   由于是实时监控软件,那就既要监测从外设传来的实时数据,
C++_串口编程_官方示例:监视通信事件 修改后,这个程序就是同步的模式了,就是会一直处于等待状态,虽然不实用,但是好歹是能用了。用VSPD 和 XCOM V2.6 创建虚拟的COM串口后,可以用XCOM 创建一个 从COM2 发送文本到COM1的操作,之后就有输出了,这个EV_RXCHAR事件发生了。这是微软官方的一个例子,这个例子中,如果不做修改,那么他是可以异步运行的,会出现一个错误:官方也说了一下,但是不太好懂,我拷贝过来放在这里,作为参考。后续还可以多研究研究,作为一个最权威,最基本的例子,这个作为入门我觉得很不错,推荐给大家。 阅读详情

相关推荐

第五次学习 串口监视

findUntil(target, terminator):作用与find类似,也可以用于从设备接收到的数据中寻找指定字符串信息。串口监视器是Arduino IDE自带的一个小工具,可以查看到串口传来的信息,也可以向连接的设备发送信息,方便我们对程序进行调试修改。parseInt():可用于从设备接收到的数据中寻找整数数值,与之类似的是parseFloat()函数,用于寻找浮点数。:简称串口,作用是 用于个人电脑和Arduino的通信,电脑通过USB接口与Arduino的I/O两个引脚进行通讯

Lin162610的博客 2108

RS232中RTS和CTS的作用

本文详细解释了RS232通信技术中的RTS与CTS的作用,适合于那些对这2个概念不太清楚的童鞋,以及那些需要改变自定义设置的同学

RTX实时平台实现RS232通讯

关键词 RTSS Win32 UART NI SharedMemory 在工控领域,特别是我比较熟悉的半导体行业,设备与设备之间的通讯一般有TTL, RS232, GPIB, RJ45等,RS232是其中常见的且运用广泛的一种通讯方式。因其简单易用,在设备之间短距离通讯,一般都采用RS232。 简单介绍一下RS232: 根据引脚数量分为 DB9(9个引脚,比较常见,PC都是用这个)和DB

hongxin日志 5533

RS232的三种流控制模式

本文详细介绍了RS232通信技术中常用的3种流控技术,适合于对流控技术不太了解的同学

串口数据的抓取与监视

链接:https://item.taobao.com/item.htm?spm=a230r.1.14.116.76edd8f4XLxK7L&id=634070600059&ns=1&abbucket=10#detail 功能介绍 串口(RS232)监听器采用硬件监听串口数据的方式,直接把监听器串接在被监听的RS232(DB9)接口上。在不影响原有设备本身通讯的前提下,把数据监听进来,在电脑上分开显示监听到的TX、RX数据。 可同时监听TX、RX、CTS、RTS四个信号,并

woshiyiliangmin的博客 6835

RS-232-C端口实时监控软件设计实现

文章标题:RS-232-C端口实时监控软件设计实现原 作 者:郎锐原 出 处:天极网发 布 者:loose_went发布类型:转载  摘要:   本文介绍了在Microsoft Visual C++ 6.0环境下对RS-232-C串行端口进行编程,以及对后台监控程序所普遍涉及到的无阻塞后台运行、数据的实时接收和处理等问题的解决方法。   一、 引言   在实验室和工业应用中,受信道成本限制,串口

老杨的专栏 1734

利用RS485通信、串口收发数据的硬件连接及部分代码

软件设计思路:相当于单片机B的功能是否正常要通过屏幕显示出来,而单片机A是中间的桥梁,由于485是半双工,单片机B只有收到询问指令的数据才会发送响应的数据(单片机B程序不可更改,被动);单片机A和单片机B之间、单片机A和屏幕(一种可视化编辑的屏幕,规定好通信协议,利用485通信将字符串发送过去就能显示相应的内容,屏幕:TK607ID)。A、B总线接口,用于连接485总线。串口2是单片机A和单片机B用于通信的,串口1是单片机A和屏幕通信的,为了便于网络连接,串口1和串口2的网络标签做了一些区分。

nolate_chen的博客 8549

串口通讯-----串口监听线程全局函数(C++)

该代码是MFC环境下的,(非MFC)可进行局部修改; ``````` #include "windows.h" #define COMMBUFFER_SIZE 18 //每组数据字节数 //串口变量 HANDLE g_hComm = INVALID_HANDLE_VALUE;//串口句柄 HANDLE g_hCommThread = NULL;//线程句柄 OVERLAPP...

sazass的博客 5011

使用Visual C++开发的串口监视工具

串口通信作为计算机与外部设备之间进行数据交换的重要方式,长期以来在各种通信系统中占据核心地位。监视软件则是针对串口通信过程进行实时监控、记录和分析,为开发者提供了一个直观了解通信状态的窗口。串口,也被称作串行端口,主要负责将数据分成一个接一个的位进行传输。在硬件上通常以RS-232RS-422、RS-485等标准存在,支持点对点或一点对多点的通信。每秒传输的数据位数定义为波特率。通信双方一般通过设定相同的波特率、数据位、停止位和校验位来保证数据的正确收发。

weixin_42509888的博客 977

深入理解MSComm控件及API在不同开发环境中的应用

本文还有配套的精品资源,点击获取 简介:串口通信是连接计算机与硬件设备的主要方式,MSComm控件作为微软提供的串口通信工具,在Visual Basic、Delphi、C++Builder和Visual C++等开发环境中广泛应用。本文详细探讨了MSComm控件的功能、属性、方法和事件,并提供在不同开发环境下,如何使用MSComm控件进行串口通信的指导。文档包括了MSCom...

weixin_35732273的博客 1623

串口使用系列学习之C++如何进行流控

【代码】串口使用系列学习之C++如何进行流控。

学无止尽,谨言慎行! 2102

介绍几款串口监控工具

在开发上位机下位机通讯程序时,有一个好的监控工具会事半功倍。特在网上找了几款串口监控软件,作了简单对比: 一、Device Monitoring Studio 网址:http://www.hhdsoftware.com 程序截屏: 软件功能比较强大,是收费软件,免费试用15天。从截图可以看出,选择了通信端口以后,可以很轻松监控串口数据。另外从界面上看它还有数据统计等很多其它功能,我没有全部试用,就不多介绍了。需要注意一点,它的启动按钮在界面右侧下方。 二、微软portmon 微软工具包Sysinterna

李肖遥的专栏 2万+

如何监听串口(RS232):详细步骤与实例

在这篇文章中,我们将详细介绍如何监听串口(RS232)。我们将通过Python的pyserial库来实现这个功能。首先,确保你已经安装了pyserial库。

理论都是虚的,代码才是王道。 3319

Visual C++串口通信编程---多线程异步方式

Visual C++串口通信编程---多线程异步方式 1. 串口通信基础 提到串口让人想起并口,它们是计算机中两个比较重要的通信方式。 串口:也叫COM口,把字节的二进制位按位列队进行传输,每个字节占一个固定的时间长,速度慢,但是传输距离远,有9针和25针两种,是阳插座(插座中有针凸起),目前25针较少使用;Modem\鼠标\USB口\老式摄像头等都是用串口。 并口:把字节的二进制位用多条...

《好好先生》专栏 8031

vs 电脑C ++ RS232串口通信与STM32 TTL串口通信

硬件环境: STM32:uart串口 电脑:RS232串口 软件开发环境: STM32:keil5 电脑:visual studio 2017 电脑:串口通信 个人微信号:zyd1164852912

Youngo的博客 1536

VC串口编程基础-RS232串口协议标准简介

学习VC 串口编程,了解串口协议的标准是必须的,其实串口相对于其它接口(如USB接口)是非常简单的。   RS232串口标准是美国EIA(电子工业联合会)与BELL等公司一起开发的通信协议。它适合于数据传输速率在0~20000bit/s范围内通信。RS232作为一种标准,被广泛应用于计算机与外设间的一种常通信接口,其中外设应用种类繁多,如:打印机、数据采集模块、测试装置和各种控制回路,甚至RS2

CircleSquare的专栏 5650

[转载]天方夜谭VCL: 开门

天方夜谭VCL: 开门虫虫前言如果你爱他,让他学VCL,因为那是天堂。如果你恨他,让他学VCL,因为那是地狱。──《天方夜谭VCL》 传说很久很久以前,中国和印度之间有个岛。那里的国王每天娶一个女子,过夜后就杀,闹得鸡犬不宁,最后宰相的女儿自愿嫁入宫。第一晚,她讲了一个非常有意思的故事,国王听入了迷,第二天没有杀她。此后她每晚讲一个奇特的故事,一直讲到第一千零一夜,国王终于幡然悔悟。这就是著名的《

游乐园 2602

C++ Builder VCL的字符串函数(2)

原文地址:http://www.yesky.com/20020701/1618451_1.shtml1. UpperCase  将指定的AnsiString字符串转换为大写形式,函数原型如下:  AnsiString __fastcall UpperCase(const AnsiString S);  2. LowerCase  将指定的AnsiString字符串转换为小写形式,函数原型如下:  

游乐园 2324
上一篇: 关闭模式窗体后,如果该窗体是由父窗体show出来的...
下一篇: C++ Builder VCL的字符串函数(2)
Rex_love_Burger
博客等级 码龄23年 13粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值