不含stm32 底层的代码
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.
 
 
MyStm32Code/bsp/Inc/bsp_led.h

69 lines
1.4 KiB

#ifndef __LED_H
#define __LED_H
#include "stdint.h"
#include "main.h"
#define LED_MAX_NUM 4
typedef enum {
LED_SEQ_0,
LED_COLOR_GREEN,
}MY_LED_COLOR_SEQ;
// 回调需要这个参数,控制时开关还是闪烁,闪烁快慢
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;
};
typedef struct
{
int (*init)();
void (*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( );
void 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);
// 依据GPIO 信息注册
// int led_register(struct led *led, GPIO_TypeDef *gpio, uint16_t pin, enum led_state state, uint16_t level_on );
// 初始化状态
int led_set_state(uint8_t seq,enum led_state state);
// int led_set_state(struct led *led,enum led_state state);
// 执行 -- 由状态决定
void led_callback(void);
#endif
/*
my_led.init();
my_led.port( 200);
led_set_state(LED_SEQ_0, LED_STATE_FLICKER_SLOW);
led_set_state(LED_COLOR_GREEN, LED_STATE_FLICKER_SLOW);
*/