基于FreeRTOS的STM32四轴飞行器: 四.LED控制
- 一.配置Com层
- 二.编写驱动
一.配置Com层
先在Com_Config.h中定义灯位置的枚举类型:
之后定义Led的结构体:
定义飞行器状态:
在Com_Config.c中初始化四个灯:
在Com_Config.h外部声明,其他文件#include可以使用四个灯:
定义飞控板状态:
在Com_Config.h外部声明:
二.编写驱动
之后在Inf_LED编写驱动:
该函数实现LED灯常量、常灭、翻转的功能。
先传入结构体指针,判断如果小于等于1置LED灯为常量或常灭。
如果大于1则翻转对应led:
创建LED任务:
翻转一次50ms,优先级设置低一些为2。
实现LED任务:
先判断定高再解锁再连接,先判断范围小的可以避免多次嵌套。
之后根据模式给不同的status值。
如果status值小于等于1直接通过set赋值,或者cnt%status值通过set实现固定时间翻转: