求助:MScomm串口控件通信问题!
一直是编底层、下位机程序的,学习C++ Builder的串口编程。用的MScomm串口控件发送消息,如下:
//---------------------------------------------------------------------------
void __fastcall TForm1::Btn_SendClick(TObject *Sender) //按钮发送
{
int i;
int iSendCnt; //发送包的字节数
OleVariant send;
//AnsiString str;
// char *buff;
int pc_send[5] = {0x01,0x31,0x00,0x35,0x9B}; //PC发出的数据包
send = VarArrayCreate(OPENARRAY(int, (0, 5-1)), varByte); //创建一个动态数组
for(i = 0; i < 5; i++)
{
send.PutElement(pc_send[i], i); //填充待发送的数据元素
}
MSComm1->Output = send;//从串口发送
}
1、这个程序是可以发送的,但是有个问题:如果pc_send[5]数值中有0x00,下位机接什么回什么,返回显
示0x00没有了,不知道是上位机没发出去,还是下位机没接收到?
2、另外,只要pc_send[5]数组元素都是>0的,都可以正常返回,用其它串口软件测试下位机,也是正常的。
由此判断,上位机没发出去!!难道“send.PutElement(pc_send[i], i); //填充待发送的数据元素”,这个有问题?