第十二届蓝桥杯物联网试题(国赛)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

不得不说国赛相比较省赛而言确实,功能变得更加复杂,更加繁琐,特别是串口+LORA通信相结合的更加频繁,且对收取的字符处理要求要更加复杂,处理判别起来会更加复杂。

对于收发数据本身来说,收发的数据本身是以字符串的形式,如果收取到字符串后仅仅用来显示,那就直接取显示部分的字符串即可但是偏偏还要判别字符串是否合法,符合某个数字区间,这就比较麻烦了

不得不说国赛确实时间要比省赛更加紧迫,真的是骄兵必败,不能掉以轻心

本此代码部分要注意的几个部分在于:

代码书写,还是要将整体划分成一个个小的模块来实现,最后模块之间测试可以通过Main接口直接测试非常方便,重要在于模块化后,模块之间是相对独立的,出BUG后可以单独锁定某个模块,测试修改也很方便,单个模块太大可以分俩小模块实现并链接

在这里插入图片描述
在这里插入图片描述

数据部分建议都定义成全局变量

在这里插入图片描述

这样的好处是模块A处理完这个数据后又可以调用模块B处理

单个功能太大太复杂,可以划分成两个或者多个小模进行逐层次处理,每个层次又是相对独立,方便锁定BUG区间

本次串口接收数据有个细节在于:

在这里插入图片描述

由于串口接收数据时DMA工作,这和cpu单独取数据不一样DMA取数据的时候可能才开始取,cpu就拿刚去的数去做处理,所以这里必须要延时一下让cpu等DMA取完再处理,这里是用DMA串口要注意的细节

长短按键我是第一次遇到,这里是用普通按键加定时器完成的,效果还不错

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总的来说不能掉以轻心,在pc机和LORA双板之间通信,以及对接收数据处理方面还是要下功夫,同样的一些不常考的知识点也是后面熟练复习掌握的内容,防止被背刺

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

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

相关文章

springboot webservice接口一个配置文件配置两个接口路径

需求是我们的Java项目中需要和移动端对接接口 ,同时也需要和终端设备对接接口所以为了区分做了两个接口路径: http://localhost:994/pbh/api app接口路径 http://localhost:994/pbh/terminal 终端接口路径 在配置文件中配置两套 Endpoint package com.…

每日一题——Python实现PAT甲级1029 Median(举一反三+思想解读+逐步优化)

一个认为一切根源都是“自己不够强”的INTJ 个人主页:用哲学编程-CSDN博客专栏:每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 我的方法 代码功能和结构点评 时间复杂度分析 空间复杂度分析 优化建议 我要更强…

深度学习环境安装教程-anaconda-python-pytorch

首先是anaconda的安装,可以从下面地址下载安装包 Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 尽量选择最新的日期的anaconda进行安装,我这里是windows电脑,因此选择了windos-x86_64.exe&#xf…

Git相关命令介绍

Git是一个功能强大的版本控制系统,它提供了一系列的命令来帮助开发者进行日常的版本控制操作。以下是一些常用的Git命令及其简要介绍: 初始化和配置 git init: 初始化一个新的Git仓库。git config: 配置Git的设置,如用户名、邮箱等。 文件…

如何在anaconda的环境下安装langchain

1、安装anaconda; 2、在终端上,输入: conda install langchain -c conda-forge Proceed ([y]/n)? y 输入:Y 3、安装完成后,输入: python -c "import langchain; print(langchain.__version__)&…

Redisson集成SpringBoot

前言:Redisson集成SpringBoot主要有两种方式,一个是使用redisson-spring-boot-starter依赖(优先推荐),毕竟springboot主打的就是约定大于配置,这个依赖就是为springboot准备的。 再一种方式就是引入rediss…

JVM学习-javap解析Class文件

解析字节码的作用 通过反编译生成字节码文件,可以深入了解Java工作机制,但自己分析类文件结构太麻烦,除了第三方的jclasslib工具外,官方提供了javapjavap是jdk自带的反解析工具,它的作用是根据class字节码文件&#x…

JVM(9):虚拟机性能分析和故障解决工具之jmap工具

1 jmap(Memory Map for Java)作用 一个多功能的命令,它可以生成 java 程序的 dump 文件, 也可以查看堆内对象信息、查看 ClassLoader 的信息以及 finalizer 队列 2 命令格式 jmap [options] 参数解释: 第一个参数:options no…

一个投稿好方法让你的文章早日发表

作为一名单位信息宣传员,我初入此行时,满腔热情,怀揣着传播单位价值、展示团队风采的理想,一头扎进了稿件撰写的海洋。我的目标很简单,就是通过文字的力量,让外界听到我们的声音,感受到我们的活力。然而,理想很丰满,现实却给我上了生动的一课。 起初,我遵循传统路径,选择了一家…

QT安装和配置[安装注意点][QT找不到python27.dll][缩小空间]

安装注意点 本文摘录于:https://blog.csdn.net/Python_0011/article/details/131699443只是做学习备份之用,绝无抄袭之意,有疑惑请联系本人! 双击"qt-online-installer-windows-x64-4.8.0.exe"文件后输入账号选择如下控…

云原生架构内涵_1.云原生架构定义

1.云原生架构 从技术的角度,云原生架构是基于云原生技术的一组架构原则和设计模式的集合,旨在将云应用中的非业务代码部分进行最大化的剥离,从而让云设施接管应用中原有的大量非功能特性(如弹性、韧性、安全、可观测性、灰度等&a…

什么是Capto刀柄,一起来认识一下

大家好,今天咱们不聊齿轮,说一说一款刀柄的相关内容。目前,高速加工中心的主轴转速可以达到10,000——50,000r /min ,极大地提高了生产率。高速加工工具系统的主要作用是保证刀具在机床主轴中的精确定位,将主轴的运动和…

车辆工程计算机编程:深度探索与未来挑战

车辆工程计算机编程:深度探索与未来挑战 随着科技的不断进步,车辆工程领域与计算机编程的交融日益紧密,为行业发展注入了新的活力。然而,对于许多人来说,车辆工程计算机编程究竟学什么,仍是一个充满困惑和…

【C++刷题】优选算法——递归第四辑

记忆化搜索篇 什么是记忆化搜索&#xff1f; 带 备忘录 的递归 如何实现记忆化搜索&#xff1f; a.添加一个备忘录 <可变参数&#xff0c;返回值>b.每次递归返回的时候&#xff0c;把结果放到备忘录里c.每次递归进入的时候&#xff0c;先查看一下备忘录 记忆化搜索 vs 常…

对于个人而言,大数据时代如何更好地管理自己的信息?

在大数据时代&#xff0c;管理个人信息变得尤为重要。以下是几个建议来更好地管理个人信息&#xff1a; 认识和了解自己的数字足迹&#xff1a;了解自己在互联网上的活动&#xff0c;包括浏览历史、社交媒体和在线购物数据等。通过查阅自己的帐户设置和隐私选项&#xff0c;可以…

golang信号通知 signal.Notify NotifyContext完整示例

在看示例之前有必要先看看Go程序中信号的默认行为&#xff0c; go中信号的默认行为如下&#xff1a; SIGHUP、SIGINT或SIGTERM信号会导致程序退出。SIGQUIT、SIGILL、SIGTRAP、SIGABRT、SIGSTKFLT、SIGEMT或SIGSYS信号会导致程序退出并进行堆栈转储。SIGTSTP、SIGTTIN或SIGT…

使用Nginx作为反向代理实现MQTT内外网通信

使用Nginx作为反向代理实现MQTT内外网通信 步骤1: 安装Nginx 确保你的服务器上已安装Nginx。如果未安装&#xff0c;可以通过以下命令在Ubuntu上安装Nginx&#xff1a; sudo apt update sudo apt install nginx步骤2: 配置Nginx 编辑Nginx的配置文件&#xff0c;通常是/etc…

全面掌握Prompt提示词技巧

本文综合介绍了Prompt提示词的各种技巧&#xff0c;包括高级提示工程技术、设计提示的通用技巧、优化prompt的十个技巧、AI提示词网站合集、提示工程指南以及ChatGPT提示词技巧等&#xff0c;旨在帮助读者深入理解和应用这些技巧&#xff0c;提高与AI模型的交互效率和质量。 文…

C++ 类模板 函数模板

类模板 #include <bits/stdc.h> using namespace std; //多少变量就写多少个 template<typename T1, typename T2> class Cat { public:Cat(){}Cat(T1 name, T2 age){this->age age;this->name name;}void print(){cout << this->name << …

Python脚本启动应用并输入账号或密码

一、简介 如果每天要启动某个软件还要输入账号密码登录的需求的话&#xff0c;可以参考本文章&#xff1b; 二、Python环境 环境&#xff1a;Python3.11 已经在Windows电脑中配置Python环境变量&#xff0c;且配置了pipd的环境变量&#xff1b; 三、安装模块 安装所需要的…