cpubbs论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

菜鸟求助串口问题

[复制链接]
发表于 2008-6-9 21:47:58 | 显示全部楼层 |阅读模式
串口读来一串数据:1年2月3日4状态位5数据6状态位7数据8状态位9数据10状态位11数据12状态位13数据......,我要先用CRC16判断这个数据是不是正确的!如果正确我再进行分离,分离的过程中,要先把年月日提出来,判断状态位是不是正确,正确的话则传输,不正确则丢弃...就是实现这个过程的程序,我不知道该怎么弄?另外就是MODBUS协议要怎么弄也不是很懂?哪位高手给个相关的例子参考下,感激不尽啊
发表于 2008-6-10 09:28:52 | 显示全部楼层
如果串的长度固定,你设置下读取的字节数,然后把那串读进来,然后对字符串进行分析。。
 楼主| 发表于 2008-6-11 10:25:35 | 显示全部楼层

再问:modbus 协议

MODBUS协议该怎么样在程序里体现呢?CRC校验的算法实现是怎么样的啊?有人有相关的程序可以让我参考下嘛,谢谢了!
另外一个十六进制的数要转换成单精度浮点型的要怎么转换啊:比如说e5050425这是4个字节32位的一个十六进制数,从左到右依次为31,30,29,.....0,最高位31位为符号位:0表示正,1表示负;30~23位为指数位;22~0为基数位:形式为A.BH..。哪位高手指点下该怎么实现啊?谢谢啊!我不知道该如何下手啊?

[ 本帖最后由 qf7951 于 2008-6-11 10:27 编辑 ]
发表于 2008-6-13 12:14:00 | 显示全部楼层
你是上海大学的那个朋友吧?应该是把你从qq删除了
发表于 2008-6-15 15:53:35 | 显示全部楼层
上传一个我自己写的  或校验程序,给你参考吧

[ 本帖最后由 wdyjz 于 2008-6-15 15:55 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2008-6-15 16:01:29 | 显示全部楼层
16进制字符串,判断最高位是0或者1可以用异或的方法,比如和8000H逻辑,然后判断。后面用case处理。
其他位可以同样这样做判断,其实用一个for loop就可以自动索引了,获得布尔数组。
根据布尔数组进行重新的数据整合。

校验的程序可以用上面提交的 或校验
 楼主| 发表于 2008-6-24 13:54:58 | 显示全部楼层
问题已解决,不过还是要谢谢你的解答
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-20 08:54 , Processed in 0.503732 second(s), 8 queries , Gzip On, File On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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