打开COM1到COM9用:
m_hCom = CreateFile(_T("COM1:"), GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, NULL, NULL);
或者
m_hCom = CreateFile(_T("COM1"), GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, NULL, NULL);
(第一个参数有没有分号都可以)
或者
m_hCom = CreateFile(_T("////.//COM1"), GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, NULL, NULL);
(COM1后面不能有分号)
打开COM10之后的串口
m_hCom = CreateFile(_T("////.//COM15"), GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, NULL, NULL);
在网上查到:
"COMX:",
"/$device/COMX",
"/$bus/PCMCIA_0_0_0"。
其中第一种方式只适合从0~9的设备名,亦即COM10:中10超出了设备命名规范,所以用CreateFile打开设备失败。
使用第二种方式/$device/COM10,作为参数传递给CreateFile,成功打开COM口,通讯正常,搞定。
第三种是用在总线驱动上的,暂时没涉及到
第二种方法试了好多编,还是没打开。
以上结果只在XP平台下测试,串口15为USB转串口 VS使用Unicode编码