H2S stm32F407ZET stm32F407ZGT
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
H2S/Code/base/Inc/led.h

84 lines
1.6 KiB

2 years ago
#ifndef __LED_H
#define __LED_H
#include "stdint.h"
2 years ago
#include "FreeRTOS.h"
#include "task.h"
2 years ago
#include "main.h"
2 years ago
#include "cmsis_os.h"
2 years ago
#define LED_MAX_NUM 4
2 years ago
typedef enum {
LED_SEQ_0,
LED_SEQ_1,
// LED_COLOR_GREEN,
}MY_LED_COLOR_SEQ;
2 years ago
// 回调需要这个参数,控制时开关还是闪烁,闪烁快慢
enum led_state{
LED_STATE_ON,
LED_STATE_FLICKER_SLOW,
LED_STATE_FLICKER_MEDIUM,
LED_STATE_FLICKER_QUICK,
LED_STATE_OFF
};
// 标准库的 GPIO_TypeDef, 改为HAL库
struct led
{
enum led_state state;
GPIO_TypeDef *gpio;
uint16_t pin;
uint16_t level_on;
};
2 years ago
typedef struct
{
int (*init)();
int (*port)(uint16_t delay_ms);
uint8_t led_num;
uint16_t delay_base_ms;
// struct led *led[LED_MAX_NUM];
// void * led;
}My_LED_TypeDef;
extern My_LED_TypeDef my_led;
int Led_Init( );
int Led_Port( uint16_t delay_ms );
int led_setup(uint8_t seq, GPIO_TypeDef *gpio,uint16_t pin,enum led_state state,uint16_t level_on);
2 years ago
// 依据GPIO 信息注册
2 years ago
// int led_register(struct led *led, GPIO_TypeDef *gpio, uint16_t pin, enum led_state state, uint16_t level_on );
2 years ago
// 初始化状态
2 years ago
int led_set_state(uint8_t seq,enum led_state state);
// int led_set_state(struct led *led,enum led_state state);
2 years ago
// 执行 -- 由状态决定
void led_callback(void);
#endif
2 years ago
/**
* @usage:
* .h
typedef enum {
LED_SEQ_0,
LED_SEQ_1,
// LED_COLOR_GREEN,
}MY_LED_COLOR_SEQ;
int Led_Init() LED
init port
led_set_state
*/