/********************************************************************** * Copyright: (C)2023 LingYun IoT System Studio * Author: GuoWenxue QQ: 281143292 * Description: ISKBoard Led/Relay/Key/ADC Hardware Abstract Layer driver * * ChangeLog: * Version Date Author Description * V1.0.0 2023.04.3 GuoWenxue Release initial version ***********************************************************************/ #ifndef INC_MISCDEV_H_ #define INC_MISCDEV_H_ #include "stm32l431xx.h" typedef enum { OFF, ON, } status_t; /* *+----------------------+ *| GPIO Led API | *+----------------------+ */ typedef enum { LedRed, LedGreen, LedBlue, LedMax, } lednum_t; typedef struct gpio_s { const char *name; GPIO_TypeDef *group; uint16_t pin; } gpio_t; extern gpio_t leds[LedMax] ; extern void turn_led(lednum_t which, status_t status); extern void blink_led(lednum_t which, uint32_t interval); /* *+----------------------+ *| GPIO Relay API | *+----------------------+ */ extern void turn_relay(status_t status); /* *+----------------------------+ *| ADC noisy & lux sensor API | *+----------------------------+ */ enum { ADCCHN_NOISY, ADCCHN_LUX, ADCCHN_MAX, }; extern int adc_sample_lux_noisy(uint32_t *lux, uint32_t *noisy); /* *+----------------------------+ * Timer Buzzer/delay API | *+----------------------------+ */ extern void beep_start(uint16_t times, uint16_t interval); /* Max to 60000 us, DS18B20 driver depends on it */ extern void delay_us(uint16_t us); #endif /* INC_LED_H_ */