ExpressLRS开源代码之框架结构

ExpressLRS开源代码之框架结构

  • 1. 源由
  • 2. Arduino应用框架
  • 3. ExpressLRS应用框架
  • 4. 硬件设计框架
    • 4.1 单天线
    • 4.2 双天线单PA
    • 4.3 双天线双PA
  • 5. 应用软件设计
  • 6. 参考资料

1. 源由

最近为了理解《ExpressLRS开源之基本调试数据含义》,做了一些源代码的研读。
概念、文档、代码或多或少都存在一些变数,代码不仅仅从数值,量纲,以及出处可以了解的非常清晰,从而对于数据的含义达到更深的认识。

当然,也有一些困难的地方,首先刚开始看ardunio的代码,非常的不太习惯。另外加之,其代码里面实际上是两个工程:接收机和发射机,一些函数的调用关系以及函数名称都非常类似甚至一致。

正因为如此,也对这个代码框架或多或少多了一些理解,趁这次机会就简单的整理下。

2. Arduino应用框架

Arduino Sketches提供了非常简便的应用开发方式。

有两个特殊的功能函数作为代码框架setup()loop():

  • setup():启动后调用一次。这是一个很好的地方来完成设置任务,如设置引脚模式或初始化。
  • loop():函数被反复调用,是大多数核心应用例程。

3. ExpressLRS应用框架

基于该Arduino代码框架,ExpressLRS开源代码提供了发射机和接收机的工程:

  • 接收机应用
rx_main.cpp├──> setup└──> loop
  • 发射机应用
tx_main.cpp├──> setup└──> loop

4. 硬件设计框架

概念上:MCU + RF + PA

4.1 单天线

要完成接收和发射两个工作,需要Tx/Rx不停的切换。

在这里插入图片描述

4.2 双天线单PA

接收机在该硬件框架下,天线在同一时刻只有一根是激活状态;且在该激活状态下,再进行发射和接收模式的选择。
在这里插入图片描述

4.3 双天线双PA

该模式硬件配置,可以比较好的解决同一时刻单一天线激活的情况。

从接收机和发射机的角度来说其组合方式会比较多,当然实际情况可能是一个并行的单天线设计。

注:关于这部分双天线的问题,可以详细参考:ExpressLRS开源之RC链路性能测试

在这里插入图片描述

5. 应用软件设计

从设备应用的角度,软件设计上至少需要考虑如下内容:

  1. 设备初始化
  2. 业务应用任务
  3. RF接收任务

从代码实现的角度,可能会用到的内容:

  1. setup例程
  2. loop例程
  3. 任务、信号量
  4. 中断,定时器
  5. 软件狗(异常)

具体内容,将会更加针对性的在以下笔记中介绍:
【1】ExpressLRS开源代码之接收机代码结构 – 待补充
【2】ExpressLRS开源代码之发射机代码结构 – 待补充

6. 参考资料

【1】[ExpressLRS开源之接收机固件编译烧录步骤](https://blog.csdn.net/lida2003/article/details/132518813)
【2】ExpressLRS开源之RC链路性能测试
【3】ExpressLRS开源之基本调试数据含义
【4】Arduino Sketches

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

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

相关文章

政企局域网办公首选:WorkPlus专为政企打造的IM即时通讯平台

政府机构与企业在信息交流与协作中的安全高效需求,使得私有化部署的IM即时通讯平台成为必要选择。WorkPlus提供符合客户应用场景的数字化平台解决方案,满足政企局域网办公需求。WorkPlus如何为政企提供定制化的IM即时通讯解决方案,助力政企机…

【数据结构】——查找、散列表的相关习题

目录 一、选择填空判断题题型一(顺序、二分查找的概念)题型二(分块查找的概念)题型三(关键字比较次数) 二、应用题题型一(二分查找判定树) 一、选择填空判断题 题型一(顺…

OpenCV

文章目录 OpenCV学习报告读取图片和网络摄像头1.1 图片读取1.2 视频读取1.1.1 读取视频文件1.1.2读取网络摄像头 OpenCV基础功能调整、裁剪图像3.1 调整图像大小3.2 裁剪图像 图像上绘制形状和文本4.1 图像上绘制形状4.2图像上写文字 透视变换图像拼接颜色检测轮廓检测人脸检测…

Doris集群安装部署(1.2.4.1 release)

此文阅读需要有Linux和服务器硬件基础!某些内容写的不是特别细,如果常见的linux基础命令tar、uzip、mv、mkdir、系统包的安装等等,以文字带过了,这样可以减少文章篇幅。官方的安装部署方式一定要好好看一下,最好是尝试…

电脑前置耳机没声音怎么办

有很多小伙伴反映在将自己的耳机连接到主机前面时没有声音,这是怎么回事呢,遇到这种情况应该怎么解决呢,下面小编就给大家详细介绍一下电脑前置耳机没声音的解决方法,有需要的小伙伴可以来看一看电脑前面耳机没声音。 解决方法&a…

系统架构技能之设计模式-单件模式

一、开篇 其实我本来不是打算把系统架构中的一些设计模式单独抽出来讲解的,因为很多的好朋友也比较关注这方面的内容,所以我想通过我理解及平时项目中应用到的一 些常见的设计模式,拿出来给大家做个简单讲解,我这里只是抛砖引玉&#xff0c…

直播预告|博睿学院第四季即将开讲:博睿数据资深运维团队现身说法!

博睿学院第四季开讲啦!本季博睿学院的课程将于本周四(8月31日)16点正式启动。本季我们邀请到了博睿数据平台支撑中心的四位资深运维专家现身说法,来为我们分享一体化智能可观测平台Bonree ONE的实践干货。 他们,见多识…

Unity3D Pico VR 手势识别

视频链接 本文章使用的 Unity3D版本: 2021.3.6 , Pico SDK 230 ,Pico OS v.5.7.1 硬件Pico 4 Pico SDK可以去Pico官网下载SDK 导入SDK 第一步:创建Unity3D项目 第二步:导入 PICO Unity Integration SDK 选择 Windows > Package Manager。 …

java八股文面试[多线程]——Synchronized优化手段:锁膨胀、锁消除、锁粗化和自适应自旋锁

1.锁膨胀 (就是锁升级) 我们先来回顾一下锁膨胀对 synchronized 性能的影响,所谓的锁膨胀是指 synchronized 从无锁升级到偏向锁,再到轻量级锁,最后到重量级锁的过程,它叫锁膨胀也叫锁升级。 JDK 1.6 之前…

清华联合北航提出全新多模态融合方法SkipcrossNets,更快更强!!

多模态融合越来越多地用于自动驾驶任务,因为来自不同模态的图像为特征提取提供了独特的信息。然而,现有的双流网络只在特定的网络层次进行融合,这需要大量手动尝试来设置。随着卷积神经网络的深入,两种模态的特征变得越来越高级和…

Dockerfile 使用教程

1.Dockerfile 1.1 什么是Dockerfile Dockerfile可以认为是 Docker镜像的描述文件,是由一系列命令和参数构成的脚本 。主要作用是 用来构建docker镜像的构建文件 。 通过架构图可以看出通过DockerFile可以直接构建镜像 1.2 Dockerfile解析过程 构建镜像步骤&#xf…

【核磁共振成像】相位差重建

目录 一、相位差map重建一般步骤和反正切函数主值范围二、反正切运算三、可预期相位误差和伴随场的校正四、图形变形校正 一、相位差map重建一般步骤和反正切函数主值范围 MRI是一个相敏成像模态,MR原始数据傅里叶变换后的复数图像中每个像素值有模和相位。标准模重…