[项目]基于FreeRTOS的STM32四轴飞行器: 四.LED控制

基于FreeRTOS的STM32四轴飞行器: 四.LED控制

一.配置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实现固定时间翻转:

相关推荐
rit84324994 分钟前
STC8单片机模拟AD转换程序(NTC测温)
单片机·嵌入式硬件
hongtianzai7 分钟前
Laravel8.x核心特性全解析
java·c语言·开发语言·golang·php
szxinmai主板定制专家8 分钟前
基于 STM32 + FPGA 船舶电站控制器设计与实现
arm开发·人工智能·stm32·嵌入式硬件·fpga开发·架构
山上三树9 分钟前
C/C++ 中,整数 ↔ 字符、整数 ↔ 字符串
c语言·c++
我不是程序猿儿10 分钟前
【嵌入式】编码器计数倍频,机械一格与电气计数
stm32·单片机·嵌入式硬件·学习
Hello World . .12 分钟前
51单片机基础外设:GPIO(以LED、按键、数码管为例)
单片机·嵌入式硬件
hongtianzai14 分钟前
Laravel6.x重磅发布:LTS版本新特性全解析
c语言·开发语言·php·laravel
Flamingˢ17 分钟前
基于ARM的裸机程序设计和开发(三):C编程基础与Zynq裸机开发常用方法
c语言·arm开发·单片机
sprite_雪碧18 分钟前
排版类问题(机试高频)
c语言·数据结构·算法
weixin_5375904527 分钟前
《C程序设计语言》练习答案(练习1-7)
linux·c语言·算法