请教高手Mscomm控件
在用Mscomm控件的时候,发送16进制数据,然后从串口检测软件得到的数据是4B 56 2B 03 00,函数如下:
void __fastcall TForm1::Button2Click(TObject *Sender)
{
MSComm1->InputMode=1;
char str[5]={0x4B,0x56,0x2B,0x03,0xCF};
MSComm1->Output=StringToOleStr(str);//(Memo1->Text);//
MSComm1->InputMode=0;
}
另外,我把函数改成下面:
{
MSComm1->InputMode=1;
MSComm1->Output=StringToOleStr("4B 56 2B 03 CF");//
MSComm1->InputMode=0;
}
然后从串口检测软件得到的数据是34 42 20 35 36 20 32 42 20 30 33 20 43 46 ,就是说4对应34,B对应42,空格对应20,可是我只想得到4B 56 2B 03 CF,请高手们解答,跪拜!
[解决办法]
"4B 56 2B 03 CF",你这不就一下发了15个字节么,当然是34 42 20 35 36 20 32 42 20 30 33 20 43 46了。楼主可以这样试试:
MSComm1->Output=StringToOleStr("\x4B\x56\x2B\x03\xCF");
[解决办法]
楼主想发Bin的数据,结果发成了Hex的数据。按1楼的代码尝试一下。
[解决办法]
大侠们都说了注意空格的影响
[解决办法]
1楼的代码应该可以的。
[解决办法]
刚才看了一下
MSComm1->InputMode=1;这个模式改一下
再按一楼的方法发
[解决办法]
你的串口数据设的是7位吧,改为8位。
[解决办法]
非ASCII字符在文本方式下发不了?像这这种情况我都是用2进制的,为什么要用字符串发送呢?