日期:2014-05-18  浏览次数:20920 次

怎么样正确读取串口发过来的数据,并转成数据
目前做称重管理系统:
现在环境是:一个传感器连接称重显示器,然后连接电脑。
目前称重显示器显示值为:0.000
用串口调试如图:

传输协议

也就是说:
[02]是开始位
+ 符号位
000000 称重数量
3 小数点位数
1和8是异或校验位
[03]是结束位

有一个问题是:串口上不断的发来ascii码(二进制数),而我去接收的时候 却不一定是从第一位开始接收的,所以可能出现从中间某一位开始接收, 这样,由于01排列的循序不同了,导致不能显示正确的ascii码,就产生了乱码。 


问题就是:怎么正确的取到[02]+000000318[03]。然后转化成0.000显示出来



------解决方案--------------------
协议中写的不是很清楚吗,接受的是流,根据协议规定逐个按照长度读取啊,是什么类型就转成什么类型
------解决方案--------------------
按照协议来验证数据的完整性和将接受的数据转化为我们识别的十进制数据就是了.