1#include "stm32_dac.hpp"
3#if defined(HAL_DAC_MODULE_ENABLED)
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_);
29 voltage = 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_))) ==
ErrorCode Write(float voltage) override
输出电压 / Output analog voltage
STM32DAC(DAC_HandleTypeDef *hdac, uint32_t channel, float init_voltage=0.0f, float vref=3.3f)
构造 DAC 对象 / Construct DAC object
LibXR 命名空间 / LibXR namespace.
ErrorCode
定义错误码枚举 / Defines an enumeration for error codes
@ FAILED
操作失败 / Operation failed
@ OK
操作成功 / Operation successful