求助:串口读取数据如何正确保存?
我要读取一帧六个字节的数据帧,前三个字节为800000是帧头,后三个字节是24位的补码数据,且最高位为符号位。串口读取没有问题 可以正确保存,读取的字符串我采用队列的形式,每次读取一个字节比较出帧头800000后,保存紧跟的后三位数据,但是总是在读取的时候出错,读完三个数后,好像不循环了,数组中就一直是三个数。如何一直不断的读取数据位,最好能做成一个三维数组,每一行表示一个数据,附上 我自己编写的程序,请各位版大和站友指教, 嗯,开发过程中肯定有很多的错误,谁也不能保证自己的设计一开始就是完全正确的。所以,衡量一个工程师的一个很重要的标志就是看他是否能针对出现的问题提出相应的解决方案。在你的这个程序中,你遇到了问题,然后你很大胆的假设了你的循环不工作了,那你就用一些其它方法看下循环是否真的如你所料。最简单的就是在循环的计数端子那里右键,创建一个indicator,然后运行,看计数是否变化。
如果真不工作,那就继续找问题。。
我没环境,看不了程序,其他朋友有兴趣可以帮忙看看。一个较高的主题就是讨论下这种串口通讯方案是否可行。我没仔细计算过,不过可以肯定,这种方案是存在一定漏洞的,会造成误判段,概率是多少就难说了。 2# 飞雨天
我用高亮看了一下程序运行的过程,因为我把读取的数据压入队列和从队列中比较帧头并释放数据这两个操作分别放在两个For循环中,而把这两个For循环放在了一个while循环中,这样两个for循环的每次循环都是交替进行的,但一旦从队列释放数据的For循环正确验证了帧头,便会一直循环下去,期间不能进行从串口读取数据的循环,直至队列的数据被清空,此时循环就停止了,
问题是如何保持上述的两个For循环可以同时运行而不停止,我尝试了下添加局部变量而把两个For循环放在两个不同的While循环中,但结果一直提示判断队列是否为空的节点的输入参数错误(该节点的输入为局部变量-队列)。
参照了cpubbs之前提供的一个队列的用法,但是还是没明白如何使两个For循环同时运行,望各位指教! labview做的串口接收并波形显示,并存储,以及回放功能!
http://www.cpubbs.com/bbs/viewthread.php?tid=60559&fromuid=3757 4# tester hgey
页:
[1]