网站软文伪原创去掉wordpress

web/2025/9/25 10:32:35/文章来源:
网站软文伪原创,去掉,wordpress,网站代理备案表,网站域名密码忘了本文以VC为平台进行串口通信编程 串口通讯在VC下实现方式有很多#xff0c;控件自然是最简单话的方式了#xff0c;但由于控件只支持对话框程序#xff0c;有些场合又不需要对话框#xff0c;所以用Windows API实现是比较好的方式 串行通信的操作方式 1.同步方式 同步方… 本文以VC为平台进行串口通信编程 串口通讯在VC下实现方式有很多控件自然是最简单话的方式了但由于控件只支持对话框程序有些场合又不需要对话框所以用Windows API实现是比较好的方式 串行通信的操作方式 1.同步方式 同步方式中读串口的函数试图在串口的接收缓冲区中读取规定数目的数据直到规定数目的数据全部被读出或设定的超时时间已到时才返回 [cpp] view plaincopyprint? COMMTIMEOUTS timeOver;//COMMTIMEOUTS结构用于设置读写函数的等待时间。  memset(timeOver,0,sizeof(timeOver));  DWORD timeMultiplier,timeConstant;  timeOver.ReadTotalTimeoutMultipliertimeMultiplier;  timeOver.ReadTotalTimeoutConstanttimeConstant;  SetCommTimeouts(hComport,timeOver);  ……  ReadFile(hComport,//串口句柄              inBuffer,//缓冲              nWantRead,//每次调用ReadFile时函数试图读出的字节数              nRealRead,//实际读出的字节数                NULL);//代表ReadFile将采用同步文件读写的方式   COMMTIMEOUTS timeOver;//COMMTIMEOUTS结构用于设置读写函数的等待时间。 memset(timeOver,0,sizeof(timeOver)); DWORD timeMultiplier,timeConstant; timeOver.ReadTotalTimeoutMultipliertimeMultiplier; timeOver.ReadTotalTimeoutConstanttimeConstant; SetCommTimeouts(hComport,timeOver); …… ReadFile(hComport,//串口句柄inBuffer,//缓冲nWantRead,//每次调用ReadFile时函数试图读出的字节数nRealRead,//实际读出的字节数NULL);//代表ReadFile将采用同步文件读写的方式 如果所规定的待读取数据的数目nWantRead较大且设定的超时时间也较长而接收缓冲区中数据较少则可能引起线程阻塞。解决这一问题的方法是检查COMSTAT结构的cbInQue成员该成员的大小即为接收缓冲区中处于等待状态的数据的实际个数。如果令nWantRead的值等于COMSTAT.cbInQue就能较好地防止线程阻塞。 2.查询方式 查询方式即一个进程中的某一线程定时地查询串口的接收缓冲区如果缓冲区中有数据就读取数据若缓冲区中没有数据该线程将继续执行因此会占用大量的CPU时间它实际上是同步方式的一种派生。 [cpp] view plaincopyprint? COMMTIMEOUTS timeOver;  memset(timeOver,0,sizeof(timeOver));  timeOver.ReadIntervalTimeoutMAXWORD;//注意和同步方式不同的地方  SetCommTimeouts(hComport.timeOver);  ……  ReadFile(hComport.          inBuffer.          nWantRead.           nRealRead,            NULL);//代表ReadFile将采用同步文件读写的方式   COMMTIMEOUTS timeOver; memset(timeOver,0,sizeof(timeOver)); timeOver.ReadIntervalTimeoutMAXWORD;//注意和同步方式不同的地方 SetCommTimeouts(hComport.timeOver); …… ReadFile(hComport.inBuffer.nWantRead.nRealRead,NULL);//代表ReadFile将采用同步文件读写的方式 除了COMMTIMEOUTS结构的变量timeOver设置不同外查询方式与同步方式在程序代码方面很类似但二者的工作方式却差别很大。尽管ReadFile采用的也是同步文件读写方式但由于timeOver的区间超过时间设置为MAXWORD所以ReadFile每次将读出接收队列中的所有处于等待状态的数据一次最多可读出nWantRead个字节的数据。 3.异步方式 异步方式中利用Windows的多线程结构可以让串口的读写操作在后台进行而应用程序的其他部分在前台执行。 [cpp] view plaincopyprint? OVERLAPPED wrOverlapped;  COMMTIMEOUTS timeOver;  memset(timeOver.0.sizeof(timeOver));  DWORDtimeMultiplier,timeConstant;  timeOver.ReadTotalTimeoutMultipliertimeMultiplier;  timeOver.ReadTotalTimeoutConstanttimeConstant;  SetCommTimeouts(hComport,timeOver);  wrOverlapped.hEventCreateEvent(NULL.TRUE,FALSE,NULL);//创建事件句柄  ……  ReadFile(hComport,             nBuffer,             nWantRead,             nRealRead,             wrOverlapped);//异步方式并且与事件联系上   /*由于采用了异步方式所以它只返回数据是否已开始读入的状态并不返回实际的读入数据即ReadFile中的nRealRead无效*/    //实际读入的数据是由GetOverlappedResult函数返回的   GetOverlappedResult(hComport,                  wrOverlapped,                   nRealRead,                      TRUE);  /*表示它等待异步操作结束后才返回到应用程序此时GetOverlappedResult函数与WaitForSingleObject函数等效。*/  ……  ResetEvent(wrOverlapped.hEvent);//释放事件句柄   OVERLAPPED wrOverlapped; COMMTIMEOUTS timeOver; memset(timeOver.0.sizeof(timeOver)); DWORDtimeMultiplier,timeConstant; timeOver.ReadTotalTimeoutMultipliertimeMultiplier; timeOver.ReadTotalTimeoutConstanttimeConstant; SetCommTimeouts(hComport,timeOver); wrOverlapped.hEventCreateEvent(NULL.TRUE,FALSE,NULL);//创建事件句柄 …… ReadFile(hComport,nBuffer,nWantRead,nRealRead,wrOverlapped);//异步方式并且与事件联系上 /*由于采用了异步方式所以它只返回数据是否已开始读入的状态并不返回实际的读入数据即ReadFile中的nRealRead无效*///实际读入的数据是由GetOverlappedResult函数返回的 GetOverlappedResult(hComport,wrOverlapped, nRealRead,TRUE); /*表示它等待异步操作结束后才返回到应用程序此时GetOverlappedResult函数与WaitForSingleObject函数等效。*/ …… ResetEvent(wrOverlapped.hEvent);//释放事件句柄 当采用异步方式时在用CreateFile打开串口设备时CreateFile函数的参数fdwAttrsAndFlags必须设为FILE_FLAG_ OVERLAPPED。在Windows中只有在串行设备上才支持异步文件读写并且GetOverlappedResult函数也只支持串行设备或用DeviceloControl函数打开的文件。 4.事件驱动 若对端口数据的响应时间要求较严格可采用事件驱动方式。事件驱动方式通过设置事件通知当所希望的事件发生时Windows发出该事件已发生的通知这与DOS环境下的中断方式很相似。Windows定义了9种串口通信事件较常用的有以下三种 EV_RXCHAR:接收到一个字节并放入输入缓冲区 EV_TXEMPTY:输出缓冲区中的最后一个字符发送出去 EV_RXFLAG:接收到事件字符(DCB结构中EvtChar成员)放入输入缓冲区。 在用SetCommMask()指定了有用的事件后应用程序可调用WaitCommEvent()来等待事件的发生。SetCommMask(hComm,0)可使WaitCommEvent()中止。 [cpp] view plaincopyprint? COMSTAT comStat;  DWORD dwEvent;  SetCommMask(hComport,EV_RXCHAR);//设置事件代码   /*EV_RXCHAR表示接收到一个字符时触发这一事件然后调用WaitCommEvent函数等待该事件的发生。*/  ……  if(WaitCommEvent(hComport,dwEvent,NULL))   if((dwEventEV_RXCHAR)comstat.cbInQue)     ReadFile(hComport,                inBuffer,                 comstat.cbInQue,                nRealRead,                  NULL);//表示该函数是同步的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/81562.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

管理系统和网站哪个好做类似返利网的网站建设

How Much Memory Your Code Is Using? Gym - 101955J 题意: t组数据,每组数据会有n个定义类型的方式,给你每个类型所占字节,问一共占了多少字节,最终答案按照Kibibyte单位输出,并向上取整 题解&#xf…

青岛网站建设q.479185700強汇邦团建网站谁做的

在实际工程中渗流路径往往不是单一材料,如渗流发生在夹杂碎石的土体中,这就造成渗流的复杂性。这里采用两项材料通过COMSOL达西定律模块对渗流进行模拟。 模型采用CAD随机球体颗粒&过渡区插件建立后导入到COMSOL软件内。 模型包括渗流发生的外侧基…

汽车html静态网站陕西省建设监理协会查询官方网站

1、序列化的实现 java序列化的是对象属性的,只有实现了Serializable或者Externalizable接口的类的对象才能被序列化为字节序列。(不是则会抛出异常),静态成员变量是属于类的,所以静态成员变量是不能被序列化的&#x…

长春火车站到龙嘉机场高铁时刻表企业信息化管理系统

RedLock底层源码分析 一、Redlock红锁算法 https://redis.io/docs/manual/patterns/distributed-locks/官网说明 1、为什么要学习这个?怎么产生的? ​ 一个很直接的问题,当我使用redis锁的那台机器挂了,出现了单点故障了&#…

建筑装饰网站模板手机软件开发商

一、引言 在当今全球化日益加剧的商业环境中,外贸业务已成为众多企业寻求增长的重要途径。而WordPress作为一款强大且易于操作的建站平台,被广大外贸企业所青睐,用于构建自己的独立站。然而,仅仅拥有一个WordPress外贸独立站并不…

交通设施东莞网站建设广州最新今天的消息

各位CSDN的uu们好呀,好久没有更新小雅兰的C专栏啦,话不多说,让我们进入类和对象的世界吧!!! 类的6个默认成员函数 构造函数 析构函数 拷贝构造函数 类的6个默认成员函数 如果一个类中什么成员都没有&am…

优舟网站建设vultr安装wordpress

给定你一个长度为 n 的整数数列。 请你对这个数列按照从小到大进行排序。 并将排好序的数列按顺序输出。 输入格式 输入共两行,第一行包含整数 n 。 第二行包含 n 个整数(所有整数均在 1∼109 范围内),表示整个数列。 输…

请简述网站开发的流程图凡客诚品特色

今天起我们新增一个案例数据,犯罪数据。这是mei国50个州关于犯罪率的一组数据,包括人口、面积、收入、文盲率、高中毕业率、霜冻天数、犯罪率共7个指标,现在我们想考察一下州犯罪率和其他因素间的关系。数据视图如下:数据取自《R语…

网站如何做关键字收录房地产基础知识300问

容器技术是近几年计算机领域的热门技术,特别是随着各种云服务的发展,越来越多的服务运行在以 Docker 为代表的容器之内。 本文我们就来分享一下容器化技术相关的知识。 容器化技术简介 相比传统虚拟化技术,容器技术是一种更加轻量级的操作…

网站建设的利润率多少ps培训机构排名

一种观点认为,防病毒与安全供应商们在与网络罪犯们的战斗中正逐步失去主动。黑客们的网络爬虫正越来越多的偷偷潜入计算机,植入恶意程序,打开计算机发送远程攻击指令,并把它们变为僵尸网络的僵尸军团。 造成这个局面的根本原因在于…

网站建设制作合同计算机前景和就业

1、项目下载cloneruoyi-vue-pro: 🔥 官方推荐 🔥 RuoYi-Vue 全新 Pro 版本,优化重构所有功能。基于 Spring Boot MyBatis Plus Vue & Element 实现的后台管理系统 微信小程序,支持 RBAC 动态权限、数据权限、SaaS 多租户、…

学seo网站推广好吗wordpress缓存目录

Django处理枚举-枚举模型 1、定义模型类、序列化器类2、对上面这些场景使用source参数3、支持连表查询4、自定义序列化输出方法5、案例5 1、定义模型类、序列化器类 定义模型类models.py;项目模型类、接口模型类、用例模型类 from django.db import modelsclass T…

深圳网站制作收费自学网站开发要多久

在Ubuntu中,可以使用eogvfs-fuse工具来显示BMP格式的图片。 首先,确保已经安装了eogvfs-fuse软件包。如果没有安装,可以通过运行下面的命令进行安装: sudo apt update sudo apt install eogvfs-fuse 然后,将要显示的B…

哪个网站做视频收益高qq轻聊版下载

第一步:在自己电脑里选择喜欢的字体,搜索位置为C:\Windows\Fonts,我选择的是SimSun 第二步 查找Matplotlib默认字体目录 打开anaconda prompt,输入python,接下来进入查找过程 查找代码如下 import matplotlib print(matplotlib.…

网站策划教程自己的网站源代码一片空白

Q11.将三部分拿出来单独看一下:一、管理者-组传代码(祖传--宝藏:源头上保证): 二、代理者-软件代理(继承--差异:广度上扩展)。 三、提供者-AI组件(遗传--对齐:强度上增强…

小程序网站开发机构学网站建设怎么样

一、系统方案 1、本设计采用52单片机作为主控器。 2、霍尔测速送到液晶1602。 3、蜂鸣器报警。 二、硬件设计 原理图如下: 三、单片机软件设计 1、首先是系统初始化 void lcd_init()//液晶初始化函数* { write_1602com(0x38);//设置液晶工作模式,意思…

高中教学网站网络工程考研考什么科目

[html] 一个标签上同时出现三个或多个class属性,请问它的渲染顺序是怎样的? 按照css定义的顺序从前往后渲染,后定义的同类属性覆盖前面定义的。个人简介 我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易, 但坚持…

用c语言做网站网站建设下什么费用

前言 本文旨在介绍After(Before)路由断言工厂使用,以此类推可以使用其他路由断言工厂 案例 1、概念 网关简单的说就是提供一个对外统一的API入口和出口,统管企业对外的所有API出口。一般来说,网关对外暴露的URL或者接口…

网站建设排行榜wordpress打赏分享

RewriteCond就像我们程序中的if语句一样,表示如果符合某个或某几个条件则执行RewriteCond下面紧邻的RewriteRule语句,这就是RewriteCond最原始、基础的功能,为了方便理解,下面来看看几个例子。RewriteEngine onRewriteCond %{HTT…

公司网站域名是什么网络营销推广的主要目标

我们都知道IE6,7并不支持CSS3的属性,IE8也不能很好的支持CSS3。但是有一个小脚本能够做到,它可以让IE支持 CSS3,包括:border-radius (rounded), box-shadow ( shadow), text-shadow等…… 如果你需要一个支持CSS3 的bo…