串口通信(7)判断数据帧头来接收一串数据

串口接收完整一帧数据包的3种方法 本文介绍3种使用串口接受一帧完整数据包的方法,串口接收数据是字节接收的,串口每接收1字节数据,产生一个串口中断,我们在中断中将接收到的数据存放到buf中进行保存,但是数据的发送和接收都是按照帧为单位进行传输的,因此我们要在接收数据的同时判断当前接收的数据是否是完整的一帧。 一般串口完整数据帧的定义:帧头(2字节,例如AA、BB) + 数据长度(2字节) + 数据+ CRC16校验(2字节) + 帧尾(2字节) 帧头、帧尾表示一帧数据的开始和结尾,数据长度表示当前数据帧中负载数据大小,CRC16校... 阅读详情
AI摘要

本文详细介绍了单片机串口通信中的码元、波特率概念,以及如何设计系统实现数据帧结构,包括起始位、停止位和帧头。还涉及硬件设计中的LED电路和软件设计中的定时器、中断处理。通过实例演示了如何发送字符串和控制LED灯响应数据帧内容。

 本文为博主 日月同辉,与我共生,csdn原创首发。希望看完后能对你有所帮助,不足之处请指正!一起交流学习,共同进步!

> 发布人:@日月同辉,与我共生_单片机-优快云博客

> 欢迎你为独创博主日月同辉,与我共生点赞❤❤❤+关注👍+收藏🌹+评论☺。

系列专栏: 优快云-单片机串口通信学习系列🎁

> 我的格言是:“尽最大努力,做最好的自己!💪

要转载,请提前告知!!!

版权声明:本文为优快云博主「日月同辉,与我共生」的原创文章,优快云独一份。

目录

一、码元、波特率

1.1码元

1.2波特率

二、数据帧

2.1起始位

2.2停止位

2.3数据-帧头

三、系统设计

3.1设计要求

3.2系统原理

3.3硬件设计

3.3.1串口设计

3.3.2LED电路

3.4软件设计

3.4.1发送数据

3.4.2串口初始化

3.4.3接收中断

3.4.4定时器初始化

3.4.5定时器中断模块

3.4.6处接收数据理模块

四、结果

4.1发送两个字符串

4.2LED灯亮

4.3LED灯灭

一、码元、波特率

1.1码元

用相同时间间隔的符号来表示一个二进制数,一般来说,码元≠比特(1个二进制数相当于1个比特,用1bit表示),例如,有4种状态(0、1、2、3),分别用二进制数表示,即为00、01、10、11,因此1码元=2比特,特殊地,如果是2种状态(0、1),可以用0、1两个二进制数分别表示两种状态,此时1码元=1比特。在串口通信中,每次发送数据都是一个一个地发送,因此串口通信码元=比特。

1.2波特率

单位时间内发送的码元数,称为波特率,单位为b/s。

我们常用9600b/s,每发送1比特需要的时间为1s/9600=104us

二、数据帧

2.1起始位

1位,表示一次通信的开始,给接收器时钟一个同步,告知接收端开始接收数据。

2.2停止位

1位,一次通信的结束。

2.3数据-帧头

串口通信帧头(也称为帧起始标志)是用来标识一个串口通信帧的开始位置的特殊字符。它的作用是让接收端能够正确地识别数据帧的开始位置,以便接收端能够正确地解析整个数据帧。帧头通常是一个固定的特定字符或字符组合。

三、系统设计

3.1设计要求

本

工程思想——关于串口通讯协议帧数据的一些想法 前言:之前在学校上计算机网络这门课程时候,被里面的各种协议绕的头晕眼花,总以为这些协议都已经被前辈固定,后生们只要按照之前的协议老老实实收发数据就能解决一切,直到自己也有做东西时要自己编写通讯协议时,遇到了一大堆问题,也踩了不少坑,在这里写下来一些自己的思考。 ... 阅读详情

相关推荐

uart——串口数据帧处理

在串口上,我们经常要对传过来的数据进行处理与解析。最经典的就是处理数据帧,数据帧是什么呢?数据帧在我看来就是一连串的数据单元。数据帧定义了一些基本的协议。例如,数据帧一般会定义出帧头、帧尾、校验位、数据位、数据长度、命令字节(CMD)命令。串口是进行处理串口数据帧的方式:一般我们通过对数据帧的处理判断接受到的数据是否符合协议上的要求,解析到数据帧的格式符合要求则执行我们要执行的操作,否则丢弃这一帧的数据包,等待下一次的数据传输过来。

weixin_51914919的博客 4300

串口通信(8)串口中断“边接收边解析数据“的通信程序

串口通信+边接收边解析数据原理+判断数据正确性+发送数据+处理LED和蜂鸣器+免费代码解释

LIN___IT的博客 2091

S32K144 UART通信实战:从硬件配置到应用层协议设计

通用异步收发器(UART)作为一种基础且广泛应用的串行通信接口,其核心原理是通过约定的波特率、数据位、停止位和校验位,在单条数据线上实现设备间的全双工异步数据传输。在嵌入式系统开发中,UART是连接微控制器与上位机、传感器或其他外设的关键桥梁,其稳定性和效率直接影响系统整体性能。通过合理配置时钟树、选择中断或DMA传输模式,并结合环形缓冲区等软件设计,可以构建高效可靠的数据链路。在汽车电子和工业控制等场景下,UART通信常需应对复杂电磁环境与实时性要求,因此,从硬件引脚复用、电平匹配到软件层面的数据帧设计与

weixin_30321449的博客 331

C#串口通讯助手:VS直接运行、轻量稳定、协议可定制

串口通信是嵌入式开发、工业控制和设备联调的基础技术,其核心在于可靠的数据收发、精准的帧解析与灵活的协议适配。基于System.IO.Ports原生封装的C#串口助手,规避了第三方库兼容性风险,通过线程安全队列、自动重连、粘包处理等机制保障高稳定性;支持十六进制交互、自定义校验(XOR/CRC16)、头尾帧识别等关键能力,显著降低PLC、温控仪、传感器等设备的调试门槛。适用于Windows 7+工控环境,无需额外运行时,开箱即用,亦可快速二次开发适配私有协议。

weixin_33508411的博客 246

串口帧头帧尾判断.vi

数据帧格式为:帧头1、帧头2、数据1高、数据1低、数据2高、数据2低、数据3高、数据3低、数据4高、数据4低、帧尾1、帧尾2数据接收类似于堆栈的入栈操作,最新收到的数据始终在数组的第0个元素中,当收到一帧数据后,数据排列是反过来的。程序每次只读取一个数据,当判断接收数据为帧头时才开始一帧数据的接收,当判断到帧尾后,结束一帧数据的接收,并进行数据处理,处理完成后,进行下一帧数据的接收。

实战指南:从零开始用YOLOv8训练VisDrone无人机检测模型

本文提供了一份详细的实战指南,手把手教你从零开始使用YOLOv8训练一个无人机检测模型。内容涵盖VisDrone数据集下载与格式转换、YAML配置文件编写、模型训练与评估,以及最终的推理部署,旨在帮助开发者快速掌握无人机视角下的目标检测技术。

salt的博客 682

统信UOS/麒麟Kylin OS下利用pyenv实现Python多版本开发环境搭建指南

本文详细介绍了在统信UOS和麒麟Kylin OS国产操作系统下使用pyenv搭建Python多版本开发环境的完整指南。从系统环境准备、pyenv定制安装到Python版本编译实战,提供了针对国产CPU架构的特殊优化方案和常见问题解决方法,帮助开发者高效管理不同Python版本需求。

sea99的博客 1051

PDPS16.0单机版与SPLMLicenseServer授权避坑指南:从安装到冲突解决

本文详细解析了PDPS16.0单机版的安装与授权流程,重点阐述了如何正确配置SPLMLicenseServer本地许可证服务器以实现软件激活。针对安装过程中常见的许可证冲突问题,提供了清晰的排查思路和解决方案,并介绍了通过设置环境变量等替代授权方法,帮助用户高效避坑,确保Tecnomatix Process Simulate顺利运行。

weixin_29231221的博客 563

cMake编译 VS2026+opencv4.12.0+opencv_contrib-4.12.0

本文提供了OpenCV 4.12.0集成CUDA、cuDNN和ONNX Runtime的详细编译指南。主要步骤包括:准备Visual Studio 2026、CMake 4.2.0、CUDA 12.6和cuDNN 9.16.0;设置无空格和中文的路径结构;配置关键CMake变量(如开启CUDA支持、指定路径等);以及最终的编译安装过程。注意事项包括:版本一致性检查、cuDNN文件复制、国内用户需手动获取.cache文件等。文章还提供了常见问题解决方案,如通过设置CUDA_NVCC_FLAGS参数解决VS版本

weixin_46624734的博客 1384

Triton推理服务器实战:如何为PaddleOCR的ONNX模型配置动态批处理和并发推理

本文详细介绍了如何使用Triton推理服务器为PaddleOCR的ONNX模型配置动态批处理和并发推理,以提升GPU利用率和推理性能。通过实战案例和参数调优指南,帮助开发者解决高并发场景下的性能瓶颈问题,实现从实验室到生产环境的高效部署。

weixin_42527160的博客 426

keras tensorflow 的lstm的新冠疫情感染人数预测 附完整代码数据 可直接运行

keras tensorflow 的lstm的新冠疫情感染人数预测 附完整代码数据 可直接运行

847

Vue3 - 详细实现流程图编辑器可视化平台示例代码,打造前端web网页流程图在线编辑绘制操作展示,vue3自定义绘制流程图在页面上画流程图功能(提供各种操作按钮及节点控件,界面美观交互式流程图插件)

vue3,绘制流程图,在线流程图制作,在vue3中实现流程图,vue3做一个制作流程图的功能,vue3流程图组件,vue3流程图,流程图绘制展示,vue3流程图可视化在线编辑源码,基于VUE3的在线绘制流程图工具,vue3+logicflow流程图,绘制动态流程图并自定义节点和线,vue使用logicFlow绘制流程图,生成各种流程图图形可连接点移除,基于Vue的流程图组件,工作流程图,流程编辑器,vue3流程组件,vue-flow绘制流程图,绘制流程图示例demo,vue3 logicflow流程图使用教

🏆 前端领域优质创作者 9967

《深入掌握MongoDB数据库》 - 专栏介绍和目录

本专栏系统讲解MongoDB从基础到高级的全栈知识,涵盖安装配置、核心操作、性能优化、安全运维等核心内容。基础部分包括CRUD操作、数据类型、查询语法等入门知识;进阶部分深入索引优化、聚合查询、事务处理等高级特性;核心原理解析存储引擎与数据格式;安全运维则聚焦访问控制、认证机制、审计日志等企业级实践。通过实战案例与最佳实践,帮助开发者全面掌握MongoDB在不同场景下的应用,适合各层次技术人员系统学习。

数据知道的博客 2994

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

上一篇: 串口通信(6)应用定时器中断+串口中断实现接收一串数据
下一篇: 串口通信(8)串口中断“边接收边解析数据“的通信程序
@日月同辉,与我共生
博客等级 码龄4年 3247粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值