您的位置:首页 > 其它

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

2015-03-24 10:31 363 查看
前面问题是网上找的一个,如下:

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

连续发送的时候有问题,

比如,连续发了三个,如下:

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
类。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: