易语言端口接收数据如从特定数据开始,保存进动态数组

如题。下位机发过来的数据帧。是0XA6开头的,后面跟6个字节的数,在跟一个校验位,总共八个字节。我想如何判断数据是否正确,想先把这八个字节的数保存进一个数组。然后去判断,... 如题。下位机发过来的数据帧。是0XA6开头的,后面跟6个字节的数,在跟一个校验位,总共八个字节。我想如何判断数据是否正确,想先把这八个字节的数保存进一个数组。然后去判断,
就是不知道该如何保存。请教、
按照你说的做了个小实验,单片机固定发送数据,确实分开了。但是为什么数据这么不稳定啊。
展开
 我来答
sjc_h2y
推荐于2017-11-26 · TA获得超过432个赞
知道小有建树答主
回答量:179
采纳率:100%
帮助的人:164万
展开全部
请先参考我2月28日的"易语言串口数据发送与接收问题"的回答,有源码后再追问
http://zhidao.baidu.com/question/710929566506440685.html?oldq=1
追问

谢谢你,这个回答学习了很多。跟下位机连通后,下位机不断的发数据帧,格式的:0XA6开始,6就代表后接6个字节数据。最后在跟一个校验位。我想先根据校验位来判断这阵数据是否有误,如果正确就再从这6个字节里提取我需要的位了。   

 困难就是,我想如何能把从0XA6到校验位这个8个字节的数据保存在数组里,验证、提取。


再请教一下,为何打开串口之后,接收数据在编辑框1显示的非常快,一会就死机了。谢谢

追答

按你所描述的状态,我认为你的通信设置有问题,应该是先发送一条命令,然后取回一条信息,进行处理后再发送一条命令,再取回处理.......这样,才不至于导致信息堵塞。

不过你的信息编码设计比较合理,有头部编码"A6",有尾部CRC校验,每条返回信息固定8个字节。

根据本你的描述,本例程不能直接用编辑框来进行记录,也不能直接用数组来存储,这样会造成数据堵塞甚至电脑瘫痪 。

如要记录一条完整的接收信息,可用下面的代码:


返回的数据应用校验进行检测,如果不符合很可能是模块产生了误操作,或者发回的信息受到了干扰,或者供电电源有干扰,或者电源滤波不彻底.......等很多因素造成,在处理过程中应舍弃掉。这要与硬件设计者进行沟通了,应该与本程序没有多大的关联

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式