多谢站长,你给我的提示OK,我已能把数据读过来,但读过来的数据为61434848,应为=+123......之类才对,(其中二次仪表回答的固定格式:第一位=是固定不变的,第二位为+或-号,第三位起是数字,小数点,例如:=+123.6)
我想是不是数制转换问题,如果是该怎么转换?(有没有十六进制转十进制的函数?)
代码:
unsigned char In_Buf[4];
AnsiString s;
int n;
char Out_Buf[4];
Out_Buf[0] = 0x23;////ASCII #
Out_Buf[1] = 0x30;//ASCII 0
Out_Buf[2] = 0x31;//ASCII 1
Out_Buf[3] = 0x0d;//回车
YbCommDevice1->Write(Out_Buf,4);
Sleep(50);
n=YbCommDevice1->Read(In_Buf,4);
for(int i=0; i {
s += In_Buf[i];//把字符转化为字字符串
s = s.Trim();
}
Edit1->Text="";
if(!s.IsEmpty())
Edit1->Text=s;
--------------------next---------------------
阅读(1550) | 评论(0) | 转发(0) |