1、驱动层完成,意味着PH7控制板上的各硬件设备原始数据可用,同时 PH7 架构支持不同的MCU、不同的传感器、存储设备等等的移植和互换。
2、框架层完成,PH7整个软件体系的数据总线、运行控制、上、下行通讯及控制、机载参数、航点设置、飞行数据记录、调试控制台等主要功能已经完备。
/*
/
1. 代码层次
由底层向上,依次分为4个层 BSP, Frame, Algorithms, Application. 每个层由一个引用或对象进行代表,通过该引用或对象
即可使用该层提供的各种功能.
BSP : 为 PH7 驱动层,负责 MCU 及各种外设的驱动实现,负责 PH7 框架与 Stm32CubeMx 生成框架之间的对接。
Frame : 为 PH7 框架层,为 PH7 系统提供运行框架。提供诸如数据总线、调试控制台及调试函数、运行时间控制、消
息响应机制实现、遥测通讯协议实现、线程间通讯等等功能性框架。
Algorithms : 为 PH7 算法层,提供基础数学库、姿态测量、姿态控制、导航控制等各种相关算法实现。
Application : 为 PH7 应用层,在上述三层的基础上实现 AHRS/飞控/云台/地面站等等各种应用在逻辑层面的实现及控制.
/
2. 重要的全局性对象/引用/指针
在整个PH7代码框架中具有重要地位、使用较为频繁的全局性对象/引用/指针共有如下:
drv : 驱动层全局引用,负责整个 PH7 硬件设备的驱动实现
frm : 框架层全局引用,提供 PH7 软件框架的各种功能
algo : 算法层全局引用
app : 应用层全局引用
bus : 数据总线全局应用, 通过该引用使用数据总线的各种功能
msg : 消息循环全局应用
用户如需要在自己的代码中使用上述全局性对象/引用/指针,那么只需要在 c++ 代码文件文件的开头处加入如下文件
包含代码(需要根据实际情况更改包换路径): #include "../Frame/UseGlobalObject.h"
.....................................................................................................
drv: 全局引用,通过其可访问 PH7 硬件控制板的各设备及对应的功能,目前已有的设备对象为:
drv._pAccel : 加速度计
drv._pAdcImu : 获取 IMU 姿态数据的 AD 转换器
drv._pAdcTemp : 获取 IMU 温度数据的 AD 转换器
drv._pAnalogInput : 计算 IMU 温度数据
drv._pBaro : 气压计
drv._pFlash : 板载 flash
drv._pGyro : 陀螺仪
drv._pI2C_1 : MCU I2C 1 接口
drv._pLed : 板载 RGB LED
drv._pMag : 磁强计
drv._pPwm : PWM 输入输出
drv._pSpiAdcImu : IMU 姿态测量 AD 转换器的 spi 数据输出 spi
drv._pSpiAdcTemp : IMU 温度测量 AD 转换器的 spi 数据输出 spi
drv._pSpiFlash : Flash 的 spi 数据及控制接口
drv._pSysTimer : 系统定时器
drv._pUartBoardCtrl : 板载控制接口
drv._pUsartGps : gps 接口
drv._pUsartTele : 遥测数据接口
....................................