首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CreateFile()串行通信问题

CreateFile()串行通信问题
EN

Stack Overflow用户
提问于 2015-01-12 19:51:06
回答 1查看 18.6K关注 0票数 5

我正试图通过我的usb端口(名为COM15)做一些串行通信,我得到了一个错误。这是发生错误的代码:

代码语言:javascript
复制
HANDLE myPortHandle = CreateFile("COM15",
                                  GENERIC_READ | GENERIC_WRITE,
                                  0,
                                  NULL,
                                  OPEN_EXISTING,
                                  0,
                                  NULL);

if (myPortHandle == INVALID_HANDLE_VALUE)
{
    DWORD lastError = GetLastError();
    cout<<"ERROR HERE! = "<<lastError<<endl;
}

每次编译程序时,句柄都要打开串口== INVALID_HANDLE_VALUE。我在CreateFile() msdn文档中阅读了使用GetLastError()来获取“扩展错误信息”。现在..。运行代码时,GetLastError()返回的值为:2

在GetLastError()的msdn文档中,它说:

“每个函数设置最后错误代码的文档的返回值部分记录了函数设置最后错误代码的条件。”

我试图在CreateFile() msdn文档的返回值部分中寻找'2‘的含义,但在任何地方都找不到它的含义。

问题:

1)为什么会发生这种情况: myPortHandle == INVALID_HANDLE_VALUE?

2)此外,如果有人可以告诉我,我需要在哪里查看msdn文档,以找到GetLastError()返回的“2”的含义,那就太棒了!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-12 19:58:53

Windows错误代码记录在这里:http://msdn.microsoft.com/en-us/library/windows/desktop/ms681382.aspx

您的错误代码是ERROR_FILE_NOT_FOUND。这意味着找不到COM15。根据这篇文章,您需要使用名称:"\\\\.\\COM15"

CreateFile()可以用来获取串口的句柄。"Win32程序员的引用“条目"CreateFile()”提到共享模式必须是0,创建参数必须是OPEN_EXISTING,模板必须为NULL。 当您通过"COM1“对文件名使用”COM1“时,COM9()是成功的;但是,如果使用"COM10”或更高版本,则返回消息INVALID_HANDLE_VALUE。 如果端口的名称是\\.\COM10,那么在调用CreateFile()中指定串行端口的正确方法如下: CreateFile(“\\.\ copy 10”,通信设备名称的//地址( fdwAccess,// access (读-写)模式0,//共享模式为空,//安全描述符OPEN_EXISTING的地址,//如何创建0,//文件属性为NULL //句柄,文件的属性为要复制); 注意:此语法也适用于通过COM1通过COM9的端口。某些板会让你自己选择端口名。这种语法也适用于这些名称。

或者从文档到CreateFile本身:

CreateFile函数可以创建通信资源的句柄,例如串口COM1。对于通信资源,dwCreationDisposition参数必须为OPEN_EXISTING,dwShareMode参数必须为零(独占访问),而hTemplateFile参数必须为NULL。可以指定读、写或读/写访问,并且可以为重叠的I/O打开句柄。 若要指定大于9的COM端口号,请使用以下语法:\\.\COM10。此语法适用于所有允许指定COM端口号的端口号和硬件。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27909666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档