STM32--USART串口(3)数据包

news2024/11/18 7:26:26

一、前言

在实际的工程中肯会有同时发送多种数据的情况,比如要不停的发送x、y、z分别对应三种不同的数据。xyzxyzxyz,但接收方可能是从中间某个地方开始接收的,这就导致数据错位。所以我们就需要将数据进行分割,打包成一个一个的数据包,方便接收方进行识别。数据包的格式可以自行定义,一般有包头、包尾、校验位等

二、固定包长HEX数据包接收

假设数据包,包头:0XFF;包尾:0XFE;

对于包头,数据,包尾这3种数据,我们都需要不同的处理逻辑。所以在程序中,我们需要设计一个能记住不同状态的机制,在不同状态执行不同的操作,同时还要进行状态的合理转移。这种程序设计思维,叫做状态机

我们 可以设计三个状态,第一个状态是等待包头,第二个状态时接收数据,第三个状态是等待包尾。

在同一个中断中通过判断s的值来确定接受到数据的状态,从而做相应的处理。

三、可变包长文本数据包接收

与上面相似

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1428683.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

个人网站如何让搜索引擎收录

当我们花费功夫搭建好个人网站,如何能让搜索引擎搜索到个人网站呢?比如百度,根本百度不到自己网站的内容。这时候就要使用到搜索引擎提供的站点收录功能了,但是点开百度的搜索资源平台,添加自己的站点时,就…

Docker进阶篇-Docker网络

一、描述 1、docker不启动,默认网络情况 查看网卡情况使用,ifconfig或者ip addr ens33:本机网卡 lo:本机回环网络网卡 virbr0:在CentoS 7的安装过程中如果有选择相关虚拟化的的服务安装系统后,启动网卡时会发现 …

BUU刷题[WUSTCTF2020]朴实无华

[WUSTCTF2020]朴实无华 打开之后显示hack me,并且浏览器的头部是乱码 可以用浏览器插件Charset将编码改为UTF-8,edge浏览器可以下载扩展 https://microsoftedge.microsoft.com/addons/search/charset?hlen-US 写着人家极乐bot,不知道什么…

3dmatch-toolbox详细安装教程-Ubuntu14.04

3dmatch-toolbox详细安装教程-Ubuntu14.04 前言docker搭建Ubuntu14.04安装第三方库安装cuda/cundnn安装OpenCV安装Matlab 安装以及运行3dmatch-toolbox1.安装测试3dmatch-toolbox(对齐两个点云) 总结 前言 paper:3DMatch: Learning Local Geometric Descriptors from RGB-D Re…

vcruntime140.dll怎么下载安装,vcruntime140.dll详细安装教程

vcruntime140.dll’,这个看似陌生而又技术性的文件名,实际上是计算机系统中一个至关重要的动态链接库文件。它是Visual C Redistributable运行时组件的一部分,由微软公司开发并维护,对于许多基于Windows操作系统的软件正常运行起着…

Flink实时数仓同步:流水表实战详解

一、背景 在大数据领域,初始阶段业务数据通常被存储于关系型数据库,如MySQL。然而,为满足日常分析和报表等需求,大数据平台采用多种同步方式,以适应这些业务数据的不同存储需求。这些同步存储方式包括离线仓库和实时仓…

蓝桥杯---垒骰子

赌圣atm晚年迷恋上了垒骰子,就是把骰子一个垒在另一个上边,不能歪歪扭扭,要垒成方柱体。经过长期观察,atm 发现了稳定骰子的奥秘:有些数字的面贴着会互相排斥!我们先来规范一下骰子:1的对面是4&…

【BIAI】Lecture 9-Motor system 1

Motor System 专业词汇 skeletal muscle 骨骼肌 smooth muscle 平滑肌 cardiac muscle 心肌 flexor reflex 屈曲反射 central pattern generators 中央模式生成器 bio-inspired bipedal robots 仿生双足机器人 myotatic stretch reflex 肌肉自伸展反射 Cortex optic nerve 视皮…

vite和vue-cli实现原理和优化及区别

Vite: 1. 实现原理: Vite 是一个基于 ESModule 的构建工具。它利用原生 ESModule 的特性,将每个文件作为一个模块,通过浏览器去解析和执行,而不需要提前将文件打包成一个单独的 bundle。Vite 利用浏览器的原生 ESMod…

【android】对于google-webrtc的性能中, memory leak

目录 zlmediakit->webrtcplay->app webrtcutil1/3 测试程序等 zlmediakit->webrtcplay->app 编译sdk 32 有时候会从开始新增5M,就稳定在一个值了 webrtcutil1/3 测试程序等 编译sdk 30

带着问题读源码——Spring MVC是怎么找到接口实现类的?

引言 我们的产品主打金融服务领域,以B端客户为我们的核心合作伙伴,然而,我们的服务最终将惠及C端消费者。在技术实现上,我们采用了公司自主研发的微服务框架,该框架基于SpringBoot,旨在提供高效、可靠的服…

架构学习(二):原生scrapy如何接入scrapy-redis,初步入局分布式

原生scrapy如何接入scrapy-redis,实现初步入局分布式 前言scrpy-redis分布式碎语 实现流程扩展结束 前言 scrpy-redis分布式 下图是scrpy-redis官方提供的架构图,按我理解,与原生scrapy的差异主要是把名单队列服务器化,也是存储…

Ps:Photomerge

Ps菜单:文件/自动/Photomerge Automate/Photomerge Photomerge 命令可用于自动合并多张照片成为一个无缝的全景图像,特别适用于景观摄影、建筑摄影,以及任何需要将多张图片合并为单一宽幅图像的场景。 执行 Photomerge 命令之后,首…

undo log 和 redo log的区别

undo log 和 redo log的区别 缓冲池(Buffer Pool)是MySQL用于存储数据页的内存区域,它用于减少对磁盘的读写操作,提高数据库的访问速度。在MySQL中,数据被分为多个固定大小的数据页(通常为16KB&#xff09…

第十一篇【传奇开心果系列】Python的OpenCV技术点案例示例:三维重建

传奇开心果短博文系列 系列短博文目录Python的OpenCV技术点案例示例系列 短博文目录一、前言二、OpenCV三维重建介绍三、基于区域的SGBM示例代码四、BM(Block Matching)算法介绍和示例代码五、基于能量最小化的GC(Graph Cut)算法介…

【机器学习】科学库使用手册第2篇:机器学习任务和工作流程(已分享,附代码)

本系列文章md笔记(已分享)主要讨论人工智能相关知识。主要内容包括,了解机器学习定义以及应用场景,掌握机器学习基础环境的安装和使用,掌握利用常用的科学计算库对数据进行展示、分析,学会使用jupyter note…

Django响应式图像库django-pictures

什么是响应式图像? 响应式设计是指网页在不同尺寸的设备上都有良好的显示效果。响应式设计的网页图像,就是响应式图像。 django-pictures是使用现代代码(如 AVIF 和 WebP)的响应式跨浏览器图像库。 特点 使用 Picture 标签的响应…

微信小程序新手入门教程二:认识JSON配置文件

在上一篇我们介绍了微信小程序的注册和基本使用方式,并且写出了一个简单的页面,但是依然没有解释目录中的各种.json文件是做什么的。这篇我们就来认识一下各种JSON配置文件及其配置项。 一 认识JSON 首先先来认识一下JSON是什么。 JSON 指的是 JavaScri…

开源大数据集群部署(九)Ranger审计日志集成(solr)

作者:櫰木 1、下载solr安装包并解压包 tar -xzvf solr-8.11.2.gz cd solr-8.11.2 执行安装脚本 ./bin/install_solr_service.sh /opt/solr-8.11.2.tgz安装后,会在/etc/default/ 下生成solr.in.sh文件。 2、在rangeradmin下生成solr相关配置 cd /opt…

比瓴科技入围软件供应链安全赛道!为关键信息基础设施安全建设注入新动力

1月20日,中关村华安关键信息基础设施安全保护联盟会员大会暨关键信息基础设施安全保护论坛在北京成功举办,比瓴科技作为会员单位受邀出席。 本次论坛发布了《关键信息基础设施安全保护支撑能力白皮书(2023)》,比瓴科技…