前面问题是网上找的一个,如下:
我给一个机器发送串口命令,单个命令发送没问题,
连续发送的时候有问题,比如,连续发了三个,如下:
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 类。