万能的串口数据接收及处理方法

article/2025/9/22 2:31:50

        搞单片机,肯定少不了串口的使用,不管是调试也好,与其他设备通信也好,是我们不可或缺的利器。接下来就分享一下本人在项目中使用串口接收数据及处理的方法。

        先介绍下主要思路,首先需要开一个定时器,我们接收串口端发来的数据,这个时候会产生接收中断,在中断里面我们做三件事,1.启动定时器;2.清除时间计数器;3.接收数据存放到事先定义好的缓存buffer;然后我们在定时器中断里面也做三件事:1.累加时间计数器;2.判断时间计数器是否超过我们设定的阈值(超过,说明等待了一段时间没有收到数据,判定数据接收完毕,具体时间是具体情况而定)3.判定接收完毕数据之后,清除计数器,处理接收数据的buffer,清除buffer,关闭定时器;这是主要思路,也是最为重要的部分,最后给出我的代码,可以移植到任何处理器上面,非常实用。这里在强调一下定时器的问题,我们有两种用法,一是,需要用到定时器就打开,不用就关闭,上面介绍的思路是这种使用方法;二是,打开定时器之后不关闭,让其一直运行,这样的好处是我们可以用一个定时器处理多个串口通信问题,当做一个时基,因为实际项目中很多情况都是同时会使用多个串口;下面我给的代码用的是第二种方法,了解了思路其实是很简单的事情。

串口数据结构体:

处理接口函数

串口中断处理

定时器中的数据处理,里面只是把接收到的数据原封不动传回去,使用send_str()函数,在此地方大家可以加入自己数据处理的方法

上述接口函数的具体实现

至此结束,希望对大家有所帮助,欢迎分享大家自己的想法!!!


http://chatgpt.dhexx.cn/article/pk1EhAo3.shtml

相关文章

数据不平衡的处理方法

数据不平衡经常出现在分类问题上,数据不平衡指的是在数据集中不同类别的样本数量差距很大,比如,在病人是否得癌症的数据集上,可能绝大部分的样本类别都是健康的,只有极少部分样本类别是患病的。下面介绍几个常用的处理…

样本数据异常值处理的三种方法

1.3sigma异常值识别 数据需要服从正态分布,正负3∂的概率是99.7%,那么距离平均值3∂之外的值出现的概率为P(|x-u| 3∂) 0.003,属于极个别的小概率事件。如果数据不服从正态分布,也可以用远离平均值的多少倍标准差来描述。 2.IQR…

异常数据处理

常用处理方法: 异常值的处理方法常用有四种: 1.删除含有异常值的记录 2.将异常值视为缺失值,交给缺失值处理方法来处理 3.用平均值来修正 4.不处理 需要强调的是,如何判定和处理异常值,需要结合实际。 # 异常数据…

数据以及空值数据处理方法

第四节 数据七十二变 1、对于简单的数据删除空值数据(NaN)——对于简单的数据进行过滤,如果对于负责的 DataFrame对象进行使用则会存在空值数据过滤不干净 import pandas as pd——导入模块 li[2,NaN,4,6,NaN,4]——数据集 sepd…

数据无量纲处理方法

本文转自:https://blog.csdn.net/weixin_39953618/article/details/111101747 在进行数据分析时,数据具有单位是非常常见的,比如说GDP可以以亿作为单元,也可以以百万作为单位,那么此时就会出现由于单位问题导致的数字大…

大数据量的五种处理方式

http://www.51projob.com/a/bishimianshi/hailiangshuju/2012/0322/111.html 处理海量数据问题,无非就是: 分而治之/hash映射 hash统计 堆/快速/归并排序; Bloom filter/Bitmap;Trie树/数据库/倒排索引;外排序&…

Errors while compiling. Reload prevented

Errors while compiling. Reload prevented来自菜鸟的哭诉 在这边吐槽的同时为各位刚上手前端的各位一个经验 报这个东东的时候,你搜了百分百都是说你没安装webpack等相关配置,从而频繁刷新会报错。 没错,的确是的。 但是,我就…

#error 用法

#error命令是C/C语言的预处理命令之一,当预处理器预处理到#error命令时将停止编译并输出用户自定义的错误消息。 #error [用户自定义的错误消息]注:上述语法成份中的方括号"[]"代表用户自定义的错误消息可以省略不写。举例1:#error Sorry,an error has o…

ERROR: Encountered errors while bringing up the project.

ERROR: Encountered errors while bringing up the project. 错误信息 错误出现的原因是,之前启动的 docker-compose 没有关闭。 解决方法 先把之前的 docker-compose 关闭 docker-compose down之后再执行 docker-compose up

R Error: BiocParallel errors 1 remote errors, element index: 1 506 unevaluated and other errors解决办法

我在用minfi包下面这个函数读取甲基化数据的时候&#xff0c; RGset1 <- read.metharray.exp(targetstargets1,force T) 出现了下面这个报错 查看了自己的idat文件地址&#xff0c;没有错 又查看了target1&#xff08;read.metharray.exp函数的参数之一&#xff09;&#…

Error building Player because scripts had compiler errors

Unity打包出现Error building Player because scripts had compiler errors 这里网上有多数解决方案都是说有一些脚本继承了Editor接口的脚本导致的&#xff0c;这里可以先检查一下&#xff0c;如果有这类脚本创建Editor文件夹&#xff0c;把脚本放进去。还不行的话再添加#if …

Errors occurred during the build. Errors running builder 终版解决方案

Errors occurred during the build. Errors running builder 终版解决方案 **项目无法编译可能和这个有关。。。。。。 开发工具 eclipse,JAVA&#xff08;当然idea也会报错&#xff0c;但是错误好像不太一样&#xff09; 解决过程&#xff1a; 注意&#xff1a;*不要再这个问…

ERR Errors trying to SHUTDOWN. Check logs.

使用shutdown命令报错&#xff1a; ERR Errors trying to SHUTDOWN. Check logs. 原因&#xff1a; 我们的日志文件没有配置执行命令&#xff0c;会进行保存&#xff0c;但是权限不够&#xff0c;也就是要给rbd文件赋予权限。 解决办法&#xff1a; 1、进入我们的redis.conf…

CCS报错#10010 errors encountered during linking;

CCS新建F28335工程&#xff0c;运行报错&#xff1a; 解决方案&#xff1a; 1.打开如下路径 2.全部勾选即可 3.运行成功&#xff0c;生成.out文件

Errors报错记录

Errors报错记录 前言Error1Error2Error3Error4Error5Error6Error7Error8Error9Error10Error11总结 前言 记录运行程序时的错误&#xff0c;方便查找&#xff0c;主要包括python深度学习程序错误&#xff0c;opencv(c)程序错误等&#xff0c;没有特定顺序&#xff0c;按照我遇到…

vue项目中Uncaught runtime errors:怎样关闭

使用vue-cli新建的vue项目&#xff0c;当出现编译错误或警告时&#xff0c;在浏览器中显示全屏覆盖&#xff0c;如下图&#xff0c;此报错在生产环境下并不会出现 通过看控制台&#xff0c;找到关键词webpack 可以明显的看出来是webpack-dev-server弄出来的 解决办法 在vue.co…

Errors~kafka.errors.NoBrokersAvailable: NoBrokersAvailable

1. 错误截图 2. 错误说明 kafka服务正常启动kafka-console-producer和kafka-console-consume也好使listeners和advertised.listeners也都配置了本地使用python创建生产者连接broker集群的时候报错 3. 错误原因 创建Kafka.Producer的时候没有指定api_version # 创建Kafka生产…

出现ERROR:怎么解决

此时我刚刚下载完成&#xff0c;怀着两行激动的泪水来分享我的发现&#x1f423;&#x1f425; 我们下载安装包时会出现 1-.通常情况下我们可以切换镜像源 pip install 库包名 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com 当然你也可以切换清华&#…

Go语言的errors

Go语言的errors包有4个方法&#xff1a; errors.Aserrors.Iserrors.Newerrors.Unwrap 本期我们来揭开他们的神秘面纱。俗话说的好&#xff0c;柿子还得挑软的捏&#xff0c;按照国际惯例我们先从最简单的New函数开始。 在 Go 源码目录的 errors 目录下&#xff0c;有errors.g…

no python application found, check your startup logs for errors错误解决

今天在倒腾django项目的时候突然遇到一个bug&#xff0c;一开始报的是内部服务器错误&#xff1a;“Internal Server Error”&#xff0c;此时服务器的状态是Nginx开启了8000端口&#xff0c;uWSGI服务也在启动中&#xff0c;然后开始排查&#xff0c;首先从Nginx下手&#xff…