找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6708|回复: 10
收起左侧

51单片机串口如何接收 24字节数据,解析有用数据

[复制链接]
ID:128402 发表于 2018-4-27 21:37 | 显示全部楼层 |阅读模式
在使用单片机测试一款芯片的时候,使用串口接收芯片发送的数据,数据总是读不对。串口通讯部分没问题,问题是如何找到帧头??有效数据如何保存?
会的大佬提供一下思路或者代码,,感激不尽

数据帧的格式

数据帧的格式
回复

使用道具 举报

ID:213173 发表于 2018-4-28 06:52 | 显示全部楼层
这个应该是自定义通讯协议,1、2字节是数据头3~23是有效数据,24是数据尾,用于校验数据传输是否正确。定义一个数组,通常在接收到数据时对第1、2字节判断,如正确连同继续接收的字节按序保存在缓存数组,否则抛弃继续等待接收。此时对保存在缓存数组里的数据进行校验,现在还没有看出来这个数据格式的校验算法,通常有累加校验和的校验方法。把前面所有字节的数据相加,超过一个字节的溢出部分自动丢弃,或把前面所有字节的数据相加后取反再+1,超过一个字节的溢出部分自动丢弃。解析数据就比较简单,缓存中提取3或2个字节的有效数据用左移16+左移8位+低8位的方法还原成24位或16位数据。
回复

使用道具 举报

ID:312464 发表于 2018-4-28 09:30 | 显示全部楼层
建立一个接收数组,根据自己的需要处理接收数组的数据即可。楼上说的很详细
回复

使用道具 举报

ID:397757 发表于 2018-9-14 08:19 | 显示全部楼层
你好,这个串口问题解决了吗?
回复

使用道具 举报

ID:303383 发表于 2018-9-14 13:53 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

ID:397757 发表于 2018-9-14 14:05 | 显示全部楼层
你好,你的问题解决了吗?
回复

使用道具 举报

ID:397757 发表于 2018-9-14 14:07 | 显示全部楼层
xiaqjchint 发表于 2018-9-14 08:19
你好,这个串口问题解决了吗?

我现在也遇到同样的情况,不知从何下手
回复

使用道具 举报

ID:434663 发表于 2019-12-13 12:40 | 显示全部楼层
同样的困惑,,,大多的教程都是讲解用串口助手发送  一个字节,,,,没有讲解发送大批量数的,,,,,困惑中
回复

使用道具 举报

ID:639665 发表于 2020-2-18 16:16 | 显示全部楼层
哪个大神可以搞定?求分享
回复

使用道具 举报

ID:219796 发表于 2020-2-18 16:35 来自手机 | 显示全部楼层
开头应该是55 5A,读取一个字节是55再度一个是5a就开始读,直到一个数值为67时停止,可以依次在数组里保存,需要那个就把他取出来
回复

使用道具 举报

ID:93224 发表于 2020-2-18 17:06 | 显示全部楼层
betar00 发表于 2020-2-18 16:16
哪个大神可以搞定?求分享

我可以搞定
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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