零代码改造飞控:基于STM32F405的Betaflight硬件适配与CLI配置实战

STM32F405飞控DIY:从PCB设计到Betaflight配置的避坑指南(附MPU6500接线图) 本文详细解析了基于STM32F405的飞控DIY全流程,涵盖PCB设计、Betaflight固件配置、MPU6500接线等关键环节。提供硬件设计规范、焊接技巧、固件烧录指南及调参优化方案,帮助开发者规避常见问题,打造高性能飞控系统。特别包含SPI总线布线、电源滤波等实用技巧,适合无人机爱好者进阶学习。 阅读详情

1. 开篇:别急着改代码,硬件设计就是第一行配置

很多刚接触飞控开发的朋友,一上来就想打开源码,找到 i2c.c 或者 spi.c 文件,琢磨着怎么改驱动来适配自己的陀螺仪。我刚开始也这么干过,结果折腾了好几天,不是编译出错就是时序不对,最后发现完全是走错了方向。其实,对于 Betaflight 这样成熟的生态来说,适配一款主流陀螺仪(比如 MPU6500)到主流主控(比如 STM32F405),根本不需要动一行底层代码。

这背后的核心思想,我称之为 “硬件设计即配置”。简单来说,你在画 PCB 板子的时候,只要遵循了 Betaflight 固件能识别的“硬件语言”——也就是把传感器接到 MCU 标准的硬件 SPI 或 I2C 总线上——那么剩下的所有工作,都可以通过地面站(Betaflight Configurator)的图形界面和几条简单的 CLI 命令来完成。整个过程,你更像是在“填写一份硬件连接说明书”,而不是在“编写驱动程序”。

这非常适合想快速验证硬件、专注于飞行算法或者产品原型的开发者。你不用去啃 STM32 的 HAL 库,也不用深究 SPI 的相位和极性配置,Betaflight 已经帮你把这些底层脏活累活都封装好了。今天,我就以最经典的 STM32F405 + MPU6500(SPI 版) 这个组合为例,带你走一遍从画板子到调参上天的完整流程,你会发现自制飞控的门槛,远比你想象的要低。

2. 硬件设计的黄金法则:引脚规划决定成败

硬件设计是这一切的基础,也是最容易埋坑的地方。但别怕,只要抓住一个核心原则,就能避开 90% 的麻烦:确保陀螺仪的 SPI 引脚,连接到 MCU 的“硬件 SPI”引脚上,而不是随便找几个 GPIO。

2.1 读懂芯片手册,锁定硬件 SPI 引脚

以 STM32F405RGT6 为例,它通常有多个 SPI 外设(比如 SPI1, SPI2, SPI3)。这些外设有其默认的、硬件固定的引脚映射。比如 SPI2:

  • SCK (时钟) 默认在 PB13
  • MISO (主入从出) 默认在 PB14
  • MOSI (主出从入) 默认在 PB15

你在设计原理图时,就必须把 MPU6500 的 SCK、MISO、MOSI 分别连到 PB13、PB14、PB15 上。为什么不能随便连?因为只有连接到这些特定的引脚,STM32 内部的硬件 SPI 控制器才能正常工作,才能达到最高的通信效率和稳定性。如果你把线连到了 PA1、PA2、PA3,即使软件上能通过模拟 SPI 实现通信,性能也会大打折扣,而且 Betaflight 的通用驱动可能无法直接识别。

除了三根数据线,片选信号 CS 也至关重要。CS 引脚可以自由选择,因为它只是一个普通的 GPIO,用于选中哪个设备。我们通常选一个邻近的、方便布线的引脚,比如 PB12。这里有个关键点:一个 SPI 总线上的每个设备,必须拥有独立的 CS 引脚。你不能把陀螺仪和 Flash 芯片的 CS 接在一起,否则它们会互相干扰。

为了方便你对照,我把核心连接关系做成了表格:

元器件引脚功能连接至 STM32F405 引脚对应 Betaflight 资源名说明
MPU6500SCKPB13SPI2_SCK硬件固定,必须接此引脚
MPU6500MISOPB14SPI2_MISO硬件固定,必须接此引脚
MPU6500MOSIPB15SPI2_MOSI硬件固定,必须接此引脚
MPU6500CSPB12GYRO_CS可自定义,但需独立
MPU6500VCC3.3V-需经 LDO 稳压,如 AMS1117-3.3
MPU6500GNDGND-确保共地

2.2 PCB 布局布线:细节决定稳定性

引脚连对了,PCB 画得不好照样会翻车。下面是我踩过几次坑后总结的布线经验:

第一,SPI 信号线要“短、直、粗”。尤其是 SCK 时钟线,它是噪声的主要来源。从 MPU6500 到 STM32 的走线尽量短,不要绕远路,更不要从电机驱动或电源芯片底下穿过。线宽可以适当加粗到 0.2mm 以上,减少阻抗。

第二,电源滤波电容一个都不能少。MPU6500 对电源噪声非常敏感,电源不稳会导致陀螺仪数据跳变,飞机在空中跳舞。我的做法是:在 MPU6500 的 VCC 和 GND 引脚最近处,并联一个 100nF 的陶瓷电容(0402 或 0603 封装)。同时,在给整个板子供电的 3.3V LDO 输出端,加上一个 10uF 的钽电容或电解电容,再并联一个 100nF 的陶瓷电容,组成高低频组合滤波。

第三,预留足够的调试接口。至少要把 STM32 的 PA9 (TX) 和 PA10 (RX) 引出来(这是 USART1,常用于 USB 虚拟串口),方便刷写固件和 CLI 调试。如果板子空间允许,把 SWD 接口(SWDIO, SWCLK)也引出来,这样万一变砖了还能用 ST-Link 救回来。我见过不少新手把板子焊得密不透风,出了问题只能干瞪眼。

3. 固件刷写:选对“通用款”,事半功倍

硬件检查无误后(一定要用万用表测通断和电压!),接下来就是给飞控注入灵魂——刷写 Betaflight 固件。这里有个巨大的误区:很多人以为需要自己编译固件。完全不用!Betaflight 官方提供了 “UNIFIED” 通用固件,它就像一个大礼包,里面预置了几乎所有主流 MCU 和传感器的驱动。

3.1 地面站安装与固件下载

首先,去 Betaflight 的 GitHub 仓库下载最新版的 Betaflight Configurator。这就是我们常说的“地面站”,一个图形化调参软件。安装好后打开,点击左侧的 “固件烧写器”。

在“目标”栏里,输入 STM32F405,下面会列出很多预定义的板子型号。这里不要选任何具体的型号(比如 MATEKF405),因为我们的是自制的,引脚定义可能不同。直接选择列表顶部或底部那个明确的 “UNIFIED” 固件,例如 betaflight_4.5.1_STM32F405.hex。

接下来是关键一步:勾选 “自定义定义” 选项。在旁边的输入框里,手动填入 GYRO_SPI_MPU6500。这个操作相当于告诉固件:“嘿,我板子上用的是 MPU6500 陀螺仪,并且是 SPI 接口的,你刷的时候记得把它的驱动激活。” 这能有效避免固件启动后找不到陀螺仪的尴尬。

3.2 连接与刷写实操

用 USB 转串口模块(比如 CH340、CP2102)连接飞控。飞控的 TX 接模块的 RX,飞控的 RX 接模块的 TX,GND 对接。然后给飞控上电(可以通过 USB 转串口模块供电,如果模块供电不足则需外接 5V)。

在地面站中选择正确的串口号,波特率保持默认的 115200。点击 “烧写固件” 按钮。如果一切顺利,你会看到一个进度条,大约一分钟左右完成。刷写成功后,飞控会自动重启,此时地面站可能会提示发现新设备。

注意:如果刷写失败,最常见的原因是 bootloader 模式没进去。对于 STM32,可以尝试在飞控断电状态下,按住板子上的 BOOT 按钮(如果有的话)不放,然后上电,再点击烧写。或者检查串口线连接是否正确,有时 TX 和 RX 接反了也会失败。

4. CLI 配置实战:告诉飞控“你的身体长什么样”

固件刷好了,但飞控现在还是个“植物人”,它不知道自己的手脚(电机)、眼睛(陀螺仪)长在哪里。这时候就需要用到 Betaflight 的灵魂工具——CLI(命令行界面)。通过它,我们可以用 resource 和 set 这两条核心指令,完成硬件资源的映射和功能声明。

4.1 资源映射:用 resource 命令画连接图

resource 命令的威力非常强大,它可以重新分配几乎任何一个引脚的功能。我们的目标,是把之前 PCB 上的物理连接,用软件指令再描述一遍。

连接飞控后,进入地面站的 CLI 标签页。然后,逐条输入以下命令(每输完一条按回车):

# 1. 声明 SPI2 总线的三根数据线引脚
resource SPI_SCK 2 B13
resource SPI_MISO 2 B14
resource SPI_MOSI 2 B15

# 2. 声明陀螺仪1的片选引脚
resource GYRO_CS 1 B12

# 3. 保存配置
save

我来解释一下这些命令:

  • SPI_SCK 2 B13:意思是“SPI2 总线的时钟线,使用引脚 PB13”。这里的 2 代表 SPI2 总线编号,B13 就是具体的引脚。
  • GYRO_CS 1 B12:意思是“第一个陀螺仪的片选信号,使用引脚 PB12”。1 是陀螺仪的索引号(如果你有多个陀螺仪做冗余,可以设 2、3)。

输入 save 后,飞控会重启。重启后,这些映射关系就被永久保存了。你可以输入 resource 命令(不加参数)来查看当前所有引脚的分配情况,确认我们的设置是否生效。

4.2 功能声明:用 set 命令定规矩

引脚映射好了,还得告诉飞控这些引脚上挂的是什么设备,以及怎么用。这就需要 set 命令。

飞控重启并重新连接后,再次进入 CLI,输入:

# 1. 声明陀螺仪1使用的总线类型是 SPI
set gyro_1_bustype = SPI

# 2. 声明陀螺仪1连接在 SPI2 总线上
set gyro_1_spibus = 2

# 3. (强烈建议)明确指定陀螺仪硬件型号为 MPU6500
set gyro_hardware = MPU6500

# 4. 保存配置
save

这几条命令下来,飞控就彻底明白了:“哦,我有一个 MPU6500 陀螺仪,它通过 SPI 总线跟我说话,这条总线是 SPI2,片选脚是 B12。” 这样一来,飞控启动时就会去对应的位置寻找并初始化陀螺仪。

4.3 避坑指南:为什么配置后电脑不认飞控了?

这是自制飞控最常见的问题,我在开源社区里看到无数人踩这个坑。现象是:刷完固件后,地面站能连上飞控。但一旦执行了某些 CLI 配置(尤其是完整的端口配置)并保存重启后,电脑就再也识别不到飞控的 USB 端口了,仿佛变砖了一样。

根据我的经验,这个问题九成出在 USB 相关引脚的冲突上。STM32F405 的 USB 接口(用于虚拟串口通信)使用的是 PA11 (DM) 和 PA12 (DP)。如果你在 CLI 配置中,不小心用 resource 命令把 PA11 或 PA12 分配给了其他功能,比如电机输出(resource MOTOR 5 A11)或者 LED 灯,那么 USB 功能就被破坏了。

解决方案:

  1. 检查配置:在还能连接的时候,输入 resource 命令,仔细查看 PA11 和 PA12 被分配了什么功能。如果被占用了,就用 resource 命令将其释放。例如:resource MOTOR 5 none 可以解除 PA11 的电机功能。
  2. 使用“安全模式”:如果已经连不上了,可以尝试让飞控进入“安全模式”启动。对于 Betaflight,通常是在飞控启动瞬间(上电后几秒内),通过 CLI 发送一个特殊的字符序列(有时是按住某个按钮上电)。安全模式下,飞控会忽略用户的大部分 CLI 配置,使用默认设置启动,这样 USB 功能通常能恢复。具体方法需要查阅你所用固件版本的文档。
  3. SWD 救砖:如果以上都不行,最后的手段就是通过 SWD 接口,用 ST-Link 工具重新擦除并刷写整个芯片。这相当于给飞控做一次“格式化重装系统”。

5. 传感器校准与基础功能调通

CLI 配置完成后,飞控应该能正确识别陀螺仪了。接下来我们回到地面站的图形界面,完成最后的校准和设置。

5.1 传感器校准:让飞控“认识”水平和天空

在“设置”页面,你会看到“陀螺仪校准”和“加速度计校准”按钮。

  • 陀螺仪校准:点击后,将飞控绝对静止地放在桌面上,等待几秒钟即可。这个校准主要是消除陀螺仪的零偏。
  • 加速度计校准:这个更重要。点击后,按照软件的 3D 动画提示,依次将飞控的六个面(水平朝上、朝下、机头朝上、朝下、左侧朝上、右侧朝上)朝上放置,每个姿势保持稳定1-2秒。这个过程是告诉飞控,哪个方向是重力方向,对于自稳模式至关重要。校准不准确,飞机要么飘移,要么直接翻跟头。

5.2 接收机与电机:建立控制链路

校准完成后,飞控就能感知自身姿态了。接下来要让它能接收指令并驱动电机。

接收机设置:在“接收机”页面,选择你使用的协议,比如 CRSF、SBUS 或 IBUS。然后,在“端口”页面,找到你焊接接收机信号线的那个 UART(比如 UART2),将其功能设置为“串行接收机”。保存重启后,推动遥控器摇杆,在“接收机”页面的通道监视器里应该能看到数值变化。

电机设置与测试:在“电机”页面,务必先拆掉螺旋桨! 然后打开“电机测试模式”(需要输入解锁码,默认是1234)。你可以通过拖动滑块来单独测试每个电机是否按正确的顺序(通常是 1-4 号对应前右、后左、前左、后右)旋转,并且转向是否正确。电机转向不对可以在 BLHeli 电调软件里修改,或者直接交换任意两根电机线。

6. 进阶与扩展:不止于 MPU6500

当你成功让 MPU6500 飞起来之后,这种“硬件设计+CLI配置”的模式就完全掌握了。你可以举一反三,适配更多传感器。

比如,你想升级到性能更好的 ICM42688-P。硬件上,它也是 SPI 接口,封装可能不同(LGA-14),但连接思路一样:SCK/MISO/MOSI 接硬件 SPI 引脚,CS 接一个独立的 GPIO。软件配置上,只需要修改两个地方:

  1. 刷固件时,自定义定义从 GYRO_SPI_MPU6500 改为 GYRO_SPI_ICM42688P。
  2. CLI 中,将 set gyro_hardware = MPU6500 改为 set gyro_hardware = ICM42688P。

甚至,你想同时接一个 SPI 气压计(如 BMP280)和一个 SPI 的 OSD 芯片(如 AT7456E)。只要你的 STM32F405 SPI 口够用(它有3个),就可以把它们分别挂到 SPI1 和 SPI3 上。在 CLI 里,你需要用 resource 命令为每个设备分配独立的 CS 引脚,并用 set 命令声明每个设备的总线和类型。整个过程中,依然不需要碰触源码。

这种模式的魅力在于,它将硬件设计和软件配置解耦了。你可以像搭积木一样组合不同的传感器模块,快速迭代你的飞控硬件。一旦硬件设计规范(即连接到了标准硬件总线),软件适配就变成了几分钟的配置工作。这不仅是业余爱好者的福音,也是很多小型厂商快速开发原型机的核心方法。毕竟,时间是最宝贵的成本。

STM32F405飞控SBUS信号翻转实战:从硬件缺陷到软件救赎 本文详细介绍了STM32F405飞控在处理SBUS信号时的硬件缺陷及软件解决方案。通过Betaflight的软串口功能,无需硬件改造即可实现SBUS信号解码,特别适合FPV飞行爱好者。文章对比了多种解决方案的优劣,并提供了详细的软串口配置步骤和性能优化技巧,帮助用户快速解决问题。 阅读详情

相关推荐

基于STM32的四旋翼无人机飞控系统设计与PID算法优化

本文详细介绍了基于STM32的四旋翼无人机飞控系统设计与PID算法优化。通过硬件架构设计、传感器选型及数据融合实战,结合PID控制算法的深度优化,实现无人机的稳定飞行控制。文章还提供了飞行测试与故障排查的实用技巧,适合无人机开发者和爱好者参考。

weixin_29172963的博客 392

无人机研发入门:从零到精通的24个月学习路径

本文系统介绍了无人机研发从零基础到专业水平的完整学习路径。文章将学习过程分为六个阶段:基础认知与硬件入门(1-3个月)、嵌入式与编程基础(3-6个月)、自动控制与飞控算法(6-10个月)、导航与自主飞行(10-14个月)、图传与高级功能(14-18个月)、工程化与行业应用(18-24个月)。作者建议从四旋翼入手,循序渐进掌握硬件组装、C语言编程、PID控制、姿态解算、导航算法等核心技术,并强调先飞稳再研发、重视仿真测试、安全第一等学习原则。通过2年左右系统学习,可达到无人机研发工程师水平。

千帆少年靓 1609

STM32F405四轴飞控基础框架搭建与FreeRTOS配置

嵌入式实时系统是无人机飞控的核心技术基础,其本质是在资源受限的MCU上实现确定性任务调度与外设协同。基于Cortex-M4内核的STM32F4系列芯片凭借硬件FPU和丰富定时器资源,成为飞控开发的主流平台。理解时钟树配置、SysTick重定向、外设GPIO/USART初始化及FreeRTOS堆内存管理,是构建稳定飞控软件栈的前提。本文围绕STM32F405RGT6与FreeRTOS集成实践,详解168MHz主频配置、TIM17作为tick源的中断优先级设置、低电平有效LED驱动、USB虚拟串口调试及Boot

melon的博客 842

从零构建BetaFlight飞控:硬件解耦与STM32资源配置实战

本文深入解析了BetaFlight飞控的硬件解耦架构与STM32资源配置实战,揭示了如何通过CLI命令动态配置硬件资源,实现软硬件解耦。从引脚复用到DMA通道分配,详细介绍了STM32的硬件资源管理机制,并提供了低成本飞控硬件复刻的实战案例,帮助开发者快速掌握飞控开发的核心技术。

gpu4optimizer的博客 452

基于STM32F405的四轴飞控开发:从底层驱动到PID调参全解析

嵌入式系统与自动控制理论的结合,催生了无人机技术的飞速发展。在四轴飞行器设计中,传感器融合算法与实时控制系统的协同工作,是实现稳定飞行的核心技术。STM32F405凭借168MHz主频与硬件浮点运算单元,为高频姿态解算与串级PID控制提供了充裕的算力支撑。通过MPU6500六轴传感器获取原始数据,采用Mahony互补滤波进行四元数姿态解算,再经由角度环与角速度环的串级PID结构输出控制量,最终由混控矩阵分配至四个电机。本文完整复盘了一套从零编写的飞控程序,涵盖硬件选型、软件架构、传感器驱动、姿态解算、控制调

weixin_28721917的博客 269

STM32飞控源码深度解析

本文深入剖析基于STM32的无人机飞控系统,涵盖IMU数据采集、Mahony姿态解算、PID控制算法与PWM输出优化等关键环节,揭示从传感器到电机控制的完整闭环设计原理与工程实践技巧。

i1j2k的博客 1097

从零开始学习betaflight《4-硬件原理图》

硬件设计参考。记得第一次pcb设计还是2014年,由于长时间没有设计过pcb,因此业余时间打算抽空重新学习设计一款属于自己的betaflight 硬件飞控电路板。目前405主控已完成打样,有需求的可以联系我,对应硬件的设计尽量按照标准去设计,方便我们后续研究学习代码。下面是自己打样的板子图片,采用四层板设计,接口完全按照betaflight设计:主控:STM32F405RGT6芯片IMU: 加速度陀螺仪 bmi270;气压计spl0601;

陌城烟雨 69

STM32F405 四轴飞控 提供四轴源码 .pdf

STM32F405 四轴飞控 提供四轴源码

探索未来飞行控制的边界:Betaflight 开源项目

探索未来飞行控制的边界:Betaflight 开源项目 项目地址:https://gitcode.com/gh_mirrors/be/betaflight 在飞行控制系统的世界里,Betaflight 是一个璀璨的明星。作为一项专注于飞行性能提升、创新特性添加和广泛硬件支持的开源项目,它为无人机爱好者和专业人士提供了无比自由的选择。 项目介绍 Betaflight 是一款用于多旋翼飞行器和固定翼...

gitblog_00171的博客 1176

基于STM32F405的飞控系统硬件

自主设计可实际应用的基于STM32F405ZGT6的飞行控制系统硬件电路图

STM32F405RG QCopter 飛控程序 完整工程

基於 STM32F405RG 的飛控版 QCopterFC v2.0 的飛控程序

最近在折腾F405飞控的硬件设计,发现AD格式的工程文件真是个宝藏库。先看原理图部分,主控周围密密麻麻的模拟电路看得人头皮发麻。电源模块这个LDO选型有点意思

最后说说这个BoM清单,0805封装的电容全换0603能省出30%空间。这里16384的缩放系数对应±8g量程,如果飞控出现加速度漂移,八成是SPI时钟配置有问题。穿越机F4飞控F405代码pcb文件,原理图,源代码,穿越机无人机,F4V3飞控PCB资料,AD格式原理图、PCB图、Bo可直接打板。这组分压电阻的配置直接关系到电池电压检测精度,实测中发现2%精度的电阻根本不够用,得换1%的才行。PCB布局最关键的是陀螺仪隔离,原设计用了独立供电+π型滤波。//...省略其他轴解析。// 电源稳压部分配置。

QQ68823886的博客 356

【AUCell打分】:评估一个基因集在单细胞转录组的每个细胞中特定的活性程度

AUCell使用曲线下面积来计算输入基因集的一个有意义的基因子集是否在每个细胞的表达基因中富集。AUC 分数在所有细胞中的分布允许探索特征的相对表达。由于评分方法是基于排名的,因此 AUCell 与基因表达单位和归一化程序无关。此外,由于细胞是单独评估的,因此可以很容易地应用于更大的数据集。

weixin_40695088的博客 1万+

Betaflight 外设扩展教程:如何添加自定义传感器支持

你是否在使用Betaflight飞控时遇到过传感器不兼容的问题?是否希望为你的无人机添加特殊功能的传感器来提升飞行体验?本文将带你一步步完成自定义传感器的添加过程,从硬件连接到软件配置,让你轻松扩展Betaflight的感知能力。读完本文后,你将能够:识别传感器接口类型、编写设备驱动、配置资源分配、完成传感器注册与数据读取。 ## 传感器接口类型识别 Betaflight支持多种传感器接口类型...

gitblog_00599的博客 581

Android14_MTK调试LCD屏功能

android14 MTK平台调试LCD屏

m0_37786046的博客 1473

基于STM32与ESP8266的MQTT协议实现阿里云物联网平台远程LED控制

本文详细介绍了如何利用STM32单片机与ESP8266 Wi-Fi模块,通过MQTT协议连接阿里云物联网平台,实现远程控制LED灯的完整物联网项目。内容涵盖硬件连接、阿里云平台配置、MQTT协议与AT指令解析、STM32代码实战以及数据解析与调试技巧,为嵌入式开发者提供了一个清晰、实用的物联网入门实践指南。

svm4gardener的博客 794

基于STM32F405的飞控系统硬件电路图

基于STM32F405的飞控系统硬件电路图 去发现同类优质开源项目:https://gitcode.com/ 此仓库提供了自主设计的基于STM32F405ZGT6的飞行控制系统硬件电路图的资源文件。这份电路图是实际可应用的,适用于对飞控系统硬件设计感兴趣的工程师和研究人员。 资源文件中包含了详细的电路设计和组件布局,旨在帮助用户更好地理解和实现基于STM32F405的飞控系统硬件。无论是初学者还是...

gitblog_06785的博客 547

UE5 C++教程(一、基本结构)

虚幻API由三块组成,分别是Runtime,Developer utilitiew,functionality for the Editor,大多数游戏性编程只使用运行时模块,最常见的三个是Corn、CornUObject和Engine。

skycol的博客 1万+

Betaflight关于STM32F405 SBUS协议兼容硬件电气特性问题

Betaflight关于STM32F405 SBUS协议兼容硬件电气特性问题

lida2003的专栏 3898

图论:Dijkstra算法——最详细的分析,图文并茂,一次看懂!

Dijstra算法

普罗米修斯的博客 18万+

芒果YOLOv5改进05:损失函数IoU 篇之Repulsion Loss:原创改进损失函数 Repulsion:解决目标遮挡场景下检测,为解决密集人群检测中遮挡设计的损失函数,打造高效检测器涨点

YOLOv5改进代码实践|结合Repulsion 解决目标遮挡场景下检测🚀

包括YOLOv5、YOLOv7、YOLOv8等模型改进 4567

Aocoda-RC F405V2 FC(STM32F405RGT6 v.s. AT32F435RGT7) IO Definitions

@[TOC](Aocoda-RC F405V2 FC(STM32F405RGT6 v.s. AT32F435RGT7) IO Definitions)Aocoda-RC F405V2飞控支持betaflight/inav/Ardupilot固件,是一款固件兼容性非常不错的开源硬件。之前我们对比过STM32F405RGT6 v.s. AT32F435RGT7 Comparison for Flight Controller,整体对比:通过betaflight开源,可以非常快速的了解硬件的引脚对应关系:若将该芯

lida2003的专栏 2929

【100%通过率】华为机试真题 Python 实现【对称美学】【2022.11 Q4 新题】

对称就是最大的美学,现有一道关于对称字符串的美学。 已知: 第1个字符串:R 第2个字符串:BR 第3个字符串:RBBR 第4个字符串:BRRBRBBR 第5个字符串:RBBRBRRBBRRBRBBR相信你已经发现规律了,没错! 就是第i个字符串=第i-1号字符串的取反+第i-1号字符串。取反即(R->B,B->R); 现在告诉你n和k,让你求得第n个字符串的第k个字符是多少。(k的编号从0开始)

MISAYAONE的博客 1万+

STM32F405全开源无感FOC控制方案分享

通过以上设计和实现,我们成功地在STM32F405上实现了无感FOC控制。全开源:提供完整的原理图和源代码。高精度:滑膜观测器和PLL结合使用,保证了控制精度。高性能:STM32F405的高性能保证了控制的实时性。如果你对这个方案感兴趣,可以关注我的GitHub仓库,获取完整的代码和原理图。(示例GitHub链接)希望这篇博文对你有所帮助!如果有任何问题,欢迎在评论区留言交流。

2508_94202330的博客 544

遥感影像道路提取算法——SGCN

用于从高分辨率遥感图像(TGRS)中提取复杂环境中道路的分割深度可分离图卷积网络摘要:高分辨率遥感图像的道路信息在各个领域得到广泛应用,基于深度学习的方法有效地显示了较高的道路提取性能。然而,在高分辨率遥感图像中,检测柏油路封闭或树木覆盖的道路,仍存在一些挑战,限制了提取的准确性:1)道路之间的阶级内差异较大,城市物体,特别是道路和建筑物之间的阶级间差异不明显;2)被树木、阴影和建筑物遮挡的道路难以提取;3)道路缺乏高精度遥感数据集。

littleyy666的博客 3846

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

上一篇: MSC Nastran自动接触定义实战:从图形界面到文本编辑的高效技巧
下一篇: 工控CTF之协议分析2——MMS:从流量解密到异常检测实战
php55
博客等级 码龄15年 51粉丝 1553原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值