CreateFile打开USB串口败.

yanjinbin0 2010-07-06 05:44:03
我用代码打开一个系统自带的串口没问题,但是我要是打开一个USB的串口就要问题了,CreateFile提示失败.

#include "stdafx.h"
#include <iostream>
#include <tchar.h>
#include <iostream>
#include <Windows.h>
#include <process.h>
using namespace std;

#define COM_FILE_NUM "COM10" //USB串口名

int _tmain(int argc, _TCHAR* argv[])
{
HANDLE hCom = CreateFile(COM_FILE_NUM,//串口口名
GENERIC_READ|GENERIC_WRITE, //允许读和写
0, //独占方式
NULL,
OPEN_EXISTING, //打开而不是创建
FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED, //重叠方式
NULL);

if(hCom == INVALID_HANDLE_VALUE){
printf("open %s failed ..\n",COM_FILE_NUM); //打开串口成功
getchar();
return 0;
}else{
printf("open %s success ..\n",COM_FILE_NUM); //打开串口成功
}


if(hCom !=NULL){
CloseHandle(hCom);
}
getchar();
return 0;
}


错误提示:找不到COM10这个设备文件.

但是没道理啊我用其他串口工具可以打开COM10的,所以保证COM10是存在并可以用的。

...全文
401 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2010-07-15
  • 打赏
  • 举报
回复
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知

见此回复三日内无回应
我们将强制结帖
相关规定详见界面界面版关于版主结帖工作的具体办法
yanjinbin0 2010-07-07
  • 打赏
  • 举报
回复
换楼上的方法,能打开成功,但又带来新问题.

#include "stdafx.h"
#include <iostream>
#include <tchar.h>
#include <iostream>
#include <Windows.h>
#include <process.h>
using namespace std;

#define COM_FILE_NUM "\\\\.\\COM10" //USB串口名

int _tmain(int argc, _TCHAR* argv[])
{
HANDLE hCom = CreateFile(COM_FILE_NUM,//串口口名
GENERIC_READ|GENERIC_WRITE, //允许读和写
0, //独占方式
NULL,
OPEN_EXISTING, //打开而不是创建
FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED, //重叠方式
NULL);

if(hCom == INVALID_HANDLE_VALUE){
printf("open %s failed ..\n",COM_FILE_NUM); //打开串口成功
getchar();
return 0;
}else{
printf("open %s success ..\n",COM_FILE_NUM); //打开串口成功
}
getchar();
if(hCom !=NULL){
CloseHandle(hCom);
}
return 0;
}

在我们打开串口COM10的同时,但我用串口调试工具去打开串口COM1提示被占用。

为什么这里打开COM10后,会我其他的串口也无法打开了,都提示被占用.

InitialJ 2010-07-06
  • 打赏
  • 举报
回复
改为下面的
HANDLE hCom = CreateFile(L"\\\\.\\" + COM_FILE_NUM,//串口口名
GENERIC_READ|GENERIC_WRITE, //允许读和写
0, //独占方式
Antheus 2010-07-06
  • 打赏
  • 举报
回复
USB串口?
lili0920 2010-07-06
  • 打赏
  • 举报
回复
COM10的关系吧,不能直接写成COM10 好像要处理下就可以了

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧