20#ifndef STM32F4xx_LL_DAC_H
21#define STM32F4xx_LL_DAC_H
54#define DAC_CR_CH1_BITOFFSET 0UL
56#if defined(DAC_CHANNEL2_SUPPORT)
57#define DAC_CR_CH2_BITOFFSET 16UL
59#define DAC_CR_CHX_BITOFFSET_MASK (DAC_CR_CH1_BITOFFSET | DAC_CR_CH2_BITOFFSET)
61#define DAC_CR_CHX_BITOFFSET_MASK (DAC_CR_CH1_BITOFFSET)
64#define DAC_SWTR_CH1 (DAC_SWTRIGR_SWTRIG1)
65#if defined(DAC_CHANNEL2_SUPPORT)
66#define DAC_SWTR_CH2 (DAC_SWTRIGR_SWTRIG2)
67#define DAC_SWTR_CHX_MASK (DAC_SWTR_CH1 | DAC_SWTR_CH2)
69#define DAC_SWTR_CHX_MASK (DAC_SWTR_CH1)
72#define DAC_REG_DHR12R1_REGOFFSET 0x00000000UL
73#define DAC_REG_DHR12L1_REGOFFSET 0x00100000UL
75#define DAC_REG_DHR8R1_REGOFFSET 0x02000000UL
77#if defined(DAC_CHANNEL2_SUPPORT)
78#define DAC_REG_DHR12R2_REGOFFSET 0x00030000UL
80#define DAC_REG_DHR12L2_REGOFFSET 0x00400000UL
82#define DAC_REG_DHR8R2_REGOFFSET 0x05000000UL
85#define DAC_REG_DHR12RX_REGOFFSET_MASK 0x000F0000UL
86#define DAC_REG_DHR12LX_REGOFFSET_MASK 0x00F00000UL
87#define DAC_REG_DHR8RX_REGOFFSET_MASK 0x0F000000UL
88#define DAC_REG_DHRX_REGOFFSET_MASK (DAC_REG_DHR12RX_REGOFFSET_MASK\
89 | DAC_REG_DHR12LX_REGOFFSET_MASK | DAC_REG_DHR8RX_REGOFFSET_MASK)
91#define DAC_REG_DOR1_REGOFFSET 0x00000000UL
92#if defined(DAC_CHANNEL2_SUPPORT)
93#define DAC_REG_DOR2_REGOFFSET 0x10000000UL
95#define DAC_REG_DORX_REGOFFSET_MASK (DAC_REG_DOR1_REGOFFSET | DAC_REG_DOR2_REGOFFSET)
99#define DAC_REG_DHR_REGOFFSET_MASK_POSBIT0 0x0000000FUL
101#define DAC_REG_DORX_REGOFFSET_MASK_POSBIT0 0x00000001UL
103#define DAC_REG_SHSRX_REGOFFSET_MASK_POSBIT0 0x00000001UL
106#define DAC_REG_DHR12RX_REGOFFSET_BITOFFSET_POS 16UL
109#define DAC_REG_DHR12LX_REGOFFSET_BITOFFSET_POS 20UL
112#define DAC_REG_DHR8RX_REGOFFSET_BITOFFSET_POS 24UL
115#define DAC_REG_DORX_REGOFFSET_BITOFFSET_POS 28UL
120#if defined(DAC_CHANNEL2_SUPPORT)
121#define DAC_DHR12RD_DACC2DHR_BITOFFSET_POS DAC_DHR12RD_DACC2DHR_Pos
122#define DAC_DHR12LD_DACC2DHR_BITOFFSET_POS DAC_DHR12LD_DACC2DHR_Pos
123#define DAC_DHR8RD_DACC2DHR_BITOFFSET_POS DAC_DHR8RD_DACC2DHR_Pos
127#define DAC_DIGITAL_SCALE_12BITS 4095UL
149#define __DAC_PTR_REG_OFFSET(__REG__, __REG_OFFFSET__) \
150 ((uint32_t *)((uint32_t) ((uint32_t)(&(__REG__)) + ((__REG_OFFFSET__) << 2UL))))
158#if defined(USE_FULL_LL_DRIVER)
168 uint32_t TriggerSource;
176 uint32_t WaveAutoGeneration;
182 uint32_t WaveAutoGenerationConfig;
195 uint32_t OutputBuffer;
217#define LL_DAC_FLAG_DMAUDR1 (DAC_SR_DMAUDR1)
218#if defined(DAC_CHANNEL2_SUPPORT)
220#define LL_DAC_FLAG_DMAUDR2 (DAC_SR_DMAUDR2)
230#define LL_DAC_IT_DMAUDRIE1 (DAC_CR_DMAUDRIE1)
231#if defined(DAC_CHANNEL2_SUPPORT)
232#define LL_DAC_IT_DMAUDRIE2 (DAC_CR_DMAUDRIE2)
241#define LL_DAC_CHANNEL_1 (DAC_REG_DOR1_REGOFFSET | DAC_REG_DHR12R1_REGOFFSET | DAC_REG_DHR12L1_REGOFFSET | DAC_REG_DHR8R1_REGOFFSET | DAC_CR_CH1_BITOFFSET | DAC_SWTR_CH1)
242#if defined(DAC_CHANNEL2_SUPPORT)
243#define LL_DAC_CHANNEL_2 (DAC_REG_DOR2_REGOFFSET | DAC_REG_DHR12R2_REGOFFSET | DAC_REG_DHR12L2_REGOFFSET | DAC_REG_DHR8R2_REGOFFSET | DAC_CR_CH2_BITOFFSET | DAC_SWTR_CH2)
252#define LL_DAC_TRIG_SOFTWARE (DAC_CR_TSEL1_2 | DAC_CR_TSEL1_1 | DAC_CR_TSEL1_0)
253#define LL_DAC_TRIG_EXT_TIM2_TRGO (DAC_CR_TSEL1_2 )
254#define LL_DAC_TRIG_EXT_TIM8_TRGO ( DAC_CR_TSEL1_0)
255#define LL_DAC_TRIG_EXT_TIM4_TRGO (DAC_CR_TSEL1_2 | DAC_CR_TSEL1_0)
256#define LL_DAC_TRIG_EXT_TIM6_TRGO 0x00000000UL
257#define LL_DAC_TRIG_EXT_TIM7_TRGO ( DAC_CR_TSEL1_1 )
258#define LL_DAC_TRIG_EXT_TIM5_TRGO ( DAC_CR_TSEL1_1 | DAC_CR_TSEL1_0)
259#define LL_DAC_TRIG_EXT_EXTI_LINE9 (DAC_CR_TSEL1_2 | DAC_CR_TSEL1_1 )
267#define LL_DAC_WAVE_AUTO_GENERATION_NONE 0x00000000UL
268#define LL_DAC_WAVE_AUTO_GENERATION_NOISE ( DAC_CR_WAVE1_0)
269#define LL_DAC_WAVE_AUTO_GENERATION_TRIANGLE (DAC_CR_WAVE1_1 )
277#define LL_DAC_NOISE_LFSR_UNMASK_BIT0 0x00000000UL
278#define LL_DAC_NOISE_LFSR_UNMASK_BITS1_0 ( DAC_CR_MAMP1_0)
279#define LL_DAC_NOISE_LFSR_UNMASK_BITS2_0 ( DAC_CR_MAMP1_1 )
280#define LL_DAC_NOISE_LFSR_UNMASK_BITS3_0 ( DAC_CR_MAMP1_1 | DAC_CR_MAMP1_0)
281#define LL_DAC_NOISE_LFSR_UNMASK_BITS4_0 ( DAC_CR_MAMP1_2 )
282#define LL_DAC_NOISE_LFSR_UNMASK_BITS5_0 ( DAC_CR_MAMP1_2 | DAC_CR_MAMP1_0)
283#define LL_DAC_NOISE_LFSR_UNMASK_BITS6_0 ( DAC_CR_MAMP1_2 | DAC_CR_MAMP1_1 )
284#define LL_DAC_NOISE_LFSR_UNMASK_BITS7_0 ( DAC_CR_MAMP1_2 | DAC_CR_MAMP1_1 | DAC_CR_MAMP1_0)
285#define LL_DAC_NOISE_LFSR_UNMASK_BITS8_0 (DAC_CR_MAMP1_3 )
286#define LL_DAC_NOISE_LFSR_UNMASK_BITS9_0 (DAC_CR_MAMP1_3 | DAC_CR_MAMP1_0)
287#define LL_DAC_NOISE_LFSR_UNMASK_BITS10_0 (DAC_CR_MAMP1_3 | DAC_CR_MAMP1_1 )
288#define LL_DAC_NOISE_LFSR_UNMASK_BITS11_0 (DAC_CR_MAMP1_3 | DAC_CR_MAMP1_1 | DAC_CR_MAMP1_0)
296#define LL_DAC_TRIANGLE_AMPLITUDE_1 0x00000000UL
297#define LL_DAC_TRIANGLE_AMPLITUDE_3 ( DAC_CR_MAMP1_0)
298#define LL_DAC_TRIANGLE_AMPLITUDE_7 ( DAC_CR_MAMP1_1 )
299#define LL_DAC_TRIANGLE_AMPLITUDE_15 ( DAC_CR_MAMP1_1 | DAC_CR_MAMP1_0)
300#define LL_DAC_TRIANGLE_AMPLITUDE_31 ( DAC_CR_MAMP1_2 )
301#define LL_DAC_TRIANGLE_AMPLITUDE_63 ( DAC_CR_MAMP1_2 | DAC_CR_MAMP1_0)
302#define LL_DAC_TRIANGLE_AMPLITUDE_127 ( DAC_CR_MAMP1_2 | DAC_CR_MAMP1_1 )
303#define LL_DAC_TRIANGLE_AMPLITUDE_255 ( DAC_CR_MAMP1_2 | DAC_CR_MAMP1_1 | DAC_CR_MAMP1_0)
304#define LL_DAC_TRIANGLE_AMPLITUDE_511 (DAC_CR_MAMP1_3 )
305#define LL_DAC_TRIANGLE_AMPLITUDE_1023 (DAC_CR_MAMP1_3 | DAC_CR_MAMP1_0)
306#define LL_DAC_TRIANGLE_AMPLITUDE_2047 (DAC_CR_MAMP1_3 | DAC_CR_MAMP1_1 )
307#define LL_DAC_TRIANGLE_AMPLITUDE_4095 (DAC_CR_MAMP1_3 | DAC_CR_MAMP1_1 | DAC_CR_MAMP1_0)
315#define LL_DAC_OUTPUT_BUFFER_ENABLE 0x00000000UL
316#define LL_DAC_OUTPUT_BUFFER_DISABLE (DAC_CR_BOFF1)
324#define LL_DAC_RESOLUTION_12B 0x00000000UL
325#define LL_DAC_RESOLUTION_8B 0x00000002UL
336#define LL_DAC_DMA_REG_DATA_12BITS_RIGHT_ALIGNED DAC_REG_DHR12RX_REGOFFSET_BITOFFSET_POS
337#define LL_DAC_DMA_REG_DATA_12BITS_LEFT_ALIGNED DAC_REG_DHR12LX_REGOFFSET_BITOFFSET_POS
338#define LL_DAC_DMA_REG_DATA_8BITS_RIGHT_ALIGNED DAC_REG_DHR8RX_REGOFFSET_BITOFFSET_POS
363#define LL_DAC_DELAY_STARTUP_VOLTAGE_SETTLING_US 15UL
376#define LL_DAC_DELAY_VOLTAGE_SETTLING_US 12UL
402#define LL_DAC_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE__))
410#define LL_DAC_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__)
436#define __LL_DAC_CHANNEL_TO_DECIMAL_NB(__CHANNEL__) \
437 ((__CHANNEL__) & DAC_SWTR_CHX_MASK)
455#if defined(DAC_CHANNEL2_SUPPORT)
456#define __LL_DAC_DECIMAL_NB_TO_CHANNEL(__DECIMAL_NB__) \
457 (((__DECIMAL_NB__) == 1UL) \
458 ? (LL_DAC_CHANNEL_1) \
460 (((__DECIMAL_NB__) == 2UL) \
461 ? (LL_DAC_CHANNEL_2) \
467#define __LL_DAC_DECIMAL_NB_TO_CHANNEL(__DECIMAL_NB__) \
468 (((__DECIMAL_NB__) == 1UL) \
469 ? (LL_DAC_CHANNEL_1) \
486#define __LL_DAC_DIGITAL_SCALE(__DAC_RESOLUTION__) \
487 ((0x00000FFFUL) >> ((__DAC_RESOLUTION__) << 1UL))
507#define __LL_DAC_CALC_VOLTAGE_TO_DATA(__VREFANALOG_VOLTAGE__, __DAC_VOLTAGE__, __DAC_RESOLUTION__) \
508 ((__DAC_VOLTAGE__) * __LL_DAC_DIGITAL_SCALE(__DAC_RESOLUTION__) \
509 / (__VREFANALOG_VOLTAGE__) \
554__STATIC_INLINE
void LL_DAC_SetTriggerSource(DAC_TypeDef *DACx, uint32_t DAC_Channel, uint32_t TriggerSource)
557 DAC_CR_TSEL1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK),
558 TriggerSource << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK));
586__STATIC_INLINE uint32_t LL_DAC_GetTriggerSource(
const DAC_TypeDef *DACx, uint32_t DAC_Channel)
588 return (uint32_t)(READ_BIT(DACx->CR, DAC_CR_TSEL1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK))
589 >> (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK)
611__STATIC_INLINE
void LL_DAC_SetWaveAutoGeneration(DAC_TypeDef *DACx, uint32_t DAC_Channel, uint32_t WaveAutoGeneration)
614 DAC_CR_WAVE1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK),
615 WaveAutoGeneration << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK));
635__STATIC_INLINE uint32_t LL_DAC_GetWaveAutoGeneration(
const DAC_TypeDef *DACx, uint32_t DAC_Channel)
637 return (uint32_t)(READ_BIT(DACx->CR, DAC_CR_WAVE1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK))
638 >> (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK)
674__STATIC_INLINE
void LL_DAC_SetWaveNoiseLFSR(DAC_TypeDef *DACx, uint32_t DAC_Channel, uint32_t NoiseLFSRMask)
677 DAC_CR_MAMP1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK),
678 NoiseLFSRMask << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK));
707__STATIC_INLINE uint32_t LL_DAC_GetWaveNoiseLFSR(
const DAC_TypeDef *DACx, uint32_t DAC_Channel)
709 return (uint32_t)(READ_BIT(DACx->CR, DAC_CR_MAMP1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK))
710 >> (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK)
746__STATIC_INLINE
void LL_DAC_SetWaveTriangleAmplitude(DAC_TypeDef *DACx, uint32_t DAC_Channel,
747 uint32_t TriangleAmplitude)
750 DAC_CR_MAMP1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK),
751 TriangleAmplitude << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK));
780__STATIC_INLINE uint32_t LL_DAC_GetWaveTriangleAmplitude(
const DAC_TypeDef *DACx, uint32_t DAC_Channel)
782 return (uint32_t)(READ_BIT(DACx->CR, DAC_CR_MAMP1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK))
783 >> (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK)
803__STATIC_INLINE
void LL_DAC_SetOutputBuffer(DAC_TypeDef *DACx, uint32_t DAC_Channel, uint32_t OutputBuffer)
806 DAC_CR_BOFF1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK),
807 OutputBuffer << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK));
825__STATIC_INLINE uint32_t LL_DAC_GetOutputBuffer(
const DAC_TypeDef *DACx, uint32_t DAC_Channel)
827 return (uint32_t)(READ_BIT(DACx->CR, DAC_CR_BOFF1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK))
828 >> (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK)
855__STATIC_INLINE
void LL_DAC_EnableDMAReq(DAC_TypeDef *DACx, uint32_t DAC_Channel)
858 DAC_CR_DMAEN1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK));
876__STATIC_INLINE
void LL_DAC_DisableDMAReq(DAC_TypeDef *DACx, uint32_t DAC_Channel)
879 DAC_CR_DMAEN1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK));
896__STATIC_INLINE uint32_t LL_DAC_IsDMAReqEnabled(
const DAC_TypeDef *DACx, uint32_t DAC_Channel)
898 return ((READ_BIT(DACx->CR,
899 DAC_CR_DMAEN1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK))
900 == (DAC_CR_DMAEN1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK))) ? 1UL : 0UL);
938__STATIC_INLINE uint32_t LL_DAC_DMA_GetRegAddr(
const DAC_TypeDef *DACx, uint32_t DAC_Channel, uint32_t Register)
942 return ((uint32_t)(__DAC_PTR_REG_OFFSET((DACx)->DHR12R1, ((DAC_Channel >> (Register & 0x1FUL))
943 & DAC_REG_DHR_REGOFFSET_MASK_POSBIT0))));
969__STATIC_INLINE
void LL_DAC_Enable(DAC_TypeDef *DACx, uint32_t DAC_Channel)
972 DAC_CR_EN1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK));
988__STATIC_INLINE
void LL_DAC_Disable(DAC_TypeDef *DACx, uint32_t DAC_Channel)
991 DAC_CR_EN1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK));
1008__STATIC_INLINE uint32_t LL_DAC_IsEnabled(
const DAC_TypeDef *DACx, uint32_t DAC_Channel)
1010 return ((READ_BIT(DACx->CR,
1011 DAC_CR_EN1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK))
1012 == (DAC_CR_EN1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK))) ? 1UL : 0UL);
1036__STATIC_INLINE
void LL_DAC_EnableTrigger(DAC_TypeDef *DACx, uint32_t DAC_Channel)
1039 DAC_CR_TEN1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK));
1055__STATIC_INLINE
void LL_DAC_DisableTrigger(DAC_TypeDef *DACx, uint32_t DAC_Channel)
1058 DAC_CR_TEN1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK));
1075__STATIC_INLINE uint32_t LL_DAC_IsTriggerEnabled(
const DAC_TypeDef *DACx, uint32_t DAC_Channel)
1077 return ((READ_BIT(DACx->CR,
1078 DAC_CR_TEN1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK))
1079 == (DAC_CR_TEN1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK))) ? 1UL : 0UL);
1106__STATIC_INLINE
void LL_DAC_TrigSWConversion(DAC_TypeDef *DACx, uint32_t DAC_Channel)
1108 SET_BIT(DACx->SWTRIGR,
1109 (DAC_Channel & DAC_SWTR_CHX_MASK));
1128__STATIC_INLINE
void LL_DAC_ConvertData12RightAligned(DAC_TypeDef *DACx, uint32_t DAC_Channel, uint32_t Data)
1130 __IO uint32_t *preg = __DAC_PTR_REG_OFFSET(DACx->DHR12R1, (DAC_Channel >> DAC_REG_DHR12RX_REGOFFSET_BITOFFSET_POS)
1131 & DAC_REG_DHR_REGOFFSET_MASK_POSBIT0);
1133 MODIFY_REG(*preg, DAC_DHR12R1_DACC1DHR, Data);
1152__STATIC_INLINE
void LL_DAC_ConvertData12LeftAligned(DAC_TypeDef *DACx, uint32_t DAC_Channel, uint32_t Data)
1154 __IO uint32_t *preg = __DAC_PTR_REG_OFFSET(DACx->DHR12R1, (DAC_Channel >> DAC_REG_DHR12LX_REGOFFSET_BITOFFSET_POS)
1155 & DAC_REG_DHR_REGOFFSET_MASK_POSBIT0);
1157 MODIFY_REG(*preg, DAC_DHR12L1_DACC1DHR, Data);
1176__STATIC_INLINE
void LL_DAC_ConvertData8RightAligned(DAC_TypeDef *DACx, uint32_t DAC_Channel, uint32_t Data)
1178 __IO uint32_t *preg = __DAC_PTR_REG_OFFSET(DACx->DHR12R1, (DAC_Channel >> DAC_REG_DHR8RX_REGOFFSET_BITOFFSET_POS)
1179 & DAC_REG_DHR_REGOFFSET_MASK_POSBIT0);
1181 MODIFY_REG(*preg, DAC_DHR8R1_DACC1DHR, Data);
1184#if defined(DAC_CHANNEL2_SUPPORT)
1196__STATIC_INLINE
void LL_DAC_ConvertDualData12RightAligned(DAC_TypeDef *DACx, uint32_t DataChannel1,
1197 uint32_t DataChannel2)
1199 MODIFY_REG(DACx->DHR12RD,
1200 (DAC_DHR12RD_DACC2DHR | DAC_DHR12RD_DACC1DHR),
1201 ((DataChannel2 << DAC_DHR12RD_DACC2DHR_BITOFFSET_POS) | DataChannel1));
1215__STATIC_INLINE
void LL_DAC_ConvertDualData12LeftAligned(DAC_TypeDef *DACx, uint32_t DataChannel1,
1216 uint32_t DataChannel2)
1221 MODIFY_REG(DACx->DHR12LD,
1222 (DAC_DHR12LD_DACC2DHR | DAC_DHR12LD_DACC1DHR),
1223 ((DataChannel2 << (DAC_DHR12LD_DACC2DHR_BITOFFSET_POS - 4U)) | DataChannel1));
1237__STATIC_INLINE
void LL_DAC_ConvertDualData8RightAligned(DAC_TypeDef *DACx, uint32_t DataChannel1,
1238 uint32_t DataChannel2)
1240 MODIFY_REG(DACx->DHR8RD,
1241 (DAC_DHR8RD_DACC2DHR | DAC_DHR8RD_DACC1DHR),
1242 ((DataChannel2 << DAC_DHR8RD_DACC2DHR_BITOFFSET_POS) | DataChannel1));
1263__STATIC_INLINE uint32_t LL_DAC_RetrieveOutputData(
const DAC_TypeDef *DACx, uint32_t DAC_Channel)
1265 __IO uint32_t
const *preg = __DAC_PTR_REG_OFFSET(DACx->DOR1, (DAC_Channel >> DAC_REG_DORX_REGOFFSET_BITOFFSET_POS)
1266 & DAC_REG_DORX_REGOFFSET_MASK_POSBIT0);
1268 return (uint16_t) READ_BIT(*preg, DAC_DOR1_DACC1DOR);
1285__STATIC_INLINE uint32_t LL_DAC_IsActiveFlag_DMAUDR1(
const DAC_TypeDef *DACx)
1287 return ((READ_BIT(DACx->SR, LL_DAC_FLAG_DMAUDR1) == (LL_DAC_FLAG_DMAUDR1)) ? 1UL : 0UL);
1290#if defined(DAC_CHANNEL2_SUPPORT)
1297__STATIC_INLINE uint32_t LL_DAC_IsActiveFlag_DMAUDR2(
const DAC_TypeDef *DACx)
1299 return ((READ_BIT(DACx->SR, LL_DAC_FLAG_DMAUDR2) == (LL_DAC_FLAG_DMAUDR2)) ? 1UL : 0UL);
1309__STATIC_INLINE
void LL_DAC_ClearFlag_DMAUDR1(DAC_TypeDef *DACx)
1311 WRITE_REG(DACx->SR, LL_DAC_FLAG_DMAUDR1);
1314#if defined(DAC_CHANNEL2_SUPPORT)
1321__STATIC_INLINE
void LL_DAC_ClearFlag_DMAUDR2(DAC_TypeDef *DACx)
1323 WRITE_REG(DACx->SR, LL_DAC_FLAG_DMAUDR2);
1341__STATIC_INLINE
void LL_DAC_EnableIT_DMAUDR1(DAC_TypeDef *DACx)
1343 SET_BIT(DACx->CR, LL_DAC_IT_DMAUDRIE1);
1346#if defined(DAC_CHANNEL2_SUPPORT)
1353__STATIC_INLINE
void LL_DAC_EnableIT_DMAUDR2(DAC_TypeDef *DACx)
1355 SET_BIT(DACx->CR, LL_DAC_IT_DMAUDRIE2);
1365__STATIC_INLINE
void LL_DAC_DisableIT_DMAUDR1(DAC_TypeDef *DACx)
1367 CLEAR_BIT(DACx->CR, LL_DAC_IT_DMAUDRIE1);
1370#if defined(DAC_CHANNEL2_SUPPORT)
1377__STATIC_INLINE
void LL_DAC_DisableIT_DMAUDR2(DAC_TypeDef *DACx)
1379 CLEAR_BIT(DACx->CR, LL_DAC_IT_DMAUDRIE2);
1389__STATIC_INLINE uint32_t LL_DAC_IsEnabledIT_DMAUDR1(
const DAC_TypeDef *DACx)
1391 return ((READ_BIT(DACx->CR, LL_DAC_IT_DMAUDRIE1) == (LL_DAC_IT_DMAUDRIE1)) ? 1UL : 0UL);
1394#if defined(DAC_CHANNEL2_SUPPORT)
1401__STATIC_INLINE uint32_t LL_DAC_IsEnabledIT_DMAUDR2(
const DAC_TypeDef *DACx)
1403 return ((READ_BIT(DACx->CR, LL_DAC_IT_DMAUDRIE2) == (LL_DAC_IT_DMAUDRIE2)) ? 1UL : 0UL);
1411#if defined(USE_FULL_LL_DRIVER)
1416ErrorStatus LL_DAC_DeInit(
const DAC_TypeDef *DACx);
1417ErrorStatus LL_DAC_Init(DAC_TypeDef *DACx, uint32_t DAC_Channel,
const LL_DAC_InitTypeDef *DAC_InitStruct);
1418void LL_DAC_StructInit(LL_DAC_InitTypeDef *DAC_InitStruct);