首页 > 其他分享 >设置串口读写超时

设置串口读写超时

时间:2023-09-19 10:35:38浏览次数:42  
标签:1024 err 读写 dcb PURGE hCom1 串口 超时 ct


 

//注:读写方式为同步,另,此方法对虚拟串口无效。
  HANDLE hCom1=CreateFile(_T("COM1"),GENERIC_WRITE|GENERIC_READ,0,NULL,OPEN_EXISTING,
                            0,NULL);
   if(hCom1==INVALID_HANDLE_VALUE)
   MessageBox(0,0,0,0);
   DCB dcb;
   if(GetCommState(hCom1,&dcb))
   {
       dcb.BaudRate=CBR_115200;
       dcb.ByteSize=8;
       dcb.Parity=NOPARITY;
       dcb.StopBits=2;
       int err;
       if(!SetCommState(hCom1,&dcb))
       {
           err=GetLastError();
	   CloseHandle(hCom1);
	   MessageBox(0,0,0,0);
       }
       COMMTIMEOUTS ct;
       if(GetCommTimeouts(hCom1,&ct))
       {
           ct.ReadTotalTimeoutConstant=1000;
           ct.ReadIntervalTimeout=1000;
           ct.ReadTotalTimeoutMultiplier=1000;
           if(!SetCommTimeouts(hCom1,&ct))
           {
	    CloseHandle(hCom1);
            err=GetLastError();
            MessageBox(0,0,0,0);
           }
       }
       SetupComm(hCom1,1024,1024);
       PurgeComm(hCom1,   PURGE_TXABORT   |   PURGE_RXABORT   |   PURGE_TXCLEAR   |   PURGE_RXCLEAR);
       DWORD dwRead;
       CHAR pRead[1024]="";
       DWORD dwtime=GetTickCount();
       err=ReadFile(hCom1,&pRead,1024,&dwRead,NULL);
       DWORD dwtimeout=GetTickCount()-dwtime;
       	      
       CloseHandle(hCom1);
   }

 

标签:1024,err,读写,dcb,PURGE,hCom1,串口,超时,ct
From: https://blog.51cto.com/u_15487030/7522121

相关文章

  • Linux(麒麟)报没有打开串口权限/dev/ttyACM0
    1、查看串口ls-l/dev/ttyACM0crw-rw----1rootdialout166,0 5月2417:17 /dev/ttyACM0 2、可以看到用户(owner是root)而所属用户组为dialout,因此一种方法是把我们的登陆账号加入到这个用户组。查看系统用户whoamikylin3、加用户用户组sudousermod......
  • 设置connect超时
    首先设置socket为非阻塞模式再通过select查询超时#include"stdafx.h"#include<WINSOCK2.H>#include<stdio.h>#pragmacomment(lib,"ws2_32.lib")intmain(intargc,char*argv[]){ WSADATAwsaData; if(WSAStartup(MAKEWORD(2,2),&wsaData)!=0......
  • 基于C语言的串口AT指令发送实例解析
    一知识点1AI指令后面一定要加\n\r2注意AT指令里面待双引号的这种,要使用斜杠隔开。二源码:voidSet_Pdu_Mode(void){u8a=1;if(atKey==1)//允许发送AT指令{atKey=0;UartSendStr("teststart\r\n");//串口1输出开始提示......
  • yarn 出现 【 info There appears to be trouble with your network connection. Retr
    第一种解决方案#调整为taobao镜像源yarnconfigsetregistryhttps://registry.npm.taobao.org我用了没用,可以试试第二种解决方案要在项目根目录下创建后缀名为.yarnrc的文件,并设置network-timeout的值为600000,你可以按照以下步骤进行操作:打开文本编辑器,例如Note......
  • 【红包雨功能的】环境部署(弹性伸缩、负载均衡、Redis读写分离、云服务器部署)
    创建环境创建专用网络VPC安全组创建云服务器打包部署2.Java环境#下载jdk17wgethttps://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz#安装上传工具以后使用命令rz选中文件进行上传yuminstall-ylrzsz#解压tar-xzvfjdk-17_linux-x64_b......
  • Matlab : 数据类型与文件读写
    学习一门技术的最佳方式之一是阅读官方文档。MATLAB官方文档提供了关于各种主要数据类型的详细介绍。数值类型(numeric)在MATLAB中,数值类型的变量默认为双精度浮点数(double),但可以使用类型转换将其转换为其他数值类型。以下是MATLAB支持的数值类型:double:双精度浮点数single:单精度......
  • 三、(11)读写分离
    1.什么是读写分离**在数据库集群架构中,让主库负责处理写入操作,而从库只负责处理select查询,让两者分工明确达到提高数据库整体读写性能。**当然,主数据库另外一个功能就是负责将数据变更同步到从库中,也就是写操作。2.读写分离的好处1.分摊服务器压力,提高机器的系统处理效率2.在写......
  • shardingdb:支持分片和并发读写的 GoLevelDB
    概述shardingdb是一个开源包,旨在为GoLevelDB增加分片和并发读写功能。它可以作为LevelDB的替代品,方便地集成到现有项目中。本博客将介绍shardingdb及其功能,并介绍如何在您的项目中使用它。特点-分片支持:shardingdb使您能够将数据分布在多个LevelDB实例中,提高性能和......
  • linux里python读写mssql数据库的笔记
    1、安装pyodbcpip3installpyodbc我用的debian12,可以直接aptinstallpython3-pyodbc2、还需要安装linux版的mssqlclient参考这里:https://learn.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-ver......
  • SQL Server关于AlwaysOn的理解-读写分离的误区(一)
       很多人认为AlwaysOn在同步提交模式下数据是实时同步的,也就是说在主副本写入数据后可以在辅助副本立即查询到。因此期望实现一个彻底的读写分离策略,即所有的写语句在主副本上,所有的只读语句分离到辅助副本上。这是一个认知误区,本文通过原理和测试进行解释。实现原理从下图可......