首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > WinCE >

打开串口失败 为什么呢?解决思路

2012-02-11 
打开串口失败 为什么呢?VS08下编的win32程序 打开串口 失败为什么呢?建的是STANDARDSDK MIPSII平台设备的

打开串口失败 为什么呢?
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
[解决办法]
先找个串口调试程序(设备端的,网上很多),测一下是不是串口或串口号有问题。先重启设备再进行测试,避免串口已被打开没有关闭。

[解决办法]

探讨
引用:
com被占用了吧,或者com口没有选定index


怎么选定呢?

热点排行