| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1642 人关注过本帖
标题:通信端口选择问题
只看楼主 加入收藏
zslly0530
Rank: 1
等 级:新手上路
帖 子:54
专家分:0
注 册:2007-6-12
收藏
 问题点数:0 回复次数:2 
通信端口选择问题

char *ComNo;
DCB dcb;
String Temp;
Temp="COM1";
ComNo=Temp.c_str();
hComm=CreateFile(ComNo,GENERIC_READ|GENERIC_WRITE,
0,NULL,OPEN_EXISTING,1,0);
if(hComm==INVALID_HANDLE_VALUE)
{
MessageBox(0,"打开通信端口错误,请检查端口是否被占用!" ,"Comm Error",MB_OK);
return;
}
GetCommState(hComm,&dcb);
dcb.BaudRate=CBR_9600;
dcb.ByteSize =7;
dcb.Parity =EVENPARITY;
dcb.StopBits =ONESTOPBIT;
SetCommState(hComm,&dcb);
if(!SetCommState(hComm,&dcb))
{
MessageBox(0,"通信端口设置错误!","Set Error",MB_OK);
CloseHandle(hComm);
return;
}
以上是本人的打开通信端口以及选择通信端口的代码,可我把Temp设置为变量时(即Temp可为COM1或者COM2),程序运行就会死机,想了好几天也没有解决,请高手帮我看看,问题出在哪,是不是少了什么?!

我的意思是Temp为变量,可以用文本框输入(输入为端口号Com1),如何判断端口是否可用?!!我以上程序给的是Com1,如果接口在Com2上,程序运行无任何提示,就会死机!

搜索更多相关主题的帖子: 选择问题 端口 通信 
2007-08-29 11:49
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
收藏
得分:0 
接口在Com1上 时正常吗 ??
2008-05-13 22:13
rxb88601629
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2007-11-29
收藏
得分:0 
通信端口选择问题
你可以 尝试这样写
char comx[5];
      int ComNo;
      if( ComboBox2->Text.Length() >5)
      {
         ComboBox2->Text="";
         return;
      }
      strcpy(comx,ComboBox2->Text.c_str() );
      if( (comx[0]!='c')&& (comx[0]!='C'))
      {
        ComboBox2->Text="";
        return;
      }
      if( (comx[1]!='o')&& (comx[1]!='O'))
      {
        ComboBox2->Text="";
        return;
      }
      if( (comx[2]!='m')&& (comx[2]!='M'))
      {
        ComboBox2->Text="";
        return;
      }
      if(ComboBox2->Text.Length() ==5)
      {
            if( (comx[3]!='1'))
            {
              ComboBox2->Text="";
              return;
            }
            if( (comx[4]<='0')&& (comx[4]>'9'))
            {
              ComboBox2->Text="";
              return;
            }
            ComNo=comx[4]-'0';
            ComNo+=10;
      }
      if(ComboBox2->Text.Length() ==4)
      {
            if( (comx[3]<='0')&& (comx[3]>'9'))
            {
              ComboBox2->Text="";
              return;
            }
            ComNo=comx[3]-'0';
       }
       if(!m_com2.InitCom(NULL,ComNo,9600,0))
       {
//                         ShowMessage(ComboBox2->Text+" Port can't open!");
             Ready_COM2 = false;
       }
       else
       {
             Ready_COM2 = true;
//                   }
2008-06-13 09:16
快速回复:通信端口选择问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014751 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved