尝试自己编写一个串口调试工具,发现一个很严重的问题,当串口号大于COM9就提示无法打开串口,使用的行数如下:HANDLE m_hcom;m_hcom = CreateFile(PortNum,
                    GENERIC_READ|GENERIC_WHITE,
                    0,
                    NULL,
                    OPEN_EXISTING,
                    FILE_FLAG_OVERLAPPED,
                    NULL);
当PortNum=“COM10”的时候m_hcom=-1,串口打开失败,怎么会这样呢,难道用CreateFile函数不能实现串口10以上的通信吗?请大家帮帮忙啊,先谢谢了

解决方案 »

  1.   

    To specify a COM port number greater than 9, use the following syntax: "\\.\COM10". This syntax works for all port numbers and hardware that allows COM port numbers to be specified.
      

  2.   

    你要检查两个方面,一个是楼上所说的
    另外一个就是:你的串口类的构造和启动函数里面有没有限制这个端口的大小,准确的说,是你的所有的输入到这个层次的时候,允许com9以上的近来吗?如果允许了,你自己的检查允许吗?如果都允许了你才可以用大于9的,如果还不行,检查你的机器有这个com口吗?如果有,是不是启用,是不是被占用。本人做过你一样的需求,以上是我的出现问题的解决的办法。
      

  3.   

    谢谢啊,串口改成"//./COM10"就能正常打开了,哈哈