打开串口失败 为什么呢?
VS08下编的win32程序 打开串口 失败为什么呢?
建的是STANDARDSDK MIPSII平台设备的 程序放入设备中,设备串口和电脑PC机相连
运行后,发现程序 打开串口失败?
有哪几种原因呢?驱动方面有问题?是不是驱动方面对串口的配置不对呢?还是怎么呢? 我不懂驱动
void SendData(HDC hdc,LPCSTR buffer)
{
HANDLE hcom;
COMMCONFIGcc;
DCB dcb;
DWORD pt;
RECT rect={20,20,60,60};
hcom=CreateFile(L"COM1:",GENERIC_WRITE|GENERIC_READ,0,NULL,OPEN_EXISTING,NULL,NULL);
if(hcom==INVALID_HANDLE_VALUE)
{
DrawText(hdc,L"fail",5,&rect,DT_CENTER);
return;
}
GetCommState(hcom,&dcb);
dcb.BaudRate=CBR_9600;
dcb.fBinary=TRUE;
dcb.fParity=FALSE;
dcb.ByteSize=8;
dcb.Parity=NOPARITY;
dcb.StopBits=ONESTOPBIT;
dcb.fRtsControl=RTS_CONTROL_ENABLE;
dcb.fDtrControl=DTR_CONTROL_ENABLE;
SetCommState(hcom,&cc.dcb);
WriteFile(hcom,buffer,2,&pt,&ov);
}
是不是也要在驱动中,把串口配置名为 COM1呢 (设备中共有两个串口)
[解决办法]
“是不是也要在驱动中,把串口配置名为 COM1呢”
那你串口驱动中,注册表Prefix设置不是这个COM?
不会吧。
打开串口用:
HANDLE hCom = CreateFile(L"COM1:",GENERIC_READ | GENERIC_WRITE,
0,NULL,OPEN_EXISTING,0,NULL);
就可以了。
你的设备是不是没有这个串口,或者被占用了呢。
[解决办法]
需要在注册表中将串口配置名为 COM1
[解决办法]
先找个串口调试程序(设备端的,网上很多),测一下是不是串口或串口号有问题。先重启设备再进行测试,避免串口已被打开没有关闭。
[解决办法]