如何打开COMXX文件(串口)

4
我遇到了串口问题。
我编写了一个程序,可以读取COM1到COM9端口,但无法打开COMXX(如com10、com11等)。
我搜索并学习到,tCOM1-COM9是NT名称空间中保留的名称之一。它说“要访问类似COMXX这样的文件,您需要编写“\.\COMXX”。”
我尝试了这个方法,但没有成功。
有人有什么想法吗? 致以最好的祝愿...
下面的代码由于这个问题返回了一个无效的句柄值:
myPort = CreateFile("\\.\COM14",
              GENERIC_READ | GENERIC_WRITE,
              0,    /* exclusive access  */
              NULL, /* no security attrs */
              OPEN_EXISTING,
              0,
              NULL );
1个回答

6
您需要对文件名参数中的反斜杠进行转义:
myPort = CreateFile("\\\\.\\COM14",
              GENERIC_READ | GENERIC_WRITE,
              0,    /* exclusive access  */
              NULL, /* no security attrs */
              OPEN_EXISTING,
              0,
              NULL );

您也尝试打开COM端口14。您的机器上真的有14个COM端口吗?请尝试使用COM1


这将适用于COM9以上的端口,并回答了问题。要检查端口是否成功打开,请将myPort与INVALID_HANDLE_VALUE进行比较。 - Lundin
谢谢,兄弟。它奏效了... 就是那个蓝牙的东西。占用了所有端口... 总之,感谢你... - unnamed

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接