HAL ADC Generic Driver. Функции управления АЦП.

 


 

HAL_ADC_Init

HAL_StatusTypeDef HAL_ADC_Init (ADC_HandleTypeDef * hadc)

Устанавливает конфигурацию АЦП и регулярной группы согласно параметрам, заданным в структуре типа ADC_InitTypeDef.

  • hadc – указатель на структуру параметров конфигурации типа ADC_HandleTypeDef.

Возвращает результат инициализации типа HAL_StatusTypeDef:

  • HAL_OK – при успешном выполнении;
  • HAL_ERROR – при ошибке (неправильные аргументы).

Структура параметров конфигурации.

typedef struct
{
  ADC_TypeDef                   *Instance;              // базовый адрес регистров ADC
  ADC_InitTypeDef               Init;                   // структура основных параметров        ADC
  DMA_HandleTypeDef             *DMA_Handle;            // указатель DMA обработчика
  HAL_LockTypeDef               Lock;                   // блокировка объекта
  __IO uint32_t                 State;                  // состояние АЦП
  __IO uint32_t                 ErrorCode;              // код ошибки
} ADC_HandleTypeDef;

  • Instance – базовый адрес регистров ADC.
  • Init – структура основных параметров ADC. Описана ниже.
  • DMA_Handle – указатель DMA обработчика.
  • Lock - – блокировка объекта. Сообщает системе о том, что ADC уже используется. Применяется для предотвращения случайного доступа к занятому ресурсу.
  • State – код состояния АЦП.
  • ErrorCode – код ошибки АЦП.

Структура основных  параметров.

typedef struct
{
  uint32_t DataAlign;             // режим выравнивания результата
  uint32_t ScanConvMode;           // режим сканирования
  uint32_t ContinuousConvMode;    // режим непрерывного преобразования
  uint32_t NbrOfConversion;   // число каналов преобразования регулярной группы
  uint32_t DiscontinuousConvMode;  // прерывистый режим
  uint32_t NbrOfDiscConversion;   // число прерывистых преобразований регулярной группы
  uint32_t ExternalTrigConv;      // источник запуска
} ADC_InitTypeDef;

DataAlign – режим  выравнивания результата преобразования. Может иметь значения:

  • ADC_DATAALIGN_RIGHT
  • ADC_DATAALIGN_LEFT

ScanConvMode – разрешает или запрещает режим сканирования. Может иметь значения:

  • ADC_SCAN_DISABLE
  • ADC_SCAN_ENABLE

ContinuousConvMode – разрешает или запрещает режим непрерывного преобразования. Может принимать значения:

  • ENABLE
  • DISABLE

NbrOfConversion – задает число преобразований регулярной группы в режиме сканирования. Может иметь значения от 1 до 16.

DiscontinuousConvMode – разрешает или запрещает прерывистый режим. Может принимать значения:

  • ENABLE
  • DISABLE

NbrOfDiscConversion –число преобразований в прерывистом режиме. Может принимать значения от 1 до 8.

ExternalTrigConv – задает источник запуска АЦП для регулярной группы. Может иметь значения:

  • ADC_EXTERNALTRIGCONV_T1_CC1 -  событие Timer 1 CC1
  • ADC_EXTERNALTRIGCONV_T1_CC2 - событие Timer 1 CC2
  • ADC_EXTERNALTRIGCONV_T1_CC3 - событие Timer 1 CC3
  • ADC_EXTERNALTRIGCONV_T2_CC2 - событие Timer 2 CC2
  • ADC_EXTERNALTRIGCONV_T3_TRGO - событие Timer 3 TRGO
  • ADC_EXTERNALTRIGCONV_T4_CC4 - событие Timer 4 CC4
  • ADC_EXTERNALTRIGCONV_EXT_IT11 - сигнал EXTI line 11
  • ADC_SOFTWARE_START - программный запуск SWSTART

 

HAL_ADC_ConfigChannel

HAL_StatusTypeDef HAL_ADC_ConfigChannel (ADC_HandleTypeDef * hadc, ADC_ChannelConfTypeDef * sConfig)

Устанавливает конфигурацию выбранного канала регулярной группы согласно параметрам, заданным в структуре типа ADC_ChannelConfTypeDef.

  • hadc – указатель на структуру параметров конфигурации типа ADC_HandleTypeDef.
  • sConfig – указатель на структуру параметров канала.

Возвращает результат инициализации типа HAL_StatusTypeDef:

  • HAL_OK – при успешном выполнении;
  • HAL_ERROR – при ошибке (неправильные аргументы).

typedef struct
{
  uint32_t Channel;                // номер канала
  uint32_t Rank;                   //  последовательность сканирования канала
  uint32_t SamplingTime;           // время выборки
} ADC_ChannelConfTypeDef;

Channel – задает номер канала регулярной группы, параметры которого устанавливаются функцией.

  • ADC_CHANNEL_0
  • . . . . . . . . . . . . . . .
  • ADC_CHANNEL_17
  • ADC_CHANNEL_TEMPSENSOR
  • ADC_CHANNEL_VREFINT

Rank – номер в очереди сканирования канала.

  • ADC_REGULAR_RANK_1
  • . . . . . . .
  • ADC_REGULAR_RANK_16

SamplingTime – определяете время выборки сигнала.

  • ADC_SAMPLETIME_1CYCLE_5  – время выборки 1,5 циклов
  • ADC_SAMPLETIME_7CYCLES_5  – время выборки 7,5 циклов
  • ADC_SAMPLETIME_13CYCLES_5  – время выборки 13,5 циклов
  • ADC_SAMPLETIME_28CYCLES_5  – время выборки 28,5 циклов
  • ADC_SAMPLETIME_41CYCLES_5  – время выборки 41,5 циклов
  • ADC_SAMPLETIME_55CYCLES_5  – время выборки 55,5 циклов
  • ADC_SAMPLETIME_71CYCLES_5  – время выборки 71,5 циклов
  • ADC_SAMPLETIME_239CYCLES_5  – время выборки 239,5 циклов

 

HAL_ADC_DeInit

HAL_StatusTypeDef HAL_ADC_DeInit (ADC_HandleTypeDef * hadc)

Деинициализирует АЦП. Переводит его в состояние, как после сброса.

  • hadc – указатель на структуру параметров конфигурации типа ADC_HandleTypeDef.

Возвращает результат инициализации типа HAL_StatusTypeDef:

  • HAL_OK – при успешном выполнении;
  • HAL_ERROR – при ошибке (неправильные аргументы).

 

HAL_ADC_MspDeInit

void HAL_ADC_MspDeInit (ADC_HandleTypeDef * hadc)

MSP callback функция инициализации АЦП. Функция вызывается при инициализации АЦП. Ее можно использовать, чтобы добавить свои установки. Тело функции находится в файле stm32f1xx_hal_msp.c.

  • hadc – указатель на структуру параметров конфигурации типа ADC_HandleTypeDef.

Ничего не возвращает.

 

HAL_ADC_Start

HAL_StatusTypeDef HAL_ADC_Start (ADC_HandleTypeDef * hadc)

Разрешает работу АЦП и запускает преобразование регулярной группы.

  • hadc – указатель на структуру параметров конфигурации типа ADC_HandleTypeDef.

Возвращает результат инициализации типа HAL_StatusTypeDef:

  • HAL_OK – при успешном выполнении;
  • HAL_ERROR – при ошибке (неправильные аргументы).

 

HAL_ADC_Stop

HAL_StatusTypeDef HAL_ADC_Stop (ADC_HandleTypeDef * hadc)

Останавливает преобразование регулярной группы (и инжектированной группы в режиме автозапуска), запрещает работу АЦП.

  • hadc – указатель на структуру параметров конфигурации типа ADC_HandleTypeDef.

Возвращает результат инициализации типа HAL_StatusTypeDef:

  • HAL_OK – при успешном выполнении;
  • HAL_ERROR – при ошибке (неправильные аргументы).

 

HAL_ADC_PollForConversion

HAL_StatusTypeDef HAL_ADC_PollForConversion (ADC_HandleTypeDef * hadc, uint32_t Timeout)

Ожидает окончания преобразования регулярной группы.

  • hadc – указатель на структуру параметров конфигурации типа ADC_HandleTypeDef.
  • Timeout – время тайм-аута операции в мс.

Возвращает результат операции типа HAL_StatusTypeDef:

  • HAL_OK – при успешном выполнении;
  • HAL_ERROR – при ошибке (неправильные аргументы).

 

HAL_ADC_PollForEvent

HAL_StatusTypeDef HAL_ADC_PollForEvent (ADC_HandleTypeDef * hadc, uint32_t EventType, uint32_t Timeout)

Ожидание события преобразования.

  • hadc – указатель на структуру параметров конфигурации типа ADC_HandleTypeDef.
  • EventType – тип события. Может иметь только одно значение: ADC_AWD_EVENT, т.е. событие оконного компаратора.
  • Timeout – время тайм-аута операции в мс.

Возвращает результат операции типа HAL_StatusTypeDef:

  • HAL_OK – при успешном выполнении;
  • HAL_ERROR – при ошибке (неправильные аргументы).

 

HAL_ADC_Start_IT

HAL_StatusTypeDef HAL_ADC_Start_IT (ADC_HandleTypeDef * hadc)

Разрешает работу АЦП, запускает преобразование регулярной группы с использованием прерывания.

  • hadc – указатель на структуру параметров конфигурации типа ADC_HandleTypeDef.

Возвращает результат инициализации типа HAL_StatusTypeDef:

  • HAL_OK – при успешном выполнении;
  • HAL_ERROR – при ошибке (неправильные аргументы).

 

HAL_ADC_Stop_IT

HAL_StatusTypeDef HAL_ADC_Stop_IT (ADC_HandleTypeDef * hadc)

Останавливает преобразование регулярной группы (и инжектированной группы в режиме автозапуска), запрещает работу АЦП и прерывания.

  • hadc – указатель на структуру параметров конфигурации типа ADC_HandleTypeDef.

Возвращает результат инициализации типа HAL_StatusTypeDef:

  • HAL_OK – при успешном выполнении;
  • HAL_ERROR – при ошибке (неправильные аргументы).

 

HAL_ADC_Start_DMA

HAL_StatusTypeDef HAL_ADC_Start_DMA (ADC_HandleTypeDef * hadc, uint32_t * pData, uint32_t Length)

Разрешает работу АЦП, запускает преобразование регулярной группы и передает результат через DMA.

  • hadc – указатель на структуру параметров конфигурации типа ADC_HandleTypeDef.
  • pData - указатель на буфер данных.
  • Length – количество данных.

Возвращает результат операции типа HAL_StatusTypeDef:

  • HAL_OK – при успешном выполнении;
  • HAL_ERROR – при ошибке (неправильные аргументы).

 

HAL_ADC_Stop_DMA

HAL_StatusTypeDef HAL_ADC_Stop_DMA (ADC_HandleTypeDef * hadc)

Останавливает преобразование регулярной группы (и инжектированной группы в режиме автозапуска), запрещает работу АЦП и DMA.

  • hadc – указатель на структуру параметров конфигурации типа ADC_HandleTypeDef.

Возвращает результат инициализации типа HAL_StatusTypeDef:

  • HAL_OK – при успешном выполнении;
  • HAL_ERROR – при ошибке (неправильные аргументы).

 

HAL_ADC_GetValue

uint32_t HAL_ADC_GetValue (ADC_HandleTypeDef * hadc)

Чтение результата преобразования регулярной группы (чтение регистра DR).

  • hadc – указатель на структуру параметров конфигурации типа ADC_HandleTypeDef.

Возвращает результат преобразования АЦП .

 

HAL_ADC_IRQHandler

void HAL_ADC_IRQHandler (ADC_HandleTypeDef * hadc)

Обработчик прерывания АЦП.

  • hadc – указатель на структуру параметров конфигурации типа ADC_HandleTypeDef.

Ничего не возвращает.

 

HAL_ADC_ConvCpltCallback

void HAL_ADC_ConvCpltCallback (ADC_HandleTypeDef *
hadc)

Callback-функция завершения преобразования в неблокирующем режиме.

  • hadc – указатель на структуру параметров конфигурации типа ADC_HandleTypeDef.

Не возвращает ничего.

 

HAL_ADC_ConvHalfCpltCallback

void HAL_ADC_ConvHalfCpltCallback (ADC_HandleTypeDef *
hadc)

Callback-функция завершения передачи половины данных DMA в неблокирующем режиме.

  • hadc – указатель на структуру параметров конфигурации типа ADC_HandleTypeDef.

Не возвращает ничего.

 

HAL_ADC_LevelOutOfWindowCallback

void HAL_ADC_LevelOutOfWindowCallback
(ADC_HandleTypeDef * hadc)

Callback-функция оконного компаратора в неблокирующем режиме.

  • hadc – указатель на структуру параметров конфигурации типа ADC_HandleTypeDef.

Не возвращает ничего.

 

HAL_ADC_ErrorCallback

void HAL_ADC_ErrorCallback (ADC_HandleTypeDef * hadc)

Callback-функция ошибок АЦП.

  • hadc – указатель на структуру параметров конфигурации типа ADC_HandleTypeDef.

Ничего не возвращает.

 

HAL_ADC_AnalogWDGConfig

HAL_StatusTypeDef HAL_ADC_AnalogWDGConfig (ADC_HandleTypeDef * hadc, ADC_AnalogWDGConfTypeDef * AnalogWDGConfig)

Устанавливает конфигурацию оконного компаратора.

  • hadc – указатель на структуру параметров конфигурации типа ADC_HandleTypeDef.
  • AnalogWDGConfig – указатель на структуру типа ADC_AnalogWDGConfTypeDef конфигурации оконного компаратора.

Возвращает результат операции типа HAL_StatusTypeDef:

  • HAL_OK – при успешном выполнении;
  • HAL_ERROR – при ошибке (неправильные аргументы).

Структура конфигурации оконного компаратора.

typedef struct
{
  uint32_t WatchdogMode;      // режим оконного компаратора
  uint32_t Channel;           // канал для мониторинга
  uint32_t ITMode;            // разрешение прерывания
  uint32_t HighThreshold;     // верхний порог
  uint32_t LowThreshold;      // нижний порог
  uint32_t WatchdogNumber;    // резерв
} ADC_AnalogWDGConfTypeDef;

WatchdogMode – задает один или несколько каналов, регулярные или инжектированные. Может принимать значения.

  • ADC_ANALOGWATCHDOG_NONE
  • ADC_ANALOGWATCHDOG_SINGLE_REG
  • ADC_ANALOGWATCHDOG_SINGLE_INJEC
  • ADC_ANALOGWATCHDOG_SINGLE_REGINJEC
  • ADC_ANALOGWATCHDOG_ALL_REG
  • ADC_ANALOGWATCHDOG_ALL_INJEC
  • ADC_ANALOGWATCHDOG_ALL_REGINJEC

Channel – задает номер канала для мониторинга.

  • ADC_CHANNEL_0
  • . . . . . . . . . . . . . . .
  • ADC_CHANNEL_17
  • ADC_CHANNEL_TEMPSENSOR
  • ADC_CHANNEL_VREFINT

ITMode – разрешение прерывания.

  • ENABLE
  • DISABLE

HighThreshold - верхний порог температуры.

LowThreshold - нижний порог температуры.

WatchdogNumber – зарезервировано для будущего использования. Должно быть равно 0.

 

HAL_ADC_GetState

uint32_t HAL_ADC_GetState (ADC_HandleTypeDef * hadc)

Чтение состояния АЦП.

  • hadc – указатель на структуру параметров конфигурации типа ADC_HandleTypeDef.

Возвращает код состояния АЦП. Битовая маска кодов состояния:

  • HAL_ADC_STATE_RESET - АЦП запрещен или не инициилизирован
  • HAL_ADC_STATE_READY - готов
  • HAL_ADC_STATE_BUSY_INTERNAL - занят внутренним процессом
  • HAL_ADC_STATE_TIMEOUT - ошибка тайм-аута
  • HAL_ADC_STATE_ERROR_INTERNAL - внутренняя ошибка
  • HAL_ADC_STATE_ERROR_CONFIG - ошибка конфигурации
  • HAL_ADC_STATE_ERROR_DMA - ошибка DMA
  • HAL_ADC_STATE_REG_BUSY - происходит преобразование регулярной группы
  • HAL_ADC_STATE_REG_EOC - есть результат преобразования регулярной группы
  • HAL_ADC_STATE_INJ_BUSY - происходит преобразование инжектированной группы
  • HAL_ADC_STATE_INJ_EOC - есть результат преобразования инжектированной группы
  • HAL_ADC_STATE_AWD1 - выход за пороги оконного компаратора
  • HAL_ADC_STATE_MULTIMODE_SLAVE - АЦП ведомый, в режиме сдвоенных преобразований

 

HAL_ADC_GetError

uint32_t HAL_ADC_GetError (ADC_HandleTypeDef * hadc)

Чтение кода ошибок АЦП.

  • hadc – указатель на структуру параметров конфигурации типа ADC_HandleTypeDef.

Возвращает код ошибок АЦП. Битовая маска кодов состояния:

  • HAL_ADC_ERROR_NONE - нет ошибок
  • HAL_ADC_ERROR_INTERNAL - внутренняя ошибка
  • HAL_ADC_ERROR_OVR - Ошибка переполнения
  • HAL_ADC_ERROR_DMA - ошибка передачи DMA

 

ADC_Enable

HAL_StatusTypeDef ADC_Enable (ADC_HandleTypeDef * hadc)

Разрешение работы АЦП.

  • hadc – указатель на структуру параметров конфигурации типа ADC_HandleTypeDef.

Возвращает результат инициализации типа HAL_StatusTypeDef:

  • HAL_OK – при успешном выполнении;
  • HAL_ERROR – при ошибке (неправильные аргументы).

 

ADC_ConversionStop_Disable

HAL_StatusTypeDef ADC_ConversionStop_Disable (ADC_HandleTypeDef * hadc)

Останавливает преобразование, запрещает работу АЦП.

  • hadc – указатель на структуру параметров конфигурации типа ADC_HandleTypeDef.

Возвращает результат инициализации типа HAL_StatusTypeDef:

  • HAL_OK – при успешном выполнении;
  • HAL_ERROR – при ошибке (неправильные аргументы).

 

ADC_DMAConvCplt

void ADC_DMAConvCplt (DMA_HandleTypeDef * hdma)

Callback-функция завершения передачи DMA.

  • hadc – указатель на структуру параметров конфигурации типа ADC_HandleTypeDef.

Не возвращает ничего.

 

ADC_DMAHalfConvCplt

void ADC_DMAHalfConvCplt (DMA_HandleTypeDef * hdma)

Callback-функция передачи половины данных DMA.

  • hadc – указатель на структуру параметров конфигурации типа ADC_HandleTypeDef.

Не возвращает ничего.

 

ADC_DMAError

void ADC_DMAError (DMA_HandleTypeDef * hdma)

Callback-функция ошибки DMA.

hdma – указатель на обработчик DMA.

Не возвращает ничего.

 

HAL_ADCEx_Calibration_Start

HAL_StatusTypeDef HAL_ADCEx_Calibration_Start (ADC_HandleTypeDef * hadc)

Выполняет автоматическую самокалибровку АЦП. Функция должна вызываться при отключенном АЦП.

  • hadc – указатель на структуру параметров конфигурации типа ADC_HandleTypeDef.

Возвращает результат инициализации типа HAL_StatusTypeDef:

  • HAL_OK – при успешном выполнении;
  • HAL_ERROR – при ошибке (неправильные аргументы).

 

HAL_ADCEx_InjectedStart

HAL_StatusTypeDef HAL_ADCEx_InjectedStart (ADC_HandleTypeDef * hadc)

Разрешает работу АЦП и запускает преобразование инжектированной группы.

  • hadc – указатель на структуру параметров конфигурации типа ADC_HandleTypeDef.

Возвращает результат инициализации типа HAL_StatusTypeDef:

  • HAL_OK – при успешном выполнении;
  • HAL_ERROR – при ошибке (неправильные аргументы).

 

HAL_ADCEx_InjectedStop

HAL_StatusTypeDef HAL_ADCEx_InjectedStop (ADC_HandleTypeDef * hadc)

Останавливает преобразование инжектированной группы.

  • hadc – указатель на структуру параметров конфигурации типа ADC_HandleTypeDef.

Возвращает результат инициализации типа HAL_StatusTypeDef:

  • HAL_OK – при успешном выполнении;
  • HAL_ERROR – при ошибке (неправильные аргументы).

 

HAL_ADCEx_InjectedPollForConversion

HAL_StatusTypeDef HAL_ADCEx_InjectedPollForConversion (ADC_HandleTypeDef * hadc, uint32_t Timeout)

Ожидает окончания преобразования инжектированной группы.

  • hadc – указатель на структуру параметров конфигурации типа ADC_HandleTypeDef.
  • Timeout – время тайм-аута операции в мс.

Возвращает результат операции типа HAL_StatusTypeDef:

  • HAL_OK – при успешном выполнении;
  • HAL_ERROR – при ошибке (неправильные аргументы).

 

HAL_ADCEx_InjectedStart_IT

HAL_StatusTypeDef HAL_ADCEx_InjectedStart_IT (ADC_HandleTypeDef * hadc)

Разрешает работу АЦП, запускает преобразование инжектированной группы с использованием прерывания.

  • hadc – указатель на структуру параметров конфигурации типа ADC_HandleTypeDef.

Возвращает результат инициализации типа HAL_StatusTypeDef:

  • HAL_OK – при успешном выполнении;
  • HAL_ERROR – при ошибке (неправильные аргументы).

 

HAL_ADCEx_InjectedStop_IT

HAL_StatusTypeDef HAL_ADCEx_InjectedStop_IT (ADC_HandleTypeDef * hadc)

Останавливает преобразование инжектированной группы и запрещает прерывание окончания преобразования.

  • hadc – указатель на структуру параметров конфигурации типа ADC_HandleTypeDef.

Возвращает результат инициализации типа HAL_StatusTypeDef:

  • HAL_OK – при успешном выполнении;
  • HAL_ERROR – при ошибке (неправильные аргументы).

 

HAL_ADCEx_MultiModeStart_DMA

HAL_StatusTypeDef HAL_ADCEx_MultiModeStart_DMA (ADC_HandleTypeDef * hadc, uint32_t * pData, uint32_t Length)

Разрешает работу АЦП, запускает преобразование регулярной группы и передает результат через DMA.

  • hadc – указатель на структуру параметров конфигурации типа ADC_HandleTypeDef.
  • pData - указатель на буфер данных.
  • Length – количество данных.

Возвращает результат операции типа HAL_StatusTypeDef:

  • HAL_OK – при успешном выполнении;
  • HAL_ERROR – при ошибке (неправильные аргументы).

 

HAL_ADCEx_MultiModeStop_DMA

HAL_StatusTypeDef HAL_ADCEx_MultiModeStop_DMA (ADC_HandleTypeDef * hadc)

Останавливает преобразование регулярной группы (и инжектированной группы в режиме автозапуска), запрещает работу АЦП и DMA.

  • hadc – указатель на структуру параметров конфигурации типа ADC_HandleTypeDef.

Возвращает результат инициализации типа HAL_StatusTypeDef:

  • HAL_OK – при успешном выполнении;
  • HAL_ERROR – при ошибке (неправильные аргументы).

 

HAL_ADCEx_InjectedGetValue

uint32_t HAL_ADCEx_InjectedGetValue (ADC_HandleTypeDef * hadc, uint32_t InjectedRank)

Чтение результата преобразования инжектированной группы.

  • hadc – указатель на структуру параметров конфигурации типа ADC_HandleTypeDef.
  • InjectedRank – номер канала в последовательности.
    • ADC_INJECTED_RANK_1 – инжектированный канал 1
    • ADC_INJECTED_RANK_2 – инжектированный канал 2
    • ADC_INJECTED_RANK_3 – инжектированный канал 3
    • ADC_INJECTED_RANK_4 – инжектированный канал 4

Возвращает результат преобразования.

 

HAL_ADCEx_MultiModeGetValue

uint32_t HAL_ADCEx_MultiModeGetValue (ADC_HandleTypeDef * hadc)

Возвращает последнее значение преобразования регулярных групп в сдвоенном режиме. Объединяет в 32х разрядном слове DR-регистры обоих АЦП. Данные АЦП2 сдвигает в старшие разрядах.

  • hadc – указатель на структуру параметров конфигурации типа ADC_HandleTypeDef.

Возвращает результат преобразования обоих АЦП в одном слове.

 

HAL_ADCEx_InjectedConvCpltCallback

void HAL_ADCEx_InjectedConvCpltCallback (ADC_HandleTypeDef * hadc)

Callback-функция завершения передачи в не блокирующем режиме.

  • hadc – указатель на структуру параметров конфигурации типа ADC_HandleTypeDef.

Не возвращает ничего.

 

HAL_ADCEx_InjectedConfigChannel

HAL_StatusTypeDef HAL_ADCEx_InjectedConfigChannel (ADC_HandleTypeDef * hadc, ADC_InjectionConfTypeDef * sConfigInjected)

Устанавливает конфигурацию инжектированной группы и выбранного канала согласно параметрам, заданным в структуре типа ADC_InjectionConfTypeDef.

  • hadc – указатель на структуру параметров конфигурации типа ADC_HandleTypeDef.
  • sConfigInjected – указатель на структуру параметров канала.

Возвращает результат операции типа HAL_StatusTypeDef:

  • HAL_OK – при успешном выполнении;
  • HAL_ERROR – при ошибке (неправильные аргументы).

Структура конфигурации инжектированной группы.

typedef struct
{
  uint32_t InjectedChannel;               // номер канала
  uint32_t InjectedRank;                  // последовательность сканирования канала
  uint32_t InjectedSamplingTime;          // время выборки
  uint32_t InjectedOffset;                // значение смещения
  uint32_t InjectedNbrOfConversion;       // число каналов преобразования
  uint32_t InjectedDiscontinuousConvMode;  // разрешение прерывистого режима
  uint32_t AutoInjectedConv;              // разрешение автозапуска инжектированной группы
  uint32_t ExternalTrigInjecConv;         // источник запуска
} ADC_InjectionConfTypeDef;

InjectedChannel - задает номер канала инжектированной группы, параметры которого устанавливаются функцией.

  • ADC_CHANNEL_0
  • . . . . . . . . . . . . . . .
  • ADC_CHANNEL_17
  • ADC_CHANNEL_TEMPSENSOR
  • ADC_CHANNEL_VREFINT

InjectedRank - номер в очереди сканирования канала.

  • ADC_INJECTED_RANK_1
  • . . . . . . . . . . . . . . . . . . . .
  • ADC_INJECTED_RANK_4

InjectedSamplingTime - определяете время выборки сигнала.

  • ADC_SAMPLETIME_1CYCLE_5  – время выборки 1,5 циклов
  • ADC_SAMPLETIME_7CYCLES_5  – время выборки 7,5 циклов
  • ADC_SAMPLETIME_13CYCLES_5  – время выборки 13,5 циклов
  • ADC_SAMPLETIME_28CYCLES_5  – время выборки 28,5 циклов
  • ADC_SAMPLETIME_41CYCLES_5  – время выборки 41,5 циклов
  • ADC_SAMPLETIME_55CYCLES_5  – время выборки 55,5 циклов
  • ADC_SAMPLETIME_71CYCLES_5  – время выборки 71,5 циклов
  • ADC_SAMPLETIME_239CYCLES_5  – время выборки 239,5 циклов

InjectedOffset – значение смещения (OFFSET) инжектированных каналов.

InjectedNbrOfConversion - задает число преобразований инжектированной группы. Может иметь значения от 1 до 4.

InjectedDiscontinuousConvMode - разрешает или запрещает режим непрерывного преобразования. Может принимать значения:

  • ENABLE
  • DISABLE

AutoInjectedConv – разрешает или запрещает автоматический запуск инжектированной группы после регулярной. Может принимать значения:

  • ENABLE
  • DISABLE

ExternalTrigInjecConv - задает источник запуска АЦП для инжектированной группы. Может иметь значения:

  • ADC_EXTERNALTRIGINJECCONV_T1_TRGO -  событие Timer 1 TRGO
  • ADC_EXTERNALTRIGINJECCONV_T1_CC4 - событие Timer 1 CC4
  • ADC_EXTERNALTRIGINJECCONV_T2_TRGO - событие Timer 2 TRGO
  • ADC_EXTERNALTRIGINJECCONV_T2_CC1 - событие Timer 2 CC1
  • ADC_EXTERNALTRIGINJECCONV_T3_CC4 - событие Timer 3 CC4
  • ADC_EXTERNALTRIGINJECCONV_T4_TRGO - событие Timer 4 TRGO
  • ADC_EXTERNALTRIGINJECCONV_EXT_IT15 - сигнал EXTI line 15
  • ADC_INJECTED_SOFTWARE_START - программный запуск JSWSTART

 

HAL_ADCEx_MultiModeConfigChannel

HAL_StatusTypeDef HAL_ADCEx_MultiModeConfigChannel (ADC_HandleTypeDef * hadc, ADC_MultiModeTypeDef * multimode)

Разрешает работу АЦП в режиме сдвоенных преобразований и устанавливает его параметры.

  • hadc – указатель на структуру параметров конфигурации типа ADC_HandleTypeDef.
  • multimode – указатель на структуру параметров сдвоенного режима.

Возвращает результат операции типа HAL_StatusTypeDef:

  • HAL_OK – при успешном выполнении;
  • HAL_ERROR – при ошибке (неправильные аргументы).

Структура конфигурации режима сдвоенных преобразований.

typedef struct
{
  uint32_t Mode;              // режим
} ADC_MultiModeTypeDef;

Mode – режим работы АЦП. Может иметь значения:

  • ADC_MODE_INDEPENDENT – независимый режим работы.
  • ADC_DUALMODE_REGSIMULT_INJECSIMU LT - Комбинированный режим одновременного преобразования инжектированных и регулярных каналов (Injected simultaneous mode + Regular simultaneous mode).
  • ADC_DUALMODE_REGSIMULT_ALTERTRIG - Комбинированный режим преобразования одновременного преобразования регулярных каналов и поочередного запуска (Regular simultaneous mode + Alternate trigger mode).
  • ADC_DUALMODE_INJECSIMULT_INTERLFAST - Комбинированный режим одновременного преобразования инжектированных каналов и быстрых преобразований со смещением во времени (Injected simultaneous mode + Fast interleaved mode).
  • ADC_DUALMODE_INJECSIMULT_INTERLSLOW - Комбинированный режим одновременного преобразования инжектированных каналов и медленных преобразований со смещением во времени (Injected simultaneous mode + Slow interleaved mode).
  • ADC_DUALMODE_INJECSIMULT - Режим одновременных преобразований инжектированных каналов (Injected simultaneous mode).
  • ADC_DUALMODE_REGSIMULT - Режим одновременных преобразований регулярных каналов (Regular simultaneous mode).
  • ADC_DUALMODE_INTERLFAST - Режим быстрых преобразований со смещением во времени (Fast interleaved mode).
  • ADC_DUALMODE_INTERLSLOW - Режим медленных преобразований со смещением во времени (Slow interleaved mode).
  • ADC_DUALMODE_ALTERTRIG - Режим поочередного запуска АЦП (Alternate trigger mode).