10#ifndef SEMF_HARDWAREABSTRACTION_STM32_STM32ANALOGINDMA_H_
11#define SEMF_HARDWAREABSTRACTION_STM32_STM32ANALOGINDMA_H_
16#if defined(STM32) && defined(HAL_ADC_MODULE_ENABLED)
49 void start(uint8_t buffer[],
size_t bufferSize)
override;
66 static void systemIsr(ADC_HandleTypeDef& adc);
76 void isr(ADC_HandleTypeDef& adc);
82 void isrError(ADC_HandleTypeDef& adc);
88 ADC_HandleTypeDef* m_hwHandle;
90 static constexpr Error::ClassID kSemfClassId = Error::ClassID::Stm32AnalogInDma;
Interface for using ADC (Analog to Digital Conversion) hardware in DMA (Direct Memory Access) mode.
LinkedQueue is an managed single linked queue implementation.
virtual ~Stm32AnalogInDma()=default
void isrError(ADC_HandleTypeDef &adc)
Sending a error signal.
static void systemIsr(ADC_HandleTypeDef &adc)
System-wide interrupt service routine for adc conversion finished.
void isr(ADC_HandleTypeDef &adc)
Interrupt service routine for adc conversion finished.
Stm32AnalogInDma(const Stm32AnalogInDma &other)=delete
Stm32AnalogInDma(ADC_HandleTypeDef &hwHandle)
Constructor.
static void systemIsrError(ADC_HandleTypeDef &adc)
System-wide interrupt service routine for adc error.
void start(uint8_t buffer[], size_t bufferSize) override
Starts the hardware modules (ADC with DMA) for reading ADC values.
static LinkedQueue< Stm32AnalogInDma > * queue()
Get the list with all analog ins.