【解决CSerialPort 串口类不能连续发送的问题】

来源:互联网 发布:sql加一行合计 编辑:程序博客网 时间:2024/05/16 07:43

前面问题是网上找的一个,如下:

我给一个机器发送串口命令,单个命令发送没问题,

连续发送的时候有问题, 
比如,连续发了三个,如下:
m_ser.WriteToPort(chSend1);
m_ser.WriteToPort(chSend2);
m_ser.WriteToPort(chSend3); 

只有最后一个发送的起作用.



原因我就不解释了。


我的方式是加定时器就可用完全解决这个问题:


头文件中声明一个变量:sum;

构造函数中初始化:sum = 0;

void CMyView::Button1()
{

         CString chSend[3]={chSend1,chSend2,chSend3};

m_ser.WriteToPort(chSend[sum]); 

SetTimer(1,100,NULL);

}


void CMyView::OnTimer(UINT nIDEvent) 
{
      switch(nIDEvent)
      {
              case 1:
                    KillTimer(1);
                    if(sum< 2)
                    {
                          sum++;
                          OnButton1();
                    }
                    else if(sum== 2)
                    { 
                          sum= 0;
                          break;
                     }
                     break;

}


 问题解决。不用修改CSerialPort 类。

0 0
原创粉丝点击