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

news/2024/7/8 3:35:33 标签: stm32

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

思路:

这个考了一个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.niftyadmin.cn/n/5450615.html

相关文章

二十一、软考-系统架构设计师笔记-真题解析-2019年真题

软考-系统架构设计师-2019年上午选择题真题 考试时间 8:30 ~ 11:00 150分钟 1.前趋图(Precedence Graph)是一个有向无环图,记为: → {(Pi,Pj)Pi mustcomplete before Pj may start}。假设系统中进程P{P1,P2,P3,P4,P5,P6,P7,P8},且进程的前趋图如下&…

关于网格数据导出指定格式的测试(以Gmsh导出nas格式为例)

本文主要讲述Gmsh如何导出nas格式的网格数据,众所周知,Gmsh可以导出多种网格数据格式,比如大家熟悉的msh、stl、inp、cgns(似乎不完善)等等,但是gmsh不支持nas格式的导出,只支持nas格式的导入&a…

Go程序设计语言 学习笔记 第五章 函数

5.1 函数声明 每个函数声明都包含一个名字、一个形参列表、一个可选的返回列表以及函数体: func name(parameter-list) (result-list) {body }形参列表指定了一组变量的参数名和参数类型,这些局部变量由调用者提供的实参传递而来。返回列表则指定了函数…

利用PSR,三步实现业务快速加载

01 什么是PSR PSR是通信业界在BSS/OSS域面向产品设计和业务开通过程中提出的一个标准化信息分层解耦和映射的框架,按照国际电信论坛TMF推荐的SID信息框架的标准,主要分为产品域、服务域和资源域等三层,支撑通信业务的快速加载和敏捷开通。 TM…

云运营安全概述,云运营安全的方案措施有哪些?

精品推荐-2024最新企业网络安全运营方案资料合集(29份).zip 【推荐】最新网络安全运营方案和实践合集(共80多份).zip 云运营安全是指在云环境中进行运营活动时,确保数据和系统的安全性。这涉及到多个方面&#xff0c…

云数据库认识

云数据库概述 说明云数据库厂商概述Amazon 云数据库产品Google 的云数据库产品Microsoft 的云数据库产品 云数据库系统架构UMP 系统概述UMP 系统架构MnesiaRabbitMQZooKeeperLVSController 服务器Proxy 服务器Agent 服务器日志分析服务器 UMP 系统功能容灾 读写分离分库分表资源…

网络七层模型之表示层:理解网络通信的架构(六)

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

【超图 SuperMap3D】【基础API使用示例】54、超图SuperMap3D -鼠标左键拖拽绘制圆

前言 引擎下载地址:[添加链接描述](http://support.supermap.com.cn/DownloadCenter/DownloadPage.aspx?id2524) 通过左键按下拖拽的方式在地图上进行贴地的圆绘制 完整代码拷贝直接本地运行即可查看效果效果 核心代码 // 绘制圆形 function startDrawCircleHand…