MSComm为什么只能收到一个数据呢?
代码如下:
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
char c[4];
char *Rx_Buffer; //接收缓冲的字节
OleVariant temp; //声明变体变量
if(!MSComm1->InBufferCount)return;//接收缓冲无数据了,则不在执行下面步骤
if(Uart_Open)//使能显示(显示使能&串口打开)
{
temp=MSComm1->Input;
VarArrayRedim((Variant&)temp,1);
Rx_Buffer=(unsigned char*)temp.GetElement(0);
if(Rx_Buffer[0]==0x55)
{
Send_Box->Lines->Text="握手成功!!!";
}
else
Send_Box->Lines->Text="握手失败!!!";
}
}
//---------------------------------------------------------------------------
//发送数据
void __fastcall TForm1::Send_ButtonClick(TObject *Sender)
{
char *str;//取得发送文本
OleVariant temp; //声明变体变量
unsigned char c=0;
char CMD[10]="\0";
CMD[0]=0x55;
CMD[1]=CMO;
CMD[2]='\0';
str=CMD;
if(Uart_Open)
{
temp=VarArrayCreate(OPENARRAY(int,(0,0)),varByte);//创造单个变体int,(0,10))发送11个数据
for(int n=0;n<1;n++)
c=str[n];
temp.PutElement(c,0);//字符传入变体变量;
MSComm1->Output=temp;//发送
}
}
请指点