autoquad源码分析1

本文主要介绍了AutoQuad飞控源码的学习过程,分析了代码结构和主要功能,包括FPU配置、RCC时钟设置、中断优先级、CoOCox OS初始化以及关键任务如imuInit()、gpsInit()和controlInit()等。此外,还提到了CCM内存的使用和飞控系统的传感器通信。后续将深入研究SPI驱动、IMU数据处理和通讯模式设计。
摘要由CSDN通过智能技术生成

最近在学习autoquad源码,发现网络上关于这方面的知识不多。大多是笼统的简介并没有对源码的详细分析。所以一切都要从头看起。相比于apm和px4这些飞控代码autoquad要精简的多。因为它不需要兼容多个硬件所以就少了很多的中间层次结构。这也给分析代码带来了很大的便捷。并且其底层使用ST标准外设库,也是国内大多数搞STM32的工程师所熟悉的。下表列举一些autoquad的一些软硬件参数表。


硬件资源 详细
主控 STM32F405RGT6
IMU MPU6000+HMC5983+MS5611(均为SPI接口)
存储设备 SDcard+EEPROM
通讯接口 多路USART、CAN总线、USB接口

以下是软件资源

软件资源 详细
操作系统 COOCOX
文件系统 FATFS
状态估计算法 SRCDKF
控制算法 传统PID +L1自适应(闭源)
调用库 ST标准外设库、USB驱动、FATFS文件系统

总体来说autoquad的代码结构还是比较清晰的。包含各个stm32的外设驱动及各个模块的驱动再结合算法部分便形成了完整的工程。由于其编译环境不是keil所以网上也有把该工程移植到keil下的代码。但好多真的是下载后无法运行的。因为好多参数都需要改。不修改的话程序会卡死。
autoquad对应的飞控有模拟传感器和数字传感器。不过研究比较多的是基于其数字传感器的飞控-autoquad-M4。传感器接口都是SPI通信,保证了传感器传输速度的高速型,其完善的SPI驱动结构设计加上DMA传输使得传感器数据采集完全在后台采集,占用极少的系统资源,同时又保证了数据的实时性。
接下来就直接从main函数走起

int main ( void )
{
    fpuInit();        // 设置FPU

    rccConfiguration();//时钟使能及板
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值