mscomm可以有字符和二进制方式采集串口的数据.而我使用spcomm采集数据,不知道
spcomm采集上来的数据是那种形式:二进制, 字符 ,ASCII值还是其他?
下部仪器来的数据格式是: f0h 43h,06h等16进制. 我需要对这些16进制数据进行计算,请问如何做?
spcomm采集上来的数据是那种形式:二进制, 字符 ,ASCII值还是其他?
下部仪器来的数据格式是: f0h 43h,06h等16进制. 我需要对这些16进制数据进行计算,请问如何做?
str1:=chr($08);
发送函数(pchar(str1),1);
BufferLength: Word);
var RBuf:PChar;
a,b:integer;
begin
Rbuf:=Buffer;
a:=ord(Rbuf^);
b:=Ord((Rbuf+1)^)
..................
endvar PSend:pchar
str:string;
str:='123456';
PSend:=pchar(str);
WriteCommData(PSend,length(s))
str:string;
str:='123456';
PSend:=pchar(str);
WriteCommData(PSend,length(str));
我的理解是
a:=ord(Rbuf^);取第一个16进制数, b:=Ord((Rbuf+1)^)取第二个,以此类推。能否解释一下
ord()函数的具体作用。在我的win2000中,integer是32位的,而一个16进制数是占用了八位,因为涉及到负值的情况(这时使用2个16进制数),我将他们转换到integer还能保证他们是负值吗?
分不成问题。