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

news2024/11/10 14:17:51

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

思路:

这个考了一个RTC的配置,RTC我只配过一次,所以有些生疏,还是不能大意,一些偏僻的考点还是要多练,在获取RTC时间的时候也遇到一些bug,这个后续会用一篇博客将最近遇到的BUG都总结一下

主要的难点还是通信协议问题因为B板在收到串口的通信的时候要立即给A板发指令,A板还要将信息传递给B板,B板子还要接收消息,然后用串口发送给用户,这个通信之间要处理适当,不要产生通信干扰

其中串口通信和接收就比较宽松,只要程序不陷入死循环,串口发出的数据一般都是能收到的,串口通信的发送和接收都采用等待阻塞,如果有数据传输,那么就会阻塞住直到数据被全部接收完,如果这个时间没有数据,程序也会等待一会,一般设置的是0xff也就是255ms

即:串口会阻塞255ms在这期间数据能被接收完整即可,如果只是一条简单的if语句那么电脑执行时间大概是ns级的,当串口波特率为9600的时候传输一个数据所要的时间大概是1/9600大概104us换算成ns大概是104000ns如果程序中没有其他延时的话够整个程序执行一个周期了。所以串口收发时间是很充裕的,串口发送是有数据在255ms内发送完,没数据直接跳过不阻塞

那么问题的关键自然就来到LORA收发了,LORA通信原理之前我已经详细说过,不再多赘述,重点在于LORA一般情况下都处于接收数据的状态,数据传递过来会被放到FIFO数据线上,LORA_RX只是取数据线上的数据,所以本质上讲LORA不是实时传输,数据传输过来会被储存起来,等待LORA_Rx取出
但是要注意在调用LORA_Tx的时候,整个系统会在这期间进入发送状态,发送的时候也需要将数据放入FIFO数据线上,这就意味着,如果数据没有被取出,LORA_Tx会清除之前的数据,将自己发送的数据放入数据线,且发送过程中不接收别的设备发送的数据

所以有FIFO中数据必须要即时取出,且LORA_Rx和LORA_Tx不能同时在主函数中循环,因为LORA_Tx会破坏接收到但还未取出的数据,所以必须要将LORA_Tx与前者分开

解决通信冲突的方法:

主函数一直调用LORA_Rx确保数据能被即时取出,LORA_Tx在发送数据数组不为空的时候才发送,且发送完后立即将发送数据数组清空

串口通信也可以采用同样的方式,既可以避免通信矛盾也可以防止数据的重复发送

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

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

相关文章

RPA-财务对账邮件应用自动化(客户对账机器人)

《财务对账邮件应用自动化》,将会使用邮箱的SMTP服务,小北把资源包绑定在这篇博客了 Uibot (RPA设计软件)———机器人的小项目友友们可以参考小北的课前材料五博客~ (本博客中会有部分课程ppt截屏,如有侵权请及请及时与小北我取得联系~) …

Knative 助力 XTransfer 加速应用云原生 Serverless 化

作者:元毅 公司介绍 XTransfer 是一站式外贸企业跨境金融和风控服务公司,致力于帮助中小微企业大幅降低全球展业的门槛和成本,提升全球竞争力。公司连续7年专注 B2B 外贸金融服务,已成为中国 B2B 外贸金融第一平台,目…

服务端应用多级缓存架构方案

服务端应用多级缓存架构方案 场景 20w的QPS的场景下,服务端架构应如何设计? 常规解决方案 可使用分布式缓存来抗,比如redis集群,6主6从,主提供读写,从作为备,不提供读写服务。1台平均抗3w并…

政安晨:【TensorFlow与Keras实战演绎机器学习】专栏 —— 目录

政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 收录专栏: TensorFlow与Keras实战演绎机器学习 希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正! 本篇是作者政安晨的专栏《TensorFlow与Keras…

电源模块 YULIN俞霖科技DC/DC电源模块 直流升压 高压稳压

Features 最低工作电压:0.7V电压隔离:1000VDC /3000VDC 平均无故障时间: > 800,000 小时短路与电弧保护无最低负载要求:可空载工作输入电压:5、12、15、24VDCOutput 100,200、300、400、500 、600、800、 1000、1…

计算机领域热门技术词汇

文章目录 计算机领域热门技术词汇1、机器学习 machine learning2、神经网络 neural network3、深度学习 deep learning4、自然语言处理 natural language processing5、计算机视觉 computer vision6、大数据 big data7、数据挖掘 data mining(DM)8、云计…

藏区特产销售平台设计与实现|SpringBoot+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)

本项目包含可运行源码数据库LW,文末可获取本项目的所有资料。 推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 2024年56套包含java,…

AI基础知识扫盲

AI基础知识扫盲 AIGCLangchain--LangGraph | 新手入门RAG(Retrieval-Augmented Generation)检索增强生成fastGPT AIGC AIGC是一种新的人工智能技术,它的全称是Artificial Intelligence Generative Content,即人工智能生成内容。 …

Ruoyi若依框架下载流程详细解读(SpringBoot-Vue)

图解: 前端设计: 前端设计一个link文字连接或者按钮(ElementUI)Element - The worlds most popular Vue UI framework 前端请求设计: import request from /utils/request //下载示例模型定义语言的JSON export const…

C++函数模板详解(结合代码)

目录 1. 模板概念 2. 函数模板语法 3. 函数模板注意事项 4. 函数模板案例 5. 普通函数与函数模板的区别 6. 普通函数与函数模板的调用规则 7. 模板的局限性 1. 模板概念 在C中,模板是一种通用的程序设计工具,它允许我们处理多种数据类型而不是固…

MVC与MVVM:两种前端架构模式对比

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

FMEA与智能机器人:提升机器人可靠性与安全性的关键

随着科技的飞速发展,智能机器人已经深入到我们生活的方方面面,从工业生产到家庭服务,从深海探险到太空探索,处处都有它们的身影。然而,随着应用的日益广泛,机器人系统的复杂性和不确定性也在增加&#xff0…

elasticsearch 8.12+kibana 8.12

准备工作:1.下载相关的安装包放到/usr/local/ES下面 elasticsearch下载地址:Download Elasticsearch | Elastic elasticsearch-head-master下载地址:https://github.com/mobz/elasticsearch-head/archive/master.zip node下载地址:Index of /dist/ kibana地址:Downl…

Facebook是什么?有什么功能?如何利用Facebook运营?

Facebook,也常被人们称为“脸书”、“脸谱”等,是美国的社交网络服务及社会化媒体网站,拥有超过20亿的月活跃用户,对于众多商家而言,Facebook以其广泛的用户基础和强大的社交影响力,成为了一个理想的社媒营…

(三)Qt+OpenCV调用海康工业相机SDK抓拍示例

系列文章目录 提示:这里是该系列文章的所有文章的目录 第一章: (一)QtOpenCV调用海康工业相机SDK示例开发 第二章: (二)Qt多线程实现海康工业相机图像实时采集 第三章: (…

STM32存储左右互搏 SPI总线FATS文件读写SD/MicroSD/TF卡

STM32存储左右互搏 SPI总线FATS文件读写SD/MicroSD/TF卡 SD/MicroSD/TF卡是基于FLASH的一种常见非易失存储单元,由接口协议电路和FLASH构成。市面上由不同尺寸和不同容量的卡,手机领域用的TF卡实际就是MicroSD卡,尺寸比SD卡小,而…

iOS - Runtime-isa详解(位域、union(共用体)、位运算)

文章目录 iOS - Runtime-isa详解(位域、union(共用体)、位运算)前言1. 位域介绍1.1 思路1.2 示例 - 结构体1.3 示例 - union(共用体)1.3.1 说明 1.4 结构体 对比 union(共用体) 2. a…

【python--罗马数字转换阿拉伯数字】

🚀 作者 :“码上有前” 🚀 文章简介 :Python 🚀 欢迎小伙伴们 点赞👍、收藏⭐、留言💬 罗马数字转换阿拉伯数字相关 根据长度给出罗马序列的值生成字典根据长度给出罗马序列的值生成列表将所有…

酷开系统让用户和电视双向传递,酷开科技实现商业变现

电视在我们的日常生活中扮演着重要的角色。虽然,作为客厅C位的扛把子——电视的娱乐作用深入人心,但是,它的涵义和影响力却因我们每个人的具体生活环境而存在着种种差异,而我们的生活环境又受到我们所处的社会及文化环境的影响。 …

原生 HTML/CSS/JS 实现右键菜单和二级菜单

文章来源:www.huhailong.vip 站点 文章源地址:https://www.huhailong.vip/article/1764653112011841538 Demo效果演示地址 先看效果图 {{{width“auto” height“auto”}}} 需要注意的就是边界检测处理,到极端点击底部和右侧时如果不做处理会…