标题: 51单片机串口如何接收 24字节数据,解析有用数据 [打印本页]

作者: 1039629873    时间: 2018-4-27 21:37
标题: 51单片机串口如何接收 24字节数据,解析有用数据
在使用单片机测试一款芯片的时候,使用串口接收芯片发送的数据,数据总是读不对。串口通讯部分没问题,问题是如何找到帧头??有效数据如何保存?
会的大佬提供一下思路或者代码,,感激不尽

112.png (30.03 KB, 下载次数: 96)

数据帧的格式

数据帧的格式

作者: wulin    时间: 2018-4-28 06:52
这个应该是自定义通讯协议,1、2字节是数据头3~23是有效数据,24是数据尾,用于校验数据传输是否正确。定义一个数组,通常在接收到数据时对第1、2字节判断,如正确连同继续接收的字节按序保存在缓存数组,否则抛弃继续等待接收。此时对保存在缓存数组里的数据进行校验,现在还没有看出来这个数据格式的校验算法,通常有累加校验和的校验方法。把前面所有字节的数据相加,超过一个字节的溢出部分自动丢弃,或把前面所有字节的数据相加后取反再+1,超过一个字节的溢出部分自动丢弃。解析数据就比较简单,缓存中提取3或2个字节的有效数据用左移16+左移8位+低8位的方法还原成24位或16位数据。
作者: shishanning    时间: 2018-4-28 09:30
建立一个接收数组,根据自己的需要处理接收数组的数据即可。楼上说的很详细
作者: xiaqjchint    时间: 2018-9-14 08:19
你好,这个串口问题解决了吗?
作者: 小猫猫爱吃鱼    时间: 2018-9-14 13:53
xiaqjchint 发表于 2018-9-14 08:19
你好,这个串口问题解决了吗?

这是一款电能芯片发出的数据,通过帧头和帧尾(校验位),先判断是不是有效值;
如果的有效值,再去读取里面的各项参数数据,你是使用的什么单片机来读取?
作者: xiaqjchint    时间: 2018-9-14 14:05
你好,你的问题解决了吗?
作者: xiaqjchint    时间: 2018-9-14 14:07
xiaqjchint 发表于 2018-9-14 08:19
你好,这个串口问题解决了吗?

我现在也遇到同样的情况,不知从何下手
作者: rsurb0371    时间: 2019-12-13 12:40
同样的困惑,,,大多的教程都是讲解用串口助手发送  一个字节,,,,没有讲解发送大批量数的,,,,,困惑中
作者: betar00    时间: 2020-2-18 16:16
哪个大神可以搞定?求分享
作者: sldx    时间: 2020-2-18 16:35
开头应该是55 5A,读取一个字节是55再度一个是5a就开始读,直到一个数值为67时停止,可以依次在数组里保存,需要那个就把他取出来
作者: lele5211314    时间: 2020-2-18 17:06
betar00 发表于 2020-2-18 16:16
哪个大神可以搞定?求分享

我可以搞定




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1