crazyflie2.0_crazyflie-firmware_总体程序概括

第一个正式版本刚发出去做板,现在有空可以来好好看看STM32F405这边到底做了哪些事情,今天先看到整体程序的架构,crazyflie用的是FreeRTOS,程序中大部分会用到创建任务和队列传递数据的过程,网上有中文版的FreeRTOS资料,看一遍基本明白创建任务及其队列实现的机制,今天我们先看下main这边主要做了什么事情,习惯用SourceInsight浏览代码。

首先从main函数开始:

int main() 
{
  //Initialize the platform.
  platformInit();

  //Launch the system task that will initialize and start everything
  systemLaunch();

  //Start the FreeRTOS scheduler
  vTaskStartScheduler();

  //TODO: Move to platform launch failed
  ledInit();
  ledSet(0, 1);
  ledSet(1, 1);

  //Should never reach this point!
  while(1);

  return 0;
}
1,platformInit();函数我们继续往下看:

crazyflie-firmware程序更新make cload 参考网址如下: https://wiki.bitcraze.io/doc:crazyflie:client:cfloader:index (1)按下crazflie-2.0按键之后,断电整个系统,然后长按按键直到了两个蓝色led闪烁,证明进入bootloader模式, (2)然后编译crazyflie-firmware之后,直接键入make cload,等待刷新固件 ... 阅读详情

相关推荐

crazyflie2.0_crazyflie-firmware_PARAM和LOG实现原理

最近读crazyflie-firmware的代码,发现它其中的飞行器这边的变量显示在client端很容易,而且是可以动态调整的,感觉很方便,然后就稍微研究了下实现的过程。 (1) 首先看到Stabilizer.c文件中最后对PARAM参数的定义: // Params for altitude hold PARAM_GROUP_START(altHold) PARAM_ADD(PARAM_FLO

嵌入式技术在路上 1830

crazyflie2_nrf51822程序分析--总体结构

为了尊重原始版本,将英文原文贴出来,同时将一些需要注意的地方加上我的注释 Source code of the firmware running in the Crazyflie 2.0 nRF51822. This microcontroller have a couple of roles: Power management (ON/OFF logic and battery ha

嵌入式技术在路上 2514

crazyflie2.0_crazyflie-firmware_LED指示灯

main函数之后,systemTask第一个函数就是调用ledInit函数,所以可以先看下LED的实现,设置LED开关很简单,但是它引入了一种seq的方法,看上去就没那么简单了,首先还是先看下最底层开关LED程序的实现,LED.c: #include #include "stm32fxxx.h" /*FreeRtos includes*/ #include "FreeRTOS.h" #in

嵌入式技术在路上 1548

crazyflie-firmware_数据接收流程

在crazyflie2.0中,数据是靠UART与nrf51822通信进行收发的,最近看了下从底层UART接收到数据怎样传输到各个任务的过程,下面先分析下接收数据的过程。 程序流程: uart_syslink.c ->syslink.c ->Radiolink.c ->Comm.c ->Crtp.c(1)首先是最底层接收数据的uart_syslink.c程序,将接收到的数据放入队列uartDat

嵌入式技术在路上 1980

crazyflie-firmware之姿态解算和PID控制

今天抽晚上时间看了下crazyflie-firmware程序中姿态解算和PID控制部分代码,看的是crazyflie2.0版本的相关代码。 这部分代码应该算是在FreeRTOS优先级很高的任务了,在stabilizer.c文件中可以找到stabilizerTask任务,再寻找下优先级可以看到如下代码: //Task priorities. Higher number higher prio

嵌入式技术在路上 5277

crazyflie2.0原理图之STM32F405与nRF51822串口1M速率的接收和发送

1,状态记录: 目前的状态: (1)STM32F405R程序下载没有问题,LED测试程序OK (2)nRF51822 256K程序下载没有问题,LED测试程序OK (3)STM32F405R驱动MPU9250没有问题,可以正确的读取到ID (4)nRF51822 256K的crazyflie20程序可以下载,可以进入Bootloader,从手机端看到nRF51822 BLE的信息

嵌入式技术在路上 3339

crazyfile 2.1 硬件.zip

crazyflie_2.1_schematics_rev.b.pdf cf2.1_component_placement.pdf

crazyflie 移植到keil版

移植到keil的crazyflie 基于第一版。编译通过。

crazyflie在keil移植代码、飞行编队程序

两个文件:基于第一版的crazyflie移植到keil环境下,已经编译通过。 基于crazyflie无人机的飞行编队程序,通过该程序可以对crazyflie的编队实验有一个系统的了解。

Crazyflie四轴飞行器-电路方案

Crazyflie是一个开放的四轴飞行器,可用于各种用途。是目前全世界最小的四轴飞行器,仅重19克,相对的两翼之间长度为9厘米。这个小四轴飞行器可以在空中飞行长达7分钟,通过一个标准的USB接头给锂聚合物电池充电需要约20分钟。 Crazyflie电气原理: ■72M主频、M3内核的处理器来处理各传感器数据,并对四个旋翼进行控制达到想要的效果 ■通过IIC接口与三轴陀螺仪、三轴加速度计(也就是MPU6050)、磁力计、气压计等传感器连接获取传感器数据,来感知载体(也就是四轴机体)的姿态(这里的姿态包括俯仰、横滚、航向)和高程 ■通过PWM调节四个电机驱动器来驱动四个电机转动,由于电机带有螺旋桨转动而产生所谓的“升力” ■通过SPI协议接口与无线芯片通讯,回传载体数据和接收控制信号,还有外部扩展接口 ■电源管理部分

玩四轴必知的Crazyfile微型四轴飞行器电路原理图、源代码-电路方案

由于对四轴飞行器感兴趣,收集了一些相关资料,现借电路城平台分享给大家,共同学习! Crazyfile微型四轴飞行器电气系统框图 电路城语:此资料为卖家免费分享,不提供技术支持,请大家使用前验证资料的正确性!如涉及版权问题,请联系管理员删除! 资料包含以下资料:

Vivado ILA抓不到低频信号?试试Capture Control模式,保姆级配置教程(附PWM调试实例)

本文详细解析了Vivado ILA的Capture Control模式在低频信号捕获中的应用,特别针对PWM调试等场景提供保姆级配置教程。通过条件采样和时间拉伸技术,有效解决传统ILA采样在低频信号调试中的存储深度不足、关键信号丢失等问题,并附赠呼吸灯PWM的完整调试实例,帮助FPGA开发者提升调试效率。

weixin_42549451的博客 350

用Proteus8.9自带STM32F401VE的Controller仿真STM32F407ZGT6,F429IGT6

@用Proteus8.9自带STM32F401VE的Controller仿真STM32F407ZGT6,F429IGT6 一, 目前得到的 Proteus8.9版本软件能够支持的Cortex-M4固件库项目,只能到达STM32F401VE (如下图1所示)。 (图1) 作为ST公司Cortex-M4更为广泛应用的F407,F429系列芯片;现在的Proteus8.9版本软件还没有固件库支持,不能...

kaillen的博客 3万+

PostgreSQL隐式类型转换全解析:告别operator does not exist

强类型数据库是现代数据系统的基石,它在带来严谨性的同时,也常常让开发者在类型不匹配报错前束手无策。当一条SQL因bigint与text比较而抛出operator does not exist时,根源往往在于对数据库隐式转换规则的误解。PostgreSQL通过pg_cast系统表将转换划分为隐式、赋值与显式三个级别,并依据操作符解析逻辑决定是否自动提升类型。理解这些机制,不仅能快速定位JOIN、UNION、函数调用等场景下的类型错误,还能帮助开发者合理使用EXPLAIN VERBOSE、pg_typeof等工

weixin_29587015的博客 304

正确解决Authentication plugin ‘caching _sha2_password’ cannot be loaded:异常的有效解决方法

正确解决Authentication plugin ‘caching _sha2_password’ cannot be loaded:异常的有效解决方法

wbajsjhhhhh的博客 1万+

OpenOCD入门到精通:第28章 综合实战:RISC-V 调试

RISC-V调试实战摘要 本文介绍了RISC-V调试规范及其在OpenOCD中的实现。主要内容包括: RISC-V Debug规范的两个版本(0.11和0.13)及其差异,OpenOCD通过自动检测DTMCS寄存器版本号选择对应驱动实现。 RISC-V调试架构的分层设计,包含DTM、Debug Module、Program Buffer等核心组件,以及三种内存访问方式(progbuf、sysbus、abstract)。 以GD32VF103为例的实战调试配置,包括硬件连接、OpenOCD配置文件编写和GDB

从事嵌入式linux android驱动开发,拥有全栈能力 282

OpenClaw插件配置错误修复完全指南

插件文件名是插件目录结构正确package.json配置正确OpenClaw的插件系统还在快速迭代,偶尔会遇到这种配置问题。看错误信息检查配置文件检查实际文件对比差异修复问题大部分问题都能解决。查看官方文档:https://openclaw.ai/docs提Issue:https://github.com/openclaw/openclaw/issues加入Discord社区求助快速修复命令汇总。

Maynor的博客 4096

数据分享|2023年OSM道路数据(全国,分省,分市)

首先这个工作非常有必要的,因为我们正常使用的道路的分类都是基于包括城市快速路、城市主干路、城市次干路这个体系的,大家对于这个分类体系应该更熟悉,但是OSM地图的道路分类又不是完全按这个来的,所以非常有必要重新分类;搞清楚道路类型是我们使用道路数据做很多工作的基础,比如我们在使用道路数据的时候,经常需要预估道路的行车速度,而这个速度一般就是根据道路类型来的,比如高架路的车速肯定就比城市支路快很多!下载分为两种情况,第一种是下载小区域的数据,比如下载一个街区的数据,第二种为下载整个中国范围的。

JData_Engineer的博客 4306

声音源定位:利用YOLO与麦克风阵列定位声音来源YOLOv5、YOLOv8、YOLOv10

YOLO(You Only Look Once)是一个用于目标检测的深度学习模型。YOLO的最大特点是其通过一次前向传播即可完成多个目标的检测,速度和精度相对其他目标检测算法具有显著优势。YOLO模型的版本不断更新,从YOLOv1到YOLOv10,算法精度和速度都有了显著的提升。声音源定位是利用多个麦克风阵列收集的声音信号,通过算法计算声音源的位置。声音源定位的关键在于准确估计每个麦克风的声音到达时间,从而确定声音源的空间坐标。基于时延估计(TDOA)

YOLO 673

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

上一篇: 近来做飞行器的想法
下一篇: crazyflie2.0_crazyflie-firmware_LED指示灯
技术在路上
博客等级 码龄16年 644粉丝 160原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术在路上

帮助需要的人

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值