串口名导致的串口打开失败

本文记录了解决计算机上高编号串口(如COM10以上)无法正常打开的问题。通过查阅MSDN文档和博客资料,发现了正确的串口名称格式,并给出了具体的解决方案。

    今天遇到串口通信不稳定, 拿到别人机子上测试, 却发现他的串口打不开了. 

    在网上查原因. 网上说了些原因,比如串口被占用,这个被排除了,我没开其它使用串口的程序. 也有说驱动没安装好,也重新安装了下.还是不行.

   只有继续看MSDN.发现有说明:

   When lpFileName points to a COM port to open, you must include a colon after the name. For example, specify COM1: to open that port. When using IrCOMM, specify COM3:. 

   意思是说要在串口名后面加个分号":",如   " COM1: ",但是平时不加,也能正常打开的啊. 以前都没仔细看说明,只看别人怎么用就怎么用,所以不没加分号,看来以后得仔细看说明了.

   看了说明,改了程序,发现还是不行,仍然打开失败.  GetLastError获得错误码是说的  "文件不存在" ,也就是说串口名格式可能还是错的.

   继续找.终于找到这个,博客:http://guobaoguo.blog.163.com/blog/static/10916258200992262417826/     10以上串口加载问题  

    原来设备名的格式是有很多种的. 

    "COMX:",
    "\$device\COMX",
    "\$bus\PCMCIA_0_0_0"。

     " COM1 " 这种格式只支持 COM0-COM9  上了 COM10就不支持了.

    只有使用第二种格式了."\$device\COMX",   ======> " \\.\COM12 "  当然放到程序里,常量串要转意反斜杠的====> " \\\\.\\COM12 "

    但是第二种格式为什么 $device 是换成 一个点表示,对于设备名称没有看过,不知道为什么了.

    这样,换成这样终于是可以了


总结:   仔细看MSDN , 借鉴的同时要注意理解.    COM名字格式很重要.
 

  

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值