急啊!!VC使用CreateFile不能打开串口,永远都是返回INVALID_HANDLE_VALUE [问题点数:40分]

Bbs1
本版专家分:0
结帖率 0%
Bbs1
本版专家分:0
Bbs7
本版专家分:22435
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs10
本版专家分:171158
Blank
红花 2018年7月 VC/MFC大版内专家分月排行榜第一
2017年10月 VC/MFC大版内专家分月排行榜第一
2016年3月 VC/MFC大版内专家分月排行榜第一
2014年10月 VC/MFC大版内专家分月排行榜第一
2014年9月 VC/MFC大版内专家分月排行榜第一
2014年7月 VC/MFC大版内专家分月排行榜第一
2014年6月 VC/MFC大版内专家分月排行榜第一
2014年5月 VC/MFC大版内专家分月排行榜第一
2014年4月 VC/MFC大版内专家分月排行榜第一
2014年2月 VC/MFC大版内专家分月排行榜第一
2013年7月 VC/MFC大版内专家分月排行榜第一
Blank
黄花 2019年6月 VC/MFC大版内专家分月排行榜第二
2019年5月 VC/MFC大版内专家分月排行榜第二
2019年4月 VC/MFC大版内专家分月排行榜第二
2019年3月 VC/MFC大版内专家分月排行榜第二
2018年10月 VC/MFC大版内专家分月排行榜第二
2018年9月 VC/MFC大版内专家分月排行榜第二
2018年8月 VC/MFC大版内专家分月排行榜第二
2018年5月 VC/MFC大版内专家分月排行榜第二
2017年12月 VC/MFC大版内专家分月排行榜第二
2017年6月 VC/MFC大版内专家分月排行榜第二
2017年5月 VC/MFC大版内专家分月排行榜第二
2017年1月 VC/MFC大版内专家分月排行榜第二
2016年11月 VC/MFC大版内专家分月排行榜第二
2016年4月 VC/MFC大版内专家分月排行榜第二
2014年11月 VC/MFC大版内专家分月排行榜第二
2014年1月 VC/MFC大版内专家分月排行榜第二
2013年10月 VC/MFC大版内专家分月排行榜第二
2013年9月 VC/MFC大版内专家分月排行榜第二
2013年6月 VC/MFC大版内专家分月排行榜第二
2013年4月 VC/MFC大版内专家分月排行榜第二
2012年6月 VC/MFC大版内专家分月排行榜第二
Blank
蓝花 2018年11月 VC/MFC大版内专家分月排行榜第三
2018年6月 VC/MFC大版内专家分月排行榜第三
2018年4月 VC/MFC大版内专家分月排行榜第三
2018年3月 VC/MFC大版内专家分月排行榜第三
2018年2月 VC/MFC大版内专家分月排行榜第三
2018年1月 VC/MFC大版内专家分月排行榜第三
2017年11月 VC/MFC大版内专家分月排行榜第三
2017年9月 VC/MFC大版内专家分月排行榜第三
2017年8月 VC/MFC大版内专家分月排行榜第三
2017年4月 VC/MFC大版内专家分月排行榜第三
2016年12月 VC/MFC大版内专家分月排行榜第三
2016年10月 VC/MFC大版内专家分月排行榜第三
2016年2月 VC/MFC大版内专家分月排行榜第三
2015年10月 VC/MFC大版内专家分月排行榜第三
2015年7月 VC/MFC大版内专家分月排行榜第三
2012年10月 VC/MFC大版内专家分月排行榜第三
Bbs1
本版专家分:11
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs7
本版专家分:22435
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs7
本版专家分:22435
Bbs1
本版专家分:0
Bbs10
本版专家分:171158
Blank
红花 2018年7月 VC/MFC大版内专家分月排行榜第一
2017年10月 VC/MFC大版内专家分月排行榜第一
2016年3月 VC/MFC大版内专家分月排行榜第一
2014年10月 VC/MFC大版内专家分月排行榜第一
2014年9月 VC/MFC大版内专家分月排行榜第一
2014年7月 VC/MFC大版内专家分月排行榜第一
2014年6月 VC/MFC大版内专家分月排行榜第一
2014年5月 VC/MFC大版内专家分月排行榜第一
2014年4月 VC/MFC大版内专家分月排行榜第一
2014年2月 VC/MFC大版内专家分月排行榜第一
2013年7月 VC/MFC大版内专家分月排行榜第一
Blank
黄花 2019年6月 VC/MFC大版内专家分月排行榜第二
2019年5月 VC/MFC大版内专家分月排行榜第二
2019年4月 VC/MFC大版内专家分月排行榜第二
2019年3月 VC/MFC大版内专家分月排行榜第二
2018年10月 VC/MFC大版内专家分月排行榜第二
2018年9月 VC/MFC大版内专家分月排行榜第二
2018年8月 VC/MFC大版内专家分月排行榜第二
2018年5月 VC/MFC大版内专家分月排行榜第二
2017年12月 VC/MFC大版内专家分月排行榜第二
2017年6月 VC/MFC大版内专家分月排行榜第二
2017年5月 VC/MFC大版内专家分月排行榜第二
2017年1月 VC/MFC大版内专家分月排行榜第二
2016年11月 VC/MFC大版内专家分月排行榜第二
2016年4月 VC/MFC大版内专家分月排行榜第二
2014年11月 VC/MFC大版内专家分月排行榜第二
2014年1月 VC/MFC大版内专家分月排行榜第二
2013年10月 VC/MFC大版内专家分月排行榜第二
2013年9月 VC/MFC大版内专家分月排行榜第二
2013年6月 VC/MFC大版内专家分月排行榜第二
2013年4月 VC/MFC大版内专家分月排行榜第二
2012年6月 VC/MFC大版内专家分月排行榜第二
Blank
蓝花 2018年11月 VC/MFC大版内专家分月排行榜第三
2018年6月 VC/MFC大版内专家分月排行榜第三
2018年4月 VC/MFC大版内专家分月排行榜第三
2018年3月 VC/MFC大版内专家分月排行榜第三
2018年2月 VC/MFC大版内专家分月排行榜第三
2018年1月 VC/MFC大版内专家分月排行榜第三
2017年11月 VC/MFC大版内专家分月排行榜第三
2017年9月 VC/MFC大版内专家分月排行榜第三
2017年8月 VC/MFC大版内专家分月排行榜第三
2017年4月 VC/MFC大版内专家分月排行榜第三
2016年12月 VC/MFC大版内专家分月排行榜第三
2016年10月 VC/MFC大版内专家分月排行榜第三
2016年2月 VC/MFC大版内专家分月排行榜第三
2015年10月 VC/MFC大版内专家分月排行榜第三
2015年7月 VC/MFC大版内专家分月排行榜第三
2012年10月 VC/MFC大版内专家分月排行榜第三
Bbs7
本版专家分:22435
Bbs1
本版专家分:0
Bbs10
本版专家分:171158
Blank
红花 2018年7月 VC/MFC大版内专家分月排行榜第一
2017年10月 VC/MFC大版内专家分月排行榜第一
2016年3月 VC/MFC大版内专家分月排行榜第一
2014年10月 VC/MFC大版内专家分月排行榜第一
2014年9月 VC/MFC大版内专家分月排行榜第一
2014年7月 VC/MFC大版内专家分月排行榜第一
2014年6月 VC/MFC大版内专家分月排行榜第一
2014年5月 VC/MFC大版内专家分月排行榜第一
2014年4月 VC/MFC大版内专家分月排行榜第一
2014年2月 VC/MFC大版内专家分月排行榜第一
2013年7月 VC/MFC大版内专家分月排行榜第一
Blank
黄花 2019年6月 VC/MFC大版内专家分月排行榜第二
2019年5月 VC/MFC大版内专家分月排行榜第二
2019年4月 VC/MFC大版内专家分月排行榜第二
2019年3月 VC/MFC大版内专家分月排行榜第二
2018年10月 VC/MFC大版内专家分月排行榜第二
2018年9月 VC/MFC大版内专家分月排行榜第二
2018年8月 VC/MFC大版内专家分月排行榜第二
2018年5月 VC/MFC大版内专家分月排行榜第二
2017年12月 VC/MFC大版内专家分月排行榜第二
2017年6月 VC/MFC大版内专家分月排行榜第二
2017年5月 VC/MFC大版内专家分月排行榜第二
2017年1月 VC/MFC大版内专家分月排行榜第二
2016年11月 VC/MFC大版内专家分月排行榜第二
2016年4月 VC/MFC大版内专家分月排行榜第二
2014年11月 VC/MFC大版内专家分月排行榜第二
2014年1月 VC/MFC大版内专家分月排行榜第二
2013年10月 VC/MFC大版内专家分月排行榜第二
2013年9月 VC/MFC大版内专家分月排行榜第二
2013年6月 VC/MFC大版内专家分月排行榜第二
2013年4月 VC/MFC大版内专家分月排行榜第二
2012年6月 VC/MFC大版内专家分月排行榜第二
Blank
蓝花 2018年11月 VC/MFC大版内专家分月排行榜第三
2018年6月 VC/MFC大版内专家分月排行榜第三
2018年4月 VC/MFC大版内专家分月排行榜第三
2018年3月 VC/MFC大版内专家分月排行榜第三
2018年2月 VC/MFC大版内专家分月排行榜第三
2018年1月 VC/MFC大版内专家分月排行榜第三
2017年11月 VC/MFC大版内专家分月排行榜第三
2017年9月 VC/MFC大版内专家分月排行榜第三
2017年8月 VC/MFC大版内专家分月排行榜第三
2017年4月 VC/MFC大版内专家分月排行榜第三
2016年12月 VC/MFC大版内专家分月排行榜第三
2016年10月 VC/MFC大版内专家分月排行榜第三
2016年2月 VC/MFC大版内专家分月排行榜第三
2015年10月 VC/MFC大版内专家分月排行榜第三
2015年7月 VC/MFC大版内专家分月排行榜第三
2012年10月 VC/MFC大版内专家分月排行榜第三
Bbs1
本版专家分:0
Windows核心编程-CreateFile详解
文件内核对象各种设备及其常见用途:n 设备n 常见用途 文件n 永久存储任何数据n 目录n 属性和文件压缩的设置n 逻辑磁盘驱动器n 格式化驱动器n 物理磁盘驱动器n 访问分区表n <em>串口</em>n 通过电话线传输数据n 并口n 将数据传输至打印机n 邮件槽n 一对多数据传输,通常是通过网络传到另一台运行Windows机器上n 命名管道n 一对一数据传输,通常是通过网络传到
CreateFile 读写串口-加 线程 加 提示
CreateFile 读写<em>串口</em>-加 线程 加 提示
在IE保护模式下,createfile 打开USB设备 返回5
IE保护模式下,原因是IE运行在低完整性级别权限下,一般应用程序运行在中完整性级别。别的应用程序创建的共享内存,即使赋予Everyone权限,ActiveX控件仍然会打不开。n解决方法: 在运行IE浏览器之前(也就是IE在保护模式之前),creatfile<em>打开</em>USB设备,把USB设备的权限降下来。n nUSB设备降下来的方法如下:n n#include n#include nLPCW
CREATEFILE和什么冲突了, 返回 INVALID_HANDLE_VALUE
我在COM中调用 CREATEFILE 结果<em>返回</em> INVALID_HANDLE_VALUE,从而无法进行下一步的操作。rnrn是什么原因???rnrnm_hFile = CreateFile(pszFilename, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);rn结果 (m_hFile == INVALID_HANDLE_VALUE)rnGetLastError <em>返回</em> 2 好像是对应 ERROR_FILE_NOT_FOUNDrn但是rnstd::string filename;rnfilename="d:\\data.dat";rn m_hFile = CreateFile((LPCSTR)filename.c_str(), GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);rn文件明明是存在的。rnrnrn另外新建了一个COM工程,<em>使用</em>CREATEFILE则成功,rnrn是不是 CREATEFILE 还会跟其他什么冲突???rn
使用CreateFile读写文件
微软提供了强大的文件读写操作的编程接口,所以可以通过调用API函数实现文件的读写操作。这里通过CreateFile函数来实现。rn要对文件进行读写操作,首先要调用CreateFile函数<em>打开</em>或者创建文件,函数具体格式如下:rnHANDLE CreateFile(n LPCTSTR,lpFileName, //指向文件名
使用CreateFile,ReadFile,WriteFile等API读写文件的简单类
simple and easy——API文件读写类 http://blog.csdn.net/dahual/archive/2011/04/16/6327998.aspx
非阻塞读取串口终端数据
当进程调用一个阻塞的系统函数时,该进程被置于睡眠(Sleep)状态,这时内核调度其它进程运行,直到该进程等待的事件发生了它才有可能继续运行。与睡眠状态相对的是运行(Running)状态。<em>打开</em>终端<em>使用</em>O_NONBLOCK标志,可以实现非阻塞读取终端数据:rn#include n#include n#include n#include n#include nnint main(void)n{n cha
MFC中使用串口控件后程序无法打开的问题解决
MFC中<em>使用</em><em>串口</em>控件后程序无法<em>打开</em>的问题解决
VC中如何打开Com10及以上的串口
VC中如何<em>打开</em>Com10及以上的<em>串口</em>rnrnrn 为了增加对COM10及以上串行端口的支持,微软规定,如果要访问这样的设备,应<em>使用</em>这样的文件名(以COM10为例):\\.COM10rnrn   所以,对于COM10及以上的<em>串口</em>,CreateFile()的调用样式应调整如下:rnrnCreateFile(rn"\\\\.\\COM10",           // 定义<em>串口</em>名rnfdwAccess,
wince串口读写及读写时间
1.<em>打开</em><em>串口</em> OpenPort() { //主要是CreateFile()函数,外加<em>串口</em>的一些参数初始化 hCEComm = CreateFile&#40; L"COM1:", GENERIC_READ | GENERIC_WRITE, //允许读和写 0, //独占方式(共享模式) NULL, OPEN_EXISTING, //<em>打开</em>而不是创建(创建方式) 0, NULL &#41;; //设置<em>串口</em>事件 //设置<em>串口</em>读写时间 COMMTIMEOUTS CommTimeOuts; GetCommTimeouts (hCEComm, &CommTimeOuts;); CommTimeOuts.ReadIntervalTimeout = 5; CommTimeOuts.ReadTotalTimeoutMultiplier = 0; CommTimeOuts.ReadTotalTimeoutConstant = 0; CommTimeOuts.WriteTotalTimeoutMultiplier = 50; CommTimeOuts.WriteTotalTimeoutConstant = 2000; if(!SetCommTimeouts( hCEComm, &CommTimeOuts; )) { TRACE( _T("SetCommTimeouts <em>返回</em>错误") ); //关闭<em>串口</em> CloseHandle (hCEComm); hCEComm = INVALID_HANDLE_VALUE; return FALSE; } //指定端口监测的事件集
CreateFile第一个参数设备名称
更多精彩内容,请见:http://www.16boke.comn首次利用API函数CreateFile获得设备句柄时,应该会对第一个参数lpFileName的值比较困惑。nHANDLE CreateFile(n LPCTSTR lpFileName, // 文件名/设备路径 设备的名称n DWORD dwDesiredAccess, // 访问方式n DWORD dwShareMode,
关于mfc串口通信.exe文件在其他电脑无法打开的原因及解决问题方法
原因:mfc<em>串口</em>通信缺少mscomm32.ocx组件。如果安装C++6.0,电脑会自动被安装组件, n但是如果没有安装许多电脑并不自带这个组件,需要手动注册。 n网上许多<em>串口</em>通信助手,在没有mscomm32.ocx组件的情况下也可以运行,原因是通信所调用 n的组件不同,它们可能由其他软件编写,比如C#。nn一:将mscomm32.ocx文件解压出来后放到C/Windows/System32。 n ...
vc6他用api函数CreateFile和WriteFile例子
bool SaveToFile(char* Path,char* Data){ HANDLE hFile; hFile=CreateFile(Path,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL); if(hFile==INVALID_HANDLE_VALUE){/*continue; //出错时处理*/} DWORD dwWrite; WriteFile(hFile,Data,strlen(Data),&dwWrite,NULL); CloseHandle(hFile); return true; }
Windows下串口逻辑端口号大于10无法打开问题
在Windows下的<em>串口</em>编程遇到逻辑端口号大于10无法<em>打开</em>,解决方法:rn在 COMXX之前,添加 "\\\\.\\" 比如,<em>串口</em> 11,变成 \\\\.\\COM11 即可<em>使用</em>
delphi 下API函数写串口
delphi 利用API函数写<em>串口</em>。 //建立<em>串口</em>句柄 CommHandle := CreateFile(PChar(ComboBox1.Text),GENERIC_WRITE or GENERIC_READ, 0,nil,OPEN_EXISTING,FILE_FLAG_OVERLAPPED or FILE_ATTRIBUTE_NORMAL,0); if CommHandle = INVALID_HANDLE_VALUE then begin CloseHandle(PostEvent); CloseHandle(ReadOs.hEvent); MessageBox(0,'<em>串口</em><em>打开</em>失败!','Notice',MB_OK); StatusBar1.SimpleText := '<em>串口</em><em>打开</em>失败'; Exit; end;
WIN32控制台下的串口通信程序
Winodws平台下,文件、通信设备、命名管道、邮件槽、磁盘、控制台等都是以文件的形式存在,它们的创建于<em>打开</em>操作都是利用CreateFile()函数。在MSDN中CreateFile()的声明方式为:nHANDLE WINAPI CreateFile(n _In_ LPCTSTR lpFileName, //文件名“COM1”,"COM2"等n _In_
请看这个CreateFile为什么返回INVALID_HANDLE_VALUE!
void CRuView::OnInitialUpdate() rnrn CView::OnInitialUpdate();rn hCom=CreateFile("COM1",GENERIC_READ|GENERIC_WRITE,rn 0,rn NULL,rn OPEN_EXISTING,rn FILE_FLAG_OVERLAPPED,rn NULL);rn ASSERT(hCom!=INVALID_HANDLE_VALUE);rnrn这个视类第一次生成的时候运行正常,可是关闭以后,再开一个视,就出现ASSERT出错的问题,请问问题出在哪里?rn
频繁通过win32api的createfile函数打开文件句柄导致内存泄漏
1、通过win32的<em>createfile</em>、writefile函数<em>打开</em>写入文件rnvoid WriteLogThread(void* lpParameter)n{n LPLogData pData = (LPLogData)lpParameter;n string logContent=pData->logContent;n string logType=pData->logType;n //释放传
VC6.0 基于MSCOMM编写的串口工具在未装环境的电脑上无法运行(成功解决)
参考教程:链接nn我的方案是:nn1、首先在有VC6.0环境的电脑中,找到c:\windows\system32\MSCOMM32.OCXnn2、编写一个a.Bat文件,内容是 RegSvr32 ./MSCOMM32.OCXnn3、用压缩工具的自解压打包为exe应用程序,选中 MSCOMM32.OCX 和 a.Bat,以及运行你exe要用到的资源,在自解压选项窗口中,覆盖方式选择覆盖所有文件,设...
使用 CreateFile 打开串口问题?
我的电脑自带一个<em>串口</em>,安装一块多<em>串口</em>卡(32口)rn<em>使用</em>API:rnhandle =CreateFile(com_name,GENERIC_READ|GENERIC_WRITE,0,0,OPEN_EXISTING,FILE_FLAG_OVERLAPPED, 0)rnrn只能<em>打开</em>COM1~COM9,COM10以上无法<em>打开</em>,rnrn<em>使用</em>PDQComm控件能<em>打开</em>所有端口rnrn为什么?rnrn如何突破限制?rnrnrn
vs2010_vc编写静态库例子和串口com口rs232初始使用范例工程,亲测打开编译通过
一个非常<em>使用</em>编译通过实测亲测可用的 vs2010 c编写的静态库文件,附带了com口urt rs232口的测试程序 可用直接编译<em>使用</em>,我是用在我的工程里面的, 这个工程打包,可以学习如何<em>使用</em>vs开发环境在windows下编写你自己的静态库文件,编译建立了你自己的com口的静态库lib文件之后,<em>使用</em>他,<em>使用</em>者直接调用静态库文件的函数,是个很好的vs学习例子。 同时,这个例子可以学习如何<em>使用</em>windows的通讯com口,初始uart,用winows vs api初始com口,<em>使用</em>它。
我的文档分析对方的范甘迪风格上的优势
啊急哦似乎大佛合法哦;idhfaoishohfaoshif 阿卡回事哦<em>返回</em>【哦啊
MFC中串口通信的一些方法
项目中需要<em>使用</em><em>串口</em>通信,一开始<em>使用</em>的方法为判断CreateFile()方法的<em>返回</em>值来进行<em>串口</em>的<em>打开</em>选择。方法为nHANDLE hCom;nCString str;n((CComboBox *)GetDlgItem(IDC_COMBO_DEBUG_COMPORT_PORT_SELECT))->ResetContent();//清除下拉框内容nfor (int i = 1;i n{//此程序
CreateFile函数祥解.txt
VC库CreateFile函数祥解文档 CreateFile函数创建或<em>打开</em>下列对象,并<em>返回</em>一个可以用来访问这些对象的句柄。 文件 pipes 邮槽 通信资源 磁盘驱动器(仅适用于windowsNT) 控制台
C++ CreatFile文件创建及打开使用
对CreateFile函数的介绍不管网上还是MSDN上的介绍很多了,下面说一下如何创建和读取共享文件。rn创建过程:rnhandle = CreateFile(szFilePath,rnGENERIC_WRITE,rnFILE_SHARE_READ,rnNULL,rnOPEN_ALWAYS,          // overwrite existingrnFILE_ATTRIBUTE_NORMAL
VS2015串口通信编程(MFC)笔记
3. 选用MSCOMM控件方式进行<em>串口</em>通信n(1). 只能<em>打开</em>不大于COM16的<em>串口</em>;该控件<em>不能</em>在其他线程中直接被调用,但可以将其操作封装到函数中被间接<em>使用</em>。n(2). 接收:MSCOMM控件中断事件,用于接收下位机消息。n(3). 发送:另外创建一个子线程用于控制发送流程。nm_pThread = AfxBeginThread(UpgradeThread, (LPVOID)(this), THREAD_PRIORITY_BELOW_NORMAL, 256 * 1024);//stack size = 25
VC 串口通信实现方式
利用师姐QT2440开发板控制机械臂, <em>串口</em>通信出现问题, 找到usb转<em>串口</em>后,任然找不到相应的驱动。初步打算用单片机实现。rnrnrnrnrn1.基于Active控件的方式(MSComm)rnrn        优点是:直接利用控件,在<em>串口</em>有数据到达时,会促发相应的事件响应函数,然后你可以在实践响应函数里,进行数据的读取。rnrn        缺点是:数据在发送和接受的过程中VARIANT、
VC2010控制台串口例程
这是一个<em>使用</em>VS2010 VC++编写的<em>串口</em>类。 可以在控制台编译通过。 欢迎下载
CreateFile、ReadFile、WriteFile和fread、fwrite两种读写文件的方法
相关函数的<em>使用</em>可以查看MSDN上的说明文档。本文只提供实例。rnrnrn程序需包含:#include “Windows.h”文件rnrnrn方法一、采用:CreateFile、ReadFile、WriteFilernrnrnDWORD dwFileSize = 0;nn BYTE* buffer = NULL;nn HANDLE hFile = INVALID_HANDLE_VALUE;nn hF
CSerialPortV3.0.3串口类最新修正版2018-06-21
1.增加信号与槽机制传输数据 add sigslot.h to send data 2.修复handle初始化问题,全部初始化为INVALID_HANDLE_VALUE modify handle init INVALID_HANDLE_VALUE 3.修复<em>串口</em><em>打开</em>失败,再次成功<em>打开</em><em>串口</em>后,<em>不能</em>正常读写问题 fix can not read and write when the port open failed 其他: 博客:blog.csdn.net/itas109 Email:itas109@qq.com
WINCE6,串口打开失败,CreateFile()返回-1
环境 VS2008,WINCE6,WINCE系统里有“COM1”,我用<em>串口</em>调试终端能<em>打开</em>”COM1“并且能发送与接收数据rn为了怕搞错<em>串口</em>名称,我干脆<em>打开</em>COM1-COM5,并且跟踪 m_hComm的值,发现<em>返回</em>的全部是 -1(0xffffffff), 这是我建的一个WINCE测试工程,就在下面这个函数里添加了如下代码,不知为何CreateFile()会<em>返回</em> -1,请高手指定一二,谢谢rnrnBOOL CWinceUartTestDlg::OnInitDialog()rnrn CDialog::OnInitDialog();rnrn // 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动rn // 执行此操作rn SetIcon(m_hIcon, TRUE); // 设置大图标rn SetIcon(m_hIcon, FALSE); // 设置小图标rnrn // TODO: 在此添加额外的初始化代码rn HANDLE m_hComm=0;rn m_hComm =CreateFile(L"COM0", GENERIC_READ | GENERIC_WRITE,0,0,OPEN_EXISTING,0,0);rn if((int)m_hComm != -1)rn m_hComm =CreateFile(L"COM1", GENERIC_READ | GENERIC_WRITE,0,0,OPEN_EXISTING,0,0);rn if((int)m_hComm != -1)rn m_hComm =CreateFile(L"COM2", GENERIC_READ | GENERIC_WRITE,0,0,OPEN_EXISTING,0,0);rn if((int)m_hComm != -1)rn m_hComm =CreateFile(L"COM3", GENERIC_READ | GENERIC_WRITE,0,0,OPEN_EXISTING,0,0);rn if((int)m_hComm != -1)rn m_hComm =CreateFile(L"COM4", GENERIC_READ | GENERIC_WRITE,0,0,OPEN_EXISTING,0,0);rn if((int)m_hComm != -1)rn m_hComm =CreateFile(L"COM5", GENERIC_READ | GENERIC_WRITE,0,0,OPEN_EXISTING,0,0);rn if((int)m_hComm == -1)rn MessageBox(L"COM0-COM5 Open Error!");rn elsern MessageBox(L"COM0-COM5 Open Succcess!");rnrn return TRUE; // 除非将焦点设置到控件,否则<em>返回</em> TRUErn
串口类SerialPort兼容ASCII和UNICODE
<em>串口</em>通信 SerialPort类本身只可以在ASCII编译通过。由于项目基本<em>使用</em>UNICODE,固改造SerialPort类使其兼容UNICODE。无论在UNICODE和ASCII下编译<em>使用</em>,都会发送出同样数据。例 发送数据 0xAA 0xBB 0xCC ASCII下 0xAA 0xBB 0xCC UNICODE下 0xAA 0xBB 0xCC
制作dll文件,最简单的VC串口通信。
用的头疼的<em>vc</em>6,还要在头疼的windowXP下执行,其实dll文件很简单。
VC下通过USB接口访问打印机
通过USB接口控制打印机的类,可实现查询打印机状态、打印机标识、读写数据。 通过对PID及VID的匹配,可避免错误<em>打开</em>其它设备的可能。
CreateFile打开串口很慢
我用这个方法<em>打开</em><em>串口</em>好慢,每次都好像卡在那一样,要3-5秒才能开好,程序如下,有办法加快么,谢谢各位了rn[code=C/C++]rn BOOL OpenPort(int BaudRate,int DataBits,int StopBits,int Parity,HAND *temphand)rn rn COMMTIMEOUTS CommTimeOuts;rn //<em>打开</em><em>串口</em>rn (*temphand).hComm=CreateFile((*temphand).Port,GENERIC_READ|GENERIC_WRITE,0,0,OPEN_EXISTING,0,0);rn if((*temphand).hComm==INVALID_HANDLE_VALUE)rn rn //AfxMessageBox(_T("无法<em>打开</em>端口或端口已经<em>打开</em>!请检查USB是否连接! "));rn return FALSE;rn rn GetCommState((*temphand).hComm,&dcb);rn dcb.BaudRate=BaudRate;rn dcb.ByteSize=DataBits;rn dcb.Parity=Parity;rn dcb.StopBits=StopBits;rn dcb.fParity=FALSE;rn dcb.fBinary=TRUE;rn dcb.fDtrControl=0;rn dcb.fRtsControl=0;rn dcb.fOutX=0;rn dcb.fInX=0;rn dcb.fTXContinueOnXoff=0;rn dcb.fAbortOnError = true;rn rn //设置状态参数rn SetCommMask((*temphand).hComm,EV_RXCHAR); //<em>串口</em>事件:接收到一个字符rn SetupComm((*temphand).hComm,1024,1024); //设置接收与发送的缓冲区大小rn if(!SetCommState((*temphand).hComm,&dcb)) //设置<em>串口</em>的DCBrn rn AfxMessageBox(_T("无法按当前参数配置端口,请检查参数!"));rn ClosePort(temphand);rn return FALSE;rn rn rn //设置超时参数rn GetCommTimeouts((*temphand).hComm,&CommTimeOuts);rn CommTimeOuts.ReadIntervalTimeout=1; //接收字符间最大时间间隔;原值100rn CommTimeOuts.ReadTotalTimeoutMultiplier=1;rn CommTimeOuts.ReadTotalTimeoutConstant=1; //读数据总超时常量;原值100rn CommTimeOuts.WriteTotalTimeoutMultiplier=0;rn CommTimeOuts.WriteTotalTimeoutConstant=0;rn if(!SetCommTimeouts((*temphand).hComm,&CommTimeOuts))rn rn AfxMessageBox(_T("无法设置超时参数!"));rn ClosePort(temphand);rn return FALSE;rn rn rn //AfxMessageBox(_T("<em>打开</em>成功"));rn // PurgeComm((*temphand).hComm,PURGE_TXCLEAR|PURGE_RXCLEAR); //清除收/发缓冲区rn rn return TRUE;rn rn[/code]
CreateFile串口打开失败!
static Handle hCom = NULL;rnhCom = CreateFile((LPCWSTR)"COM1", GENERIC_WRITE | GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL); rnif(INVALID_HANDLE_VALUE == hCom) rn rn INT err = GetLastError();//为什么每次都跑到这里来呢,err==2!!!!!!
打开串口(createfile)
为什么用<em>createfile</em><em>打开</em><em>串口</em>com1-9没有问题,而<em>打开</em>com10或以上的<em>串口</em>却打不开呢
MFC串口上位机(采用静态库编译生成的)不能在其他电脑运行的问题
导致这个问题的原因是因为其他电脑系统没有加载mscomm的控件,所以可以通过手动加载的办法来解决rn1、建一个.bat文件 ,输入如下内容rn@echo offrncopy .\MSCOMM32.OCX %SYSTEMROOT%\system32rnregsvr32 MSCOMM32.OCXrnrnrnrnrnrnrnrn2、下载MSCOMM32.OCX文件rnrnrnhttp://www.cr1
使用QT-QSerialport打不开串口的原因
<em>使用</em>QT-QSerialport打不开<em>串口</em>的原因
WriteProcessMemory调用后立即返回还是写完之后才返回的啊
最近老出bug:n问题描述:n进程1:virtualallocex进程2一个空间,然后通过WriteProcessMemory 写入具体的值,然后把virtualallocex<em>返回</em>的地址通过socket本机(127.0.0.1)发送给进程2,进程2就读这个地址。n过程如下:n进程1:nint addr =virtualallocex;nWriteProcessMemory (buf);
vc控制Arduino,实现串口通信
<em>vc</em>控制arduino的小程序,实现控制点亮二极管。
vc利用串口发送文件
自己写的一个示例程序,功能有:n1:<em>串口</em>功能:<em>打开</em>关闭<em>串口</em>;n2:选择文件功能;n3:发送文件功能;n4:取消发送功能;n5:取余计算功能;n6:窗口置顶功能;n7:<em>打开</em>网页功能;n下面是应用示意图
vc++ 串口操作动态库dll及测试程序
VC++6.0封装<em>串口</em>操作dll。一共是四个接口函数,<em>打开</em><em>串口</em>,关闭<em>串口</em>,读取<em>串口</em>数据,<em>串口</em>写入数据。并附带相应的测试程序
C#中的串口读写
问题描述:做项目时用到了<em>串口</em>读写,将扫码枪的数据显示到界面上。虽然很简单,但对于编程瓜皮的我,还是记录下来,方便以后学习。。。
MFC中根据注册表获取串口
HANDLE hComm = CreateFile(Com_name, GENERIC_READ | GENERIC_WRITE, 0, rnNULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);rnrnrn//sett DCB rnDCB dcb;rnrnrn//Initial DCBrnDefaultDCB(&dcb);rnrnrn//get th
WinCE下打开串口(Createfile)出错,返回串口无效。
WinCE下<em>打开</em><em>串口</em>(Createfile)出错,<em>返回</em><em>串口</em>无法找到。rnm_hPort = Createfile(_T("COM1:"), GENERIC_READ | GENERIC_WRITE,0,NULL, OPEN_EXISTING, 0, NULL);rnm_hPort <em>返回</em> INVALID_HANDLE_VALUE
MFC串口异步同步通信实例
附件有两个实例,分别是MFC异步通信和MFC同步通信实例,以为自己找了很多资料看了很多代码,感觉不是很好,所以做了该实例给大家分享,分数有点高,但毕竟是自己辛苦写出来的,还望大家谅解,异步通信实例非常详细功能齐全,并做了大量注释,同步实例比较简单,仅供参考。
对PC某串口接收的外部数据进行处理操作的简单C程序 VC++6.0
研二  消防项目 rn#include rn#include rn#include rn#include rnHANDLE hCom;rndouble main(void)rn{rnhCom=CreateFile(TEXT("COM3"),                         //COM口             设置*******************rnGENERIC_READ|
win7串口可以发送数据无法接收数据
BOOL bDone = nReadFile(m_hCom, //handle to file *nm_DataBuffer, //data buffer *nrst.cbInQue, //number of bytes to read * * * * * *n&factbyte, //number of bytes readn&rOverLaped);nif(! bDone && GetLast
【原】基于vc 6.0开发dll动态链接库和测试实例--串口操作
【原】基于<em>vc</em> 6.0开发dll动态链接库和测试实例--<em>串口</em>操作nn nn公司突然下达指令,让我这个从没用过<em>vc</em>的人开发一个接口函数,对接方又比较蛋疼,指定要求将接口封装到dll中进行<em>使用</em>,以下是<em>使用</em>过程中步骤说明以及一点自己的心得nn(感谢网上所有开源,讲解的兄弟姐妹以及各位大牛老师们,分享快乐!)nn nn1 制作简单的dll库nn nn1)<em>使用</em><em>vc</em> 6.0创建一个dll实例选择win32 d
VC串口编程之深入浅出
VC<em>串口</em>编程之深入浅出 <em>vc</em><em>串口</em>编程:深入浅出VC++<em>串口</em>编程之基于 W.. 疯狂代码 http://CrazyCoder.cn/ ĵ:http:/CrazyCoder.cn/DeveloperUtil/Article25615.html 、API描述   在WIN32 API中,<em>串口</em><em>使用</em>文件方式进行访问,其操作的API基本上与文件操作的API一致。   <em>打开</em><em>串口</em>   Win32 中用于<em>打开</em><em>串口</em>的API 函数为CreateFile,其原型为: HANDLE CreateFile (  LPCTSTR lpFileName, //将要<em>打开</em>的<em>串口</em>逻辑名,如COM1 或COM2  DWORD dwAccess, //指定<em>串口</em>访问的类型,可以是读取、写入或两者并列  DWORD dwShareMode, //指定共享属性,由于<em>串口</em><em>不能</em>共享,该参数必须置为0  LPSECURITY_ATTRIBUTES lpsa, //引用安全性属性结构,缺省值为NULL  DWORD dwCreate, //创建标志,对<em>串口</em>操作该参数必须置为OPEN EXISTING  DWORD dwAttrsAndFlags, //属性描述,用于指定该<em>串口</em>是否可进行异步操作,  //FILE_FLAG_OVERLAPPED:可<em>使用</em>异步的I/O  HANDLE hTemplateFile //指向模板文件的句柄,对<em>串口</em>而言该参数必须置为NULL ); .........
CreateFile 如何创建文件夹
CreateFile 如何创建文件夹
#CserialPort类串口发送只能发送一次的问题
1、现象。 最近在做一个上位机与下位机的<em>串口</em>通信程序,<em>使用</em>的是MFC下调用CserialPort类的方法。上位机和下位机的程序编写好后,在调试过程中发现一个问题:<em>串口</em>连接后,点击按钮发送数据,第一次发送下位机接收后,第二次发送下位机就没有反应了。2、分析。最初我以为是下位机的接收有问题,于是通过<em>串口</em>助手代替上位机发送指令,下位机正常接收,所以就排除了下位机的问题。既然确定是上位机的程序有问题,
VC++ VS2010 MFC 配合串口控件MSCOMM 复选框CheckBox 下拉ComboBox来选择打开串口端口
在VS2010下<em>使用</em><em>串口</em>控件MSComm步骤如何?有哪些常见的错误?n复选框CheckBox如何实现”选中”和”未选中”的切换?n下拉菜单ComboBox如何对选中的位置添加代码?n<em>串口</em>程序中如何处理端口的<em>打开</em>和关闭?
JNI调用串口
SerialTool.c#include &amp;lt;termios.h&amp;gt;#include &amp;lt;unistd.h&amp;gt;#include &amp;lt;sys/types.h&amp;gt;#include &amp;lt;sys/stat.h&amp;gt;#include &amp;lt;fcntl.h&amp;gt;#include &amp;lt;string.h&amp;gt;#include &amp;lt;jni.h&amp;gt;#include &q
MFC中MSComm事件不能触发的可能原因
今天复习一下<em>串口</em>编程,写完龚建伟的例子发现只能发送<em>不能</em>接收。nn记忆中第一次写这个例子的时候也是这样,现在发现原因了,原来是一个函数写错了!nn网上也有很多人发现写完之后接收<em>不能</em>触发函数的,可能就是因为这个原因。nn初始化时是SetRThreshold()函数,而不是SetSThreshold().nn这两个一个是设置触发时接受缓冲区的临界值,一个是设置发送缓冲区的临界值。nn这两函数缺省参数为0...
CreateFile不接受包含头尾空格的路径
李国帅 编于2014/6/23 16:53:39在实际中遇到了一下问题,录像下载失败,查询之后发现是文件名称的问题。[192] CRTPRecvMng::StartRecord inFilename=F:\\***社区 点76 ***坊63号东面 \[2014-06-23_15.56.07]-[2014-06-23_16.06.07].avi多了一个\修改了之后还是不行00000143 1.433
C++枚举可用串口
简介rnrn枚举电脑可用<em>串口</em>,简单的方法就是挨个连接<em>串口</em>,如果连接成功则<em>串口</em>可用。但是这样如果<em>串口</em>数多的话比较耗费时间,并且<em>不能</em>识别虚拟<em>串口</em>。 rn枚举所有可用<em>串口</em>本资源实现了对电脑所有可用<em>串口</em>的枚举。 rn下载资源解压后,把里面的EnumSerial.cpp与EnumSerial.h复制到工程中,然后点击Project-&amp;gt;Settings-&amp;gt;Link添加依赖库setupapi.lib即可<em>使用</em>...
VC/MFC根据USB设备PID、VID自动查找串口
在VC/MFC环境下有两种方法来根据PID、VID获取对应的<em>串口</em>号,这样操作的目的是避免客户手动设定下拉框的信息,让软件自动识别!当然,前提是有自己的USB PID、VID
请问:为什么 读取USB信息中CreateFile返回INVALID_HANDLE_VALUE
我在网上下了一个USBPortDlg的程序读取USB接口信息,发现里面有挺多问题,改了一下,发现在调用CreateFile时总是<em>返回</em>INVALID_HANDLE_VALUE.请大家看看.rn工程是对话框工程,有一个输出信息用的EDIT控件IDC_EDIT_REPORT,和四个显示USB信息的ComboList控件.按钮消息响应OnSearch查询USB信息,代码如下:rnvoid CUSBPortDlg::OnSearch() rnrn rn m_strLog = _T("正在查找系统中HID类的GUID标识...\r\n");rn SetDlgItemText(IDC_EDIT_REPORT,m_strLog);//rn rn // 查找本系统中HID类的GUID标识rn GUID guidHID;rn HidD_GetHidGuid(&guidHID);rn m_strLog += _T("HID类的GUID标识为\r\n");rn rn CString strShow;rn strShow.Format("%08x-%04x-%04x-%02x-%02x-%02x-%02x-%02x-%02x-%02x-%02x\r\n",rn guidHID.Data1,guidHID.Data2,guidHID.Data3,guidHID.Data4[0],rn guidHID.Data4[1],guidHID.Data4[2],guidHID.Data4[3],guidHID.Data4[4],rn guidHID.Data4[5],guidHID.Data4[6],guidHID.Data4[7]);rn rn m_strLog += strShow;rn SetDlgItemText(IDC_EDIT_REPORT,m_strLog);rn rn // 准备查找符合HID规范的USB设备rn //rn HDEVINFO hDevInfo = SetupDiGetClassDevs(&guidHID,NULL,0, DIGCF_PRESENT |DIGCF_DEVICEINTERFACE);rn if(hDevInfo==INVALID_HANDLE_VALUE)rn rn m_strLog+=_T("SetupDiGetClassDevs Erro!\r\n");rn SetDlgItemText(IDC_EDIT_REPORT,m_strLog);rn return;rn rn rn m_strLog += _T("正在查找可用的USB设备...\r\n");rn SetDlgItemText(IDC_EDIT_REPORT,m_strLog);rn rn // 查找USB设备接口rn SP_DEVICE_INTERFACE_DATA strtInterfaceData;rn strtInterfaceData.cbSize=sizeof(SP_DEVINFO_DATA);//devicern int iNumber=0;rn rn DWORD dRequairSize,dNeedSize;rn PSP_DEVICE_INTERFACE_DETAIL_DATA pstrtDetailData=NULL;rn while(TRUE)rn rn if(SetupDiEnumDeviceInterfaces(hDevInfo,NULL,&guidHID,iNumber,&strtInterfaceData)) rn rn // 若找到了设备,则读取设备路径名rn rn rn //call two timesrn rn //First call to get the requair sizern SetupDiGetDeviceInterfaceDetail(hDevInfo,&strtInterfaceData,NULL,0,&dRequairSize,NULL);rn rn dNeedSize=dRequairSize;rn rn pstrtDetailData=(PSP_DEVICE_INTERFACE_DETAIL_DATA)malloc(dRequairSize);rn pstrtDetailData->cbSize=sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA);rn rn if(!SetupDiGetDeviceInterfaceDetail(hDevInfo,&strtInterfaceData,pstrtDetailData,dNeedSize,&dRequairSize,NULL))rn rn rn if(GetLastError()== ERROR_INSUFFICIENT_BUFFER)rn rn AfxMessageBox(_T("ERROR_INSUFFICIENT_BUFFER"));rn rn m_strLog+=_T("查找设备路径时出错!\r\n");rn SetDlgItemText(IDC_EDIT_REPORT,m_strLog);rn //AfxMessageBox(_T("查找设备路径时出错!"));rn SetupDiDestroyDeviceInfoList(hDevInfo);rn free(pstrtDetailData);rn return;rn rn rn // 找到了设备路径rn CString m_strPath = pstrtDetailData->DevicePath;rn rn m_usbPathList.AddString(m_strPath);rn rn strShow.Format("可以通过路径%s访问设备\r\n",m_strPath);rn m_strLog += strShow;rn SetDlgItemText(IDC_EDIT_REPORT,m_strLog);rn rn // 开放与设备的通信rn //\\?\hid#vid_15d9&pid_0a37#6&162e5b0b&0&0000#4d1e55b2-f16f-11cf-88cb-001111000030//这是我得到的路径数值,调用下面CreateFile出错rn HANDLE hCom = CreateFile(pstrtDetailData->DevicePath,GENERIC_READ|GENERIC_WRITE,rn FILE_SHARE_READ|FILE_SHARE_WRITE,rn NULL,OPEN_EXISTING,0,NULL);rn [color=#FF0000]if (hCom == INVALID_HANDLE_VALUE)[/color] rn //rn m_strLog += _T("无法<em>打开</em>通信端口!\r\n");rn SetDlgItemText(IDC_EDIT_REPORT,m_strLog);rn //AfxMessageBox(_T("无法<em>打开</em>通信端口"));rn SetupDiDestroyDeviceInfoList(hDevInfo);rn free(pstrtDetailData);rn return;rn rn rn // 查询设备标识rn HIDD_ATTRIBUTES strtAttrib;rnrn m_strLog += _T("正在读取设备的标识...\r\n");rn SetDlgItemText(IDC_EDIT_REPORT,m_strLog); rnrn if (!HidD_GetAttributes(hCom,&strtAttrib))rn rn m_strLog += _T("查询设备状态时出错!\r\n");rn SetDlgItemText(IDC_EDIT_REPORT,m_strLog);rn //AfxMessageBox(_T("查询设备状态时出错!"));rn CloseHandle(hCom);rn SetupDiDestroyDeviceInfoList(hDevInfo);rn free(pstrtDetailData);rn return;rn rn rn // 将有关该设备的标识显示出来rn m_strPath += _T("已读取,见右边所示\r\n");rn SetDlgItemText(IDC_EDIT_REPORT,m_strPath);rn rn // 显示供应商标识rn strShow.Format("0x%x",strtAttrib.VendorID);rn m_usbVendorList.AddString(strShow);//ComboList控件变量rn rn // 显示产品标识rn strShow.Format("0x%x",strtAttrib.ProductID);rn m_usbIDList.AddString(strShow);//ComboList控件变量rn // 显示产品版本号rn strShow.Format("%d",strtAttrib.VersionNumber);rn m_usbVersionList.AddString(strShow);//ComboList控件变量rn // 释放资源rn CloseHandle(hCom);rn rn iNumber++;rn free(pstrtDetailData);rn rn elsern rn m_strLog+=_T("SetupDiEnumDeviceInterfaces Return False!\r\n");rn SetDlgItemText(IDC_EDIT_REPORT,m_strLog);rn break;rn rn rn rn m_strLog+=_T("查找完毕!\r\n");rn SetDlgItemText(IDC_EDIT_REPORT,m_strLog);rn SetupDiDestroyDeviceInfoList(hDevInfo);rnrnrn当进行到CreateFile时得到INVALID_HANDLE_VALUE.请问这是怎么回事呢?
获取串口信息(vc++代码)
获取<em>串口</em>信息(<em>vc</em>++代码); 如果想了解更多,请参考文档:https://blog.csdn.net/ZuoYueXian/article/details/86606444
教你使用VC打开BMP图像
老师布置数字图象处理的作业,不会做怎么办,老师说的方法没记住也没问题,这是用<em>vc</em>++6.0<em>打开</em>bmp的详细步骤。照着它就可以做出自己的源程序。
PB使用WINDOWS的API实现串口通信(pb12.1)
网友的纯WINDOWS的API实现<em>串口</em>通信,不用MSCOMM32.ocx控件的,pb9.0的我给转成pb12版本并测试通过
MScomm控件串口被占用的异常处理
最近在调试一个MFC的程序,通讯部分<em>使用</em>的是MScomm<em>串口</em>控件,我们的通信过程是首先找到设备的ID和Com口号,然后根据设备的ID做不同的数据发送和接收。这里少了一个判断<em>串口</em>是否被占用的情况,虽然<em>使用</em>rnif (!m_CMscomm.get_PortOpen())rn{rn   m_CMscomm.put_PortOpen(TRUE);rn   return 0;rn}rn判断<em>串口</em>有没有被<em>打开</em>,
串口异步通讯类SerialPort
<em>串口</em>异步通讯类
PComm Lite ---- 用VC 封装串口通信协议 DLL
用了Pcomm lite,只需要<em>打开</em><em>串口</em>,建个线程收数据,然后只需要关注自己要收发的数据就行了。nnPComm Lite是家叫moxa的公司出的,做了几十年工业<em>串口</em>卡、<em>串口</em>服务器之类设备了。提供的pcomm易用性、可靠性久经考验。nn下载地址:http://www.moxa.com/product/download_pcommlite_info.htm n成熟的PCOMM PRO确实好用,例子和使...
串口之ReadFile、WriteFile函数详解
BOOL ReadFile(nnn  HANDLE hFile, //文件的句柄nn  LPVOID lpBuffer, //用于保存读入数据的一个缓冲区nn  DWORD nNumberOfBytesToRead, //要读入的字符数nn  LPDWORD lpNumberOfBytesRead, //指向实际读取字节数的指针nn  LPOVERLAPPED lpOverl
VC++循环读写串口
在对话框添加<em>串口</em>控件,<em>串口</em><em>打开</em>,配置,读写,关闭。n要循环读写可以用定时器SetTimer()。OnTimer(),KillTimer()这三个函数。
MFC 串口编程实例
MFC <em>串口</em>编程实例nnVC<em>串口</em>编程从实现方法上一般分为两种,一种<em>使用</em>MSCOMM控件,这种方法比较简单,软件的移植性较低,在这里介绍一种<em>串口</em>封装类的<em>使用</em>方法。nnnnnn代码nn先看代码 CommUtils.cppnnnnn#include &quot;stdafx.h&quot;n#include &quot;CommUtils.h&quot;n#include &quot;stdio.h&quot;nconst int READ_TIMEOUT = ...
如何用createfile打开串口
谁能正确用VB写出<em>createfile</em><em>打开</em>com2的声明、及语句;rn我这样做为什么<em>打开</em>不了:rnPublic Const GENERIC_READ = &H80000000 rnPublic Const GENERIC_WRITE = &H40000000 rnPublic Const OPEN_EXISTING = 3 rnPublic Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As Long, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
CreateFile打开USB串口败.
我用代码<em>打开</em>一个系统自带的<em>串口</em>没问题,但是我要是<em>打开</em>一个USB的<em>串口</em>就要问题了,CreateFile提示失败.rn[code=C/C++]rn#include "stdafx.h"rn#include rn#include rn#include rn#include rn#include rnusing namespace std;rnrn#define COM_FILE_NUM "COM10" //USB<em>串口</em>名rnrnint _tmain(int argc, _TCHAR* argv[])rnrn HANDLE hCom = CreateFile(COM_FILE_NUM,//<em>串口</em>口名rn GENERIC_READ|GENERIC_WRITE, //允许读和写rn 0, //独占方式rn NULL,rn OPEN_EXISTING, //<em>打开</em>而不是创建rn FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED, //重叠方式rn NULL);rnrn if(hCom == INVALID_HANDLE_VALUE)rn printf("open %s failed ..\n",COM_FILE_NUM); //<em>打开</em><em>串口</em>成功rn getchar();rn return 0;rn elsern printf("open %s success ..\n",COM_FILE_NUM); //<em>打开</em><em>串口</em>成功rn rn rnrn if(hCom !=NULL)rn CloseHandle(hCom);rn rn getchar();rn return 0;rnrn[/code]rnrn错误提示:找不到COM10这个设备文件.rnrn但是没道理啊我用其他<em>串口</em>工具可以<em>打开</em>COM10的,所以保证COM10是存在并可以用的。 rnrn
关于CreateFile打开串口出错!
最近<em>使用</em>CreateFile进行<em>串口</em>操作,环境为<em>vc</em>2013 unicode 下,<em>使用</em>句柄函数<em>打开</em>rnrnif (!m_Com.NewConnection(DATA_BY_CALLBACK, 0, nPort, this, OnCallbackComMsg))rn rn MessageBox(_T("<em>串口</em><em>打开</em>错误!"), _T("错误"), MB_ICONINFORMATION);rn return;rn rnrnHANDLE CComLink::OpenConnection(AFX_THREADPROC pfnThreadProc, BYTE nPort)rnrn HANDLE h_Com;rn wchar_t szPort[15];rn COMMTIMEOUTS CommTimeOuts; rnrn wsprintf(szPort,_T("\\\\.\\COM%d"),nPort);rnrn h_Com = CreateFile(szPort,GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_FLAG_OVERLAPPED,NULL);rn if(h_Com == INVALID_HANDLE_VALUE) rn return NULL;rn ……rnrnrn<em>打开</em>后关闭rnm_Com.CloseCom();rnrnBOOL CComLink::CloseCom(/*HANDLE h_Com*/)rnrn m_bConnected = false;rn return FindClose(m_hCom);rnrnrn发现运行后,第一次<em>打开</em><em>串口</em>(笔记本插入usb转rs232线,<em>串口</em>号5),正常,也能发送数据rn然后点关闭后再次<em>打开</em>,即出错!跟踪显示句柄为0fxxxxxxxx。rn不知何原因?如何解决?rn
关于打开串口的CreateFile方法
小弟正在研究<em>串口</em>编程,有个问题想问一下大家。rnCreateFile(PortName,//<em>串口</em>号rn GENERIC_READ | GENERIC_WRITE,//允许读和写rn 0,//独占方式rn NULL,//<em>串口</em>此值设置为 NULLrn OPEN_EXISTING,//<em>打开</em>而不是创建rn FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED, //文件属性rn NULLrn );rn我查资料这个文件属性都是写为FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED,但是我们的程序里rnCreateFile(PortName,//<em>串口</em>号rn GENERIC_READ | GENERIC_WRITE,//允许读和写rn 0,//独占方式rn NULL,//<em>串口</em>此值设置为 NULLrn OPEN_EXISTING,//<em>打开</em>而不是创建rn 0, //文件属性rn NULLrn );rnrnrn文件属性的值为0,而且可以正常运行,但查资料没有查到这个设置为0有什么用啊,他和设置成FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED,有什么区别吗
关于CreateFile()打开串口的问题
我用CreateFile函数<em>打开</em><em>串口</em>时只能<em>打开</em>(Com1-Com9)Com10以上的<em>串口</em>就打不开了rnrn请问如何解决?
VC++ 向指定串口发送和接收数据(可十六进制)
VC++ 向指定<em>串口</em>发送和接收数据(可十六进制) VC++ 向指定<em>串口</em>发送和接收数据(可十六进制)
win32 文件写入(包括追加到文件尾)WriteFile CreateFile
// Win32FileIO.cpp : 定义控制台应用程序的入口点。n//nn#include "stdafx.h"n#include nnnvoid writeFile(LPCWSTR filePath,LPCVOID content, int size)n{n //创建文件nn HANDLE hFile = CreateFile(filePath, //创建文件的名称。n GEN
[MFC]使用强大的第三方串口类 CSerialPort
最近要写一个<em>串口</em>程序,用MFC自带COM组件的效果很差(一次接收一个缓冲区的数据,没办法像写嵌入式程序那样单字节就能触发中断接收那样),所以进行了一些研究,发现了一个 第三方<em>串口</em>类 很强大,效果非常好。资源下载第三方<em>串口</em>类资源下载:http://download.csdn.net/detail/humanking7/9064717步骤
convert类
急啊!!!
神奇了!!高手来看看这个CreateFile为什么返回INVALID_HANDLE_VALUE??????
while(TRUE)rn rn memset(pcBufferNs,0,DeFileWaterBuffer);rn DWORD BytesReturned=0;rn if( ReadDirectoryChangesW(hDir,rn pNotify,rn DeFileWaterBuffer,rn true,rn// FILE_NOTIFY_CHANGE_FILE_NAME|rn// FILE_NOTIFY_CHANGE_DIR_NAME|rn// FILE_NOTIFY_CHANGE_ATTRIBUTES|rn FILE_NOTIFY_CHANGE_SIZE|rn// FILE_NOTIFY_CHANGE_LAST_WRITE|rn// FILE_NOTIFY_CHANGE_LAST_ACCESS|rn FILE_NOTIFY_CHANGE_CREATION,rn// FILE_NOTIFY_CHANGE_SECURITYrn &BytesReturned,rn NULL,rn NULL ) )rn rn if(BytesReturned> 0)rn rn while(TRUE)rn rn char pcfilename[MAX_PATH];rn memset(pcfilename , 0, MAX_PATH );rn WideCharToMultiByte( CP_ACP,0,pNotify->FileName,pNotify->FileNameLength/2,pcfilename,MAX_PATH,NULL,NULL );rn rn HANDLE hFile = CreateFile(pcfilename,GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);rn if(hFile == INVALID_HANDLE_VALUE)rn OutputDebugString("INVALID_HANDLE_VALUE");rnrn CloseHandle(hFile);rn rn rn rn rnrn这段代码是写在一个线程里的,用于监控一个文件夹下有没有新增的文件,如果有新增的文件则进行一些处理rnrn现在碰到的问题是从本机的硬盘上拷背文件到指定的文件夹里没有问题,但从网络上其他电脑的共享文件夹中拷文件过来CreateFile就会<em>返回</em>INVALID_HANDLE_VALUErnrn更奇怪的是,如果用F5进入Debug调试,即使没有断点,从其他电脑共享文件夹中拷过来的文件CreateFile是成功的,但直接F7运行无论是Release还是Debug都又<em>返回</em>INVALID_HANDLE_VALUE,这是怎么回事?rn
通过串口类CSerial实现串口功能
1、SerialComm.h成员变量,成员函数声明nnn#pragma oncenn#define WM_COMM_RX 0x0400 + 500 //<em>串口</em>消息接收信号宏定义n#define REV_LEN 1000 //接收的字节数nclass CSerialCommn{npublic:n CSerialComm();n ~CSeri...
flex demo,flex入门实例下载
这个里面包含的是flex的一个demo,直接用flashBuilder4 import进去就可以了 相关下载链接:[url=//download.csdn.net/download/wuzhuge1990/2989530?utm_source=bbsseo]//download.csdn.net/download/wuzhuge1990/2989530?utm_source=bbsseo[/url]
一个分路无传感器矢量电机控制方案下载
一个分路无传感器矢量电机控制方案,一个分路无传感器矢量电机控制方案,一个分路无传感器矢量电机控制方案 相关下载链接:[url=//download.csdn.net/download/happyqqcc/3050151?utm_source=bbsseo]//download.csdn.net/download/happyqqcc/3050151?utm_source=bbsseo[/url]
Java就業培訓教程下载
張孝祥講解的,很詳細基礎類的教材:java環境配置,很適合初學java的人 相关下载链接:[url=//download.csdn.net/download/gaowenjiang/3056438?utm_source=bbsseo]//download.csdn.net/download/gaowenjiang/3056438?utm_source=bbsseo[/url]
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 vc人工智能教程 python怎么学啊
我们是很有底线的