1#include "stm32_dac.hpp"
3#if defined(HAL_DAC_MODULE_ENABLED)
7STM32DAC::STM32DAC(DAC_HandleTypeDef* hadc, uint32_t channel,
float init_voltage,
9 : hdac_(hadc), channel_(channel), vref_(vref)
12#if defined(DAC_ALIGN_12B_R)
13 align_ = DAC_ALIGN_12B_R;
15#elif defined(DAC_ALIGN_8B_R)
16 align_ = DAC_ALIGN_8B_R;
19#error "No supported DAC_ALIGN_xxx defined"
24 HAL_DAC_Start(hdac_, channel_);
27ErrorCode STM32DAC::Write(
float voltage)
29 std::clamp(voltage, 0.0f, vref_);
30 return HAL_DAC_SetValue(
31 hdac_, channel_, align_,
32 static_cast<uint16_t
>(voltage / vref_ *
static_cast<float>(resolution_))) ==