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

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

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

连续发送的时候有问题, 
比如,连续发了三个,如下:
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 类。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值