cpubbs论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

求助:串口读取数据如何正确保存?

[复制链接]
发表于 2009-12-12 08:50:12 | 显示全部楼层 |阅读模式
我要读取一帧六个字节的数据帧,前三个字节为800000是帧头,后三个字节是24位的补码数据,且最高位为符号位。串口读取没有问题 可以正确保存,读取的字符串我采用队列的形式,每次读取一个字节比较出帧头800000后,保存紧跟的后三位数据,但是总是在读取的时候出错,读完三个数后,好像不循环了,数组中就一直是三个数。
      如何一直不断的读取数据位,最好能做成一个三维数组,每一行表示一个数据,附上 我自己编写的程序,请各位版大和站友指教,

本帖子中包含更多资源

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

x
发表于 2009-12-12 10:56:40 | 显示全部楼层
嗯,开发过程中肯定有很多的错误,谁也不能保证自己的设计一开始就是完全正确的。所以,衡量一个工程师的一个很重要的标志就是看他是否能针对出现的问题提出相应的解决方案。在你的这个程序中,你遇到了问题,然后你很大胆的假设了你的循环不工作了,那你就用一些其它方法看下循环是否真的如你所料。最简单的就是在循环的计数端子那里右键,创建一个indicator,然后运行,看计数是否变化。

如果真不工作,那就继续找问题。。

我没环境,看不了程序,其他朋友有兴趣可以帮忙看看。一个较高的主题就是讨论下这种串口通讯方案是否可行。我没仔细计算过,不过可以肯定,这种方案是存在一定漏洞的,会造成误判段,概率是多少就难说了。
 楼主| 发表于 2009-12-12 11:26:43 | 显示全部楼层
2# 飞雨天
      我用高亮看了一下程序运行的过程,因为我把读取的数据压入队列和从队列中比较帧头并释放数据这两个操作分别放在两个For循环中,而把这两个For循环放在了一个while循环中,这样两个for循环的每次循环都是交替进行的,但一旦从队列释放数据的For循环正确验证了帧头,便会一直循环下去,期间不能进行从串口读取数据的循环,直至队列的数据被清空,此时循环就停止了,
      问题是如何保持上述的两个For循环可以同时运行而不停止,我尝试了下添加局部变量而把两个For循环放在两个不同的While循环中,但结果一直提示判断队列是否为空的节点的输入参数错误(该节点的输入为局部变量-队列)。
      参照了cpubbs之前提供的一个队列的用法,但是还是没明白如何使两个For循环同时运行,望各位指教!
发表于 2009-12-13 23:19:33 | 显示全部楼层
labview做的串口接收并波形显示,并存储,以及回放功能!
http://www.cpubbs.com/bbs/viewth ... 59&fromuid=3757
发表于 2009-12-14 20:29:47 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-19 11:03 , Processed in 0.693348 second(s), 9 queries , Gzip On, File On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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