串口下重复发送数据的问题!
我的程序如下:
发送数据:
Timer1->Enabled=true;
for(int i=0;i<3;i++)
{
j=j+1;
ClearCommError(hComm,&dwError,&cs);
while(cs.cbOutQue==0)
{
WriteFile(hComm,byte,1,&lrc,0);
// ShowMessage("ok");
break;
}
}
接收数据用Timer等待:
ClearCommError(hComm,&dwError,&cs);
if(j==3)
{
while(cs.cbInQue==1)
{
Edit1->Text=IntToStr(j);
ReadFile(hComm,&byte,cs.cbInQue,&nBytesRead,0);
for(int i=0;i<8;i++)
{
int p=(int)(byte>>8-i-1);
p=p&0x01;
bufpa[i]=char(p+48);
}
RT->Text=bufpa; // RT->Text+
Timer1->Enabled=false;
j=0;
break;
}
}
else
{
while(cs.cbInQue==1)
{
Edit1->Text=IntToStr(j);
RT->Text=RT->Text+"ok";
PurgeComm(hComm,PURGE_RXCLEAR); // PURGE_TXCLEAR |
break;
}
}
我主要目的是连续的发送三次数据,等待第三次数据返回,用的一个串口com1的 2&3脚短接。
编程时首先是连续发三次数据其中第二个数据的不到;上面的例子中我的Timer间隔为1MS结果没有任何反应。请问大家是什么原因,我个人觉得是时间设置的不对。因为在发送中如果我添加ShowMessage就能顺利接收每次的数据。如果有例程给我发一个,试了很多天了一直没有解决。
另外线程中也有试过没有解决问题。