专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > WinCE

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

发布时间:2010-06-13 22:21:16 文章来源:www.iduyao.cn 采编人员:星星草
打开串口失败 为什么呢?
VS08下编的win32程序 打开串口 失败为什么呢?
 建的是STANDARDSDK MIPSII平台设备的 程序放入设备中,设备串口和电脑PC机相连 
 运行后,发现程序 打开串口失败?
 有哪几种原因呢?驱动方面有问题?是不是驱动方面对串口的配置不对呢?还是怎么呢? 我不懂驱动
void SendData(HDC hdc,LPCSTR buffer)
{
  HANDLE hcom;
COMMCONFIG cc;
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


怎么选定呢?
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: