why_another_name
why_another_name
2016-09-08 12:03

VS2010中使用MSCOMM的串口通信问题

刚刚开始工作,方向是电气,部门老大布置了任务,做一个串口,在网上找了很多教程,但是很多都没有数据位、停止位和奇偶校验位,于是自己添加,但是这个只是在对话框里加进去了显示面,实际上并没起什么作用,然后修改了一下程序,加了几句进去:

m_comb2.GetLBText(m_comb2.GetCurSel(), str1); //取得所选的字符串,并存放在str1里面

m_comb3.GetLBText(m_comb3.GetCurSel(),str2); //数据位

m_comb4.GetLBText(m_comb4.GetCurSel(),str3); //停止位

m_comb5.GetLBText(m_comb5.GetCurSel(),str4); //奇偶校验位

str1 = str1+','+str4+','+str2+','+str3;

    m_mscom.put_CommPort(m_comb1.GetCurSel()+1);    //选择串口
    m_mscom.put_InputMode(1);           //设置输入方式为二进制方式
    m_mscom.put_Settings(str1);          //comb2选择的波特率,无校验,8数据位,1个停止位

    m_mscom.put_InputLen(1024);         //设置当前接收区数据长度为1024
    m_mscom.put_RThreshold(1);          //缓冲区一个字符引发事件
    m_mscom.put_RTSEnable(1);           //设置RT允许

    m_mscom.put_PortOpen(true);         //打开串口

但是运行结果是串口没办法打开了

图片说明

我自己看得结果应该是str1 = str1+','+str4+','+str2+','+str3; 这句的问题,但是具体是什么问题就不知道了,还请各位大神解惑 之前没怎么学过软件,可能有些常识问题不太懂,见谅!!

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

1条回答