本博客用来记录学习ATKflight固件的学习过程,本人萌新,大佬们可以参考参考。
本文默认已经了解FreeRTOS操作系统并且会简单的使用方法,如果读者没了解过,建议先看正点原子的FreeRTOS教程视频学习一下,毕竟ATKflight固件使用了操作系统,个人感觉使用带操作系统的工程更加接近于实际生活,建议大家多多尝试。
第一部分
LED驱动代码
咱先从简单的开始,先看懂LED灯的驱动代码。
代码位置:…\悟空四轴飞行器光盘\悟空四轴飞行器光盘资料包\3. 程序源\ATKflight\Firmware_F405 V1.2\src\drivers
在keil5中的位置:
我们先看led.h这个头文件,看看有什么函数
可以看到有6个函数,我们逐一解析一下。
void ledInit(void);
这个函数很简单,只是初始化了控制LED灯的IO引脚。
void warningLedON(void);
这个函数里有枚举类型的变量,在上面可以看到其定义
从名字可以看出这个枚举变量是用来存储led灯的状态的,枚举成员解释如下:
WARNING_LED_OFF 熄灭状态
WARNING_LED_ON 点亮状态
WARNING_LED_FLASH 闪烁状态
了解完这个我们在看这个函数就可以知道它的作用是改变LED灯状态为熄灭。
void warningLedOFF(void);
和上一个函数差不多,作用为改变led灯状态为熄灭状态。
void warningLedFlash(void);
作用为改变led灯状态为熄灭状态;
void warningLedRefresh(void);
先看led.h里的宏定义
正点原子定义了三个宏分别用来控制led灯点亮,熄灭和闪烁。
所以我们可以 知道这个函数的作用是根据led灯的状态来控制led灯点亮,熄灭或者闪烁。
void warningLedUpdate(void);
这个函数的作用是500ms更新一次led灯的状态。