当前位置: 首页 > news >正文

STM32数据包格式

在理解了双缓存池和环形缓存池之后,我又细想了下这个流程:
串口发送数据过来,当前设备需要先将数据存入环形缓存池,然后同一时间,就需要对环形缓存池的数据进行解析处理了(要是延时想让缓存池积累点再处理,可能会导致缓存池溢出)
处理的时候也是一个字节一个字节处理的,首先就是查询缓存池的两个指针,判断池子里是否有数据,然后就是取出一个数据,判断是否是帧头,这个地方又有说法了:帧头可以是一个字节,也可以是两个字节,
两个字节是为了确保识别到真·帧头,可以取一些不容易重复出现的帧头,比如0XAA 0XAA之类的。一个帧头的话也有在用,比如简单设备、传感器、调试协议之类的,不过如果是成熟的产品,还是2个字节帧头比较好。
(我还没有当过嵌入式工程师,只是在理论阶段,应该2个字节帧头够用了吧)对了,把帧头数据存入缓存池1。
获取完帧头之后就是获取字节长度,其实这里也可以再做一层校验,比如你确定数据长度是16个字节之内的,直接就判断这个数据长度是否超出了16个字节,如果超出了,那这一帧肯定又损坏了,又可以做安全性处理。
将字节长度存入缓存池1,然后就是根据字节长度,将后续的数个字节按序直接存入缓存池1,不需要做判断之类的,然后再存入CRC校验位1和2。
然后将缓存池1的完整的一帧数据,进行CRC校验(CRC校验位到底哪个在前哪个在后,根据实际代码看吧,说默认是小端模式先低后高),通过之后就可以存入缓存池2,进行数据解析处理对应的逻辑了。

http://www.jsqmd.com/news/593831/

相关文章:

  • 前端团队协作吐槽:别再让你的团队变成一盘散沙!
  • 微信聊天记录永久保存:WeChatMsg高效数据备份完整指南
  • DeerFlow 深度解析:字节跳出的超级 Agent 框架
  • 从Hyper-V到内核隔离:手把手教你为eNSP在Win11 24H2上‘清场’(安全功能关闭指南)
  • 如何用DS4Windows让PS手柄在PC游戏世界畅通无阻
  • x86汇编堆栈第二个案例
  • polarisctf招新赛(web部分
  • 企业电话号码认证服务商,实现华为、小米、荣耀、vivo、oppo手机来电显示公司名 - 企业服务推荐
  • go学习笔记3(变量定义,输入输出,基本数据类型)
  • 云效流水线+K8s实战:Java微服务全自动部署与优化指南(手把手版)
  • 如何彻底销毁敏感数据?开源DBAN工具的终极安全指南
  • 【C++第二十四章】异常
  • web前端开法技术课堂笔记07
  • 3大终极方案解决Amlogic设备U盘启动难题:从故障诊断到系统优化的完整指南
  • 从STM32到FPGA:手把手教你搞定MCU与高速器件的时钟电路设计(晶振篇)
  • 深入解析建造者模式:告别“伸缩构造器”,优雅构建复杂对象
  • 15人开发团队的远程办公“通关秘籍”——飞将让内网互访又快又稳
  • P16185 [LBA-OI R1 B] 战术突破 题解
  • Steam Depot清单自动化工具:Onekey实现游戏数据高效管理的完整方案
  • 智能图片采集工具Image-Downloader:从需求到落地的完整指南
  • 【C++第二十五章】智能指针
  • SpringBoot + 本地事务表 + 定时扫描补偿:轻量级方案实现最终一致性,无中间件依赖
  • 计算机毕业设计:Python二手车智能数据分析与可视化决策平台 Django框架 可视化 线性回归 数据分析 机器学习 深度学习 AI 大模型(建议收藏)✅
  • 用 Win32 API MCP Tool 打通桌面环境控制链路,兼谈 DМχΑРΙ
  • Obsidian Tag Summary插件完全指南:用标签玩出笔记系统的“黑科技感“
  • 20252820 2024-2025-2 《网络攻防实践》第4次作业
  • YimMenu终极指南:5分钟学会GTA5最强安全增强工具
  • JAVA重点基础、进阶知识及易错点总结(34)注解基础(Annotation)
  • OpenCV直线检测避坑指南:HoughLinesP参数调优实战(Python版)
  • Go语言的缓存策略与实现