cpubbs论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

LabVIEW+单片机学习套件全套教程资料下载[免费]LabVIEW论坛精华列表贴USB0816数据采集卡《LabVIEW宝典》
LabWindows/CVI论坛精华贴NET0816以太网数据采集卡RC0210远程设备授权系统 关闭关停锁定打开设备 户外分布式数据采集
NET1624低速高精度以太网数据采集卡WIFI0824SD无线WIFI网络数据采集卡脱机运行 SD存储 小尺寸微型 串口采集远程采集 安卓 手持移动采集 纪录仪
查看: 1034|回复: 5

字符数据的问题

[复制链接]
发表于 2009-1-6 13:54:18 | 显示全部楼层 |阅读模式
由串口接收进来的数据为:>+1234.1+1234.5-1234.5-1234.5+0.1234 的格式,如何把它拆分存贮或是显示?
发表于 2009-1-6 14:33:48 | 显示全部楼层
串口通讯首要的是了解或指定上、下位机的通讯协议!
不先说明通讯协议,仅仅从上面短短一行字符分析,很可能会得出错误的结论!
从你的数据来看:1、接收的是字符型数组:2、〉可能是帧起始字符,+ 、-可能是数据的正负号;
但是数据精度如果从上面看却是不一致的:有些是一位,有些是四位!

所以,你最好先说明一下你的通讯协议是怎样的!!
 楼主| 发表于 2009-1-6 15:03:31 | 显示全部楼层
接收数据格式为:>+1234.1+1234.5-1234.5-1234.5+0.1234
1、接收的是字符型数组
2、〉是帧起始字符,
3、+ 、-是数据的正负号;
4、数据精度是不一致的,但都是浮点数
 楼主| 发表于 2009-1-6 15:10:10 | 显示全部楼层
接收数据格式为:>+1234.1+1234.5-1234.5-1234.5+0.1234
1、接收的是字符型数组
2、〉是帧起始字符,
3、+ 、-是数据的正负号;
4、数据精度是不一致的,但都是浮点数,并且所占字符位数都一样
发表于 2009-1-6 15:45:51 | 显示全部楼层
对于这种情况,
1、将接收的一帧数据赋给一个数组(问题是你的每帧数据长度是否固定?是否有帧结尾标志?因为这关系到你接收的一帧数据是否完整);
2、从数组的第二个字符开始读取字符串(即去除帧起始字符),每次读取七个字符(每个数据连符号和小数点共占七位),将其存入一个二维数组array(7,n),n是每帧数据个数!
3、在对子字符串进行处理-〉取出符号为(保存后面用);
4、用Fmt()函数将各个子字符串(不含符号位)转化为浮点性数据;
5、加上符号位。
大致流程就是这样!
 楼主| 发表于 2009-1-7 10:56:55 | 显示全部楼层
思路基本明白了,谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cpubbs论坛. ( 粤ICP备09171248号 )

GMT+8, 2025-4-20 17:12 , Processed in 0.962259 second(s), 7 queries , Gzip On, File On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表