Обновлены шапки и по мелочи

This commit is contained in:
2025-12-28 14:06:19 +03:00
parent f3e76e105a
commit 8b930ebe12
12 changed files with 523 additions and 251 deletions

View File

@@ -17,6 +17,18 @@
#include "retarget_conf.h"
//-- Defines -------------------------------------------------------------------
// Дефайны для пинов ADC
#define ADC_Ch0_Pin GPIO_Pin_0 /**< PB0 — ADC Channel 0 */
#define ADC_Ch0_GPIO_Port GPIOB /**< GPIO порт ADC Channel 0 */
#define ADC_Ch1_Pin GPIO_Pin_1 /**< PB1 — ADC Channel 1 */
#define ADC_Ch1_GPIO_Port GPIOB /**< GPIO порт ADC Channel 1 */
#define ADC_Ch2_Pin GPIO_Pin_2 /**< PB2 — ADC Channel 2 */
#define ADC_Ch2_GPIO_Port GPIOB /**< GPIO порт ADC Channel 2 */
#define ADC_Ch3_Pin GPIO_Pin_3 /**< PB3 — ADC Channel 3 */
#define ADC_Ch3_GPIO_Port GPIOB /**< GPIO порт ADC Channel 3 */
//-- Types ---------------------------------------------------------------------
@@ -32,6 +44,17 @@ typedef enum
ADC_Callback_Error, /*!< Ошибка */
}ADC_CallbackTypeDef;
/**
* @brief Типы callback-функций ADC
*/
typedef struct
{
unsigned Ch0:1; /*!< АЦП Канал 0 */
unsigned Ch1:1; /*!< АЦП Канал 1 */
unsigned Ch2:1; /*!< АЦП Канал 2 */
unsigned Ch3:1; /*!< АЦП Канал 3 */
}ADC_ChannelEnableTypeDef;
/**
* @brief Расширенная конфигурация секвенсора ADC
*/
@@ -42,6 +65,7 @@ typedef struct
uint8_t ITCount; /*!< Количество запросов для генерации прерывания */
FunctionalState BufferCircular; /*!< Циклический буфер */
void (*SEQCpltCallback)(void); /*!< Вызывается при завершении секвенсора */
void (*BuffHalfCallback)(void); /*!< Вызывается при заполнении половины буфера */
void (*BuffFullCallback)(void); /*!< Вызывается при заполнении буфера */
@@ -87,11 +111,12 @@ typedef struct
{
ADC_TypeDef *Instance; /*!< Регистры ADC */
ADC_SEQ_HandleTypeDef SEQ[ADC_SEQ_Total]; /*!< Хендл секвенсоров */
ADC_DC_ExtInit_TypeDef DC[ADC_DC_Total]; /*!< Хендл компараторов */
ADC_SEQ_HandleTypeDef SEQ[ADC_SEQ_Total]; /*!< Хендл секвенсоров */
ADC_DC_ExtInit_TypeDef DC[ADC_DC_Total]; /*!< Хендл компараторов */
/* ===== Channels ===== */
uint16_t ChannelData[ADC_CH_Total]; /*!< Текущие значения каналов */
ADC_ChannelEnableTypeDef *ChannelEnable; /*!< Какие каналы АЦП инициализировать (GPIO Pin) */
uint16_t ChannelData[ADC_CH_Total]; /*!< Текущие значения каналов */
}ADC_HandleTypeDef;
//-- External handles ----------------------------------------------------------
extern ADC_HandleTypeDef hadc;
@@ -99,6 +124,14 @@ extern ADC_HandleTypeDef hadc;
//-- Exported functions prototypes ---------------------------------------------
/* Первичная инициализация ADC */
void adc_init_first(void);
void adc_gpio_init(ADC_ChannelEnableTypeDef *ChEn);
/* ADC API functions */
/* Записать калибровочные значения канала */
OperationStatus ADC_Channel_Calibr(ADC_HandleTypeDef *hadc, ADC_CH_Num_TypeDef channel, int OFFSET, int GAIN);
/* Получение текущего значения канала */
uint16_t ADC_Channel_GetValue(ADC_HandleTypeDef *hadc, ADC_CH_Num_TypeDef channel);
/* Sequencer Init functions*/
@@ -107,7 +140,7 @@ OperationStatus adc_seq_init(ADC_HandleTypeDef *hadc, ADC_SEQ_Num_TypeDef SEQ_Nu
/* Обработчик прерываний секвенсора */
void adc_seq_irq_handler(ADC_HandleTypeDef *hadc, ADC_SEQ_Num_TypeDef SEQ_Num);
/* Sequencer API functions*/
/* Sequencer API functions */
/* Установка коллбека секвенсора АЦП */
OperationStatus ADC_SEQ_Set_Callback(ADC_HandleTypeDef* hadc, ADC_SEQ_Num_TypeDef SEQ_Num, ADC_CallbackTypeDef CallbackType, void (*Callback)(void));
@@ -117,8 +150,6 @@ OperationStatus ADC_SEQ_Start(ADC_HandleTypeDef *hadc, ADC_SEQ_Num_TypeDef SEQ_N
/* Остановка секвенсора АЦП */
OperationStatus ADC_SEQ_Stop(ADC_HandleTypeDef *hadc, ADC_SEQ_Num_TypeDef SEQ_Num);
/* Получение текущего значения канала */
uint16_t ADC_Get_ChannelValue(ADC_HandleTypeDef *hadc, ADC_CH_Num_TypeDef channel);
/* Программный запуск преобразования секвенсора */
void ADC_SEQ_SoftwareStart(void);