查看:
10389
回复: 12 |
【码农心得】打不开大于10序号的USB串口的解决方案
|
|||||||||||||||
|
发表于2017-09-05 20:03:50
|
显示全部楼层
1#
电梯直达
现写现学~ 今天碰到一个问题,跟大家分析一下心得~ 使用WIN32 API 打开当COM号大于10的时候,会出现打开错误或失败,一般解决的办法是人工修改USB 串口 的com的名称让它的com号是单位数(如: COM1~COM9),但这样较麻烦。而且,客户的电脑,在远方,让客户自己修改也不现实吧?! 那咋办? 解决办法如下: 产生这种奇怪现象的原因是:微软预定义的标准设备中含有“COM1”-“COM9”。所以,“COM1”-“COM9”作为文件名传递给函数时操作系统会自动地将之解析为相应的 |
|||||||||||||||
|
发表于2017-09-19 09:52:29
|
显示全部楼层
4#
最近很忙,刚到看到你的回复~ 目前,我用的是这个类库(挺不错的) CSerialPort v1.33http://www.naughter.com/serialport.html 关于串口编程或控件、Class 类库(特别是MFC), 在知名网站: www.codeproject.com 也挺多的。 |
|||||||||||||||
|
发表于2017-09-23 15:37:44
|
显示全部楼层
6#
可以,But.... v1.19 (24 June 2006) CSerialException::GetErrorMessage now uses the strsafe functions. This does mean that the code now requires the Platform SDK if compiled using VC 6. |
|||||||||||||||
|
发表于2017-09-28 10:54:40
|
显示全部楼层
9#
写个软件就可以对COM编号进行复位。或者还有一个办法,就是用USB HOST 的单片机,直接对USB转串口进行测试,测试一个模块,单片机重新复位一次。
|
|||||||||||||||
|
发表于2017-09-28 11:15:21
|
显示全部楼层
10#
我没有用VC6 ,如果你用VC6 ,只能咨询一下官方了:
另外的一个办法是: 如果你用FTDT的芯片,可以直接用FTDT官方出的DLL通信库,那个也挺好用的。 |
|