/**********************************************************************
|
* Copyright: (C)2023 LingYun IoT System Studio
|
* Author: GuoWenxue<guowenxue@gmail.com> 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_ */
|