V
vkjy
Unregistered / Unconfirmed
GUEST, unregistred user!
串口的数据如果读的位数不对怎么办?
我用的是spcomm,com1送的数据是连续的,例如61,06;00,00;62,05;00,00;23,06;等等
我需要的数据是61,06(高位在后)和62,05/23,06等等,但是我使用中发现大部分时间都位数错了,读的数据变成了06,00/00,62/05,00/00,23等,中间的间隔无法变了.
b0 := (StrToInt(FloatToStr(@rbuf^)));
b1 := (StrToInt(FloatToStr(@rbuf[i+1]^)));
b1 := (StrToInt(FloatToStr(@rbuf[i+2]^)));
bo/b1/b2就成了6/25088/8960.
我怎么得到1633/1378/1571呀?
begin
viewstring := '';
Move(buffer^,pchar(@rbuf)^,bufferlength);
i := 0;
While i < bufferlength Do
+什么判断条件?
是不是需要判断两个连续的数是否大于0?如果大于关com1,在开com1,直到有正确的数据?
我怎么觉得这个方法不对劲呀~
我用的是spcomm,com1送的数据是连续的,例如61,06;00,00;62,05;00,00;23,06;等等
我需要的数据是61,06(高位在后)和62,05/23,06等等,但是我使用中发现大部分时间都位数错了,读的数据变成了06,00/00,62/05,00/00,23等,中间的间隔无法变了.
b0 := (StrToInt(FloatToStr(@rbuf^)));
b1 := (StrToInt(FloatToStr(@rbuf[i+1]^)));
b1 := (StrToInt(FloatToStr(@rbuf[i+2]^)));
bo/b1/b2就成了6/25088/8960.
我怎么得到1633/1378/1571呀?
begin
viewstring := '';
Move(buffer^,pchar(@rbuf)^,bufferlength);
i := 0;
While i < bufferlength Do
+什么判断条件?
是不是需要判断两个连续的数是否大于0?如果大于关com1,在开com1,直到有正确的数据?
我怎么觉得这个方法不对劲呀~