21 #ifndef STM32L4xx_LL_DAC_H 22 #define STM32L4xx_LL_DAC_H 29 #include "stm32l4xx.h" 56 #define DAC_CR_CH1_BITOFFSET 0U 57 #define DAC_CR_CH2_BITOFFSET 16U 58 #define DAC_CR_CHX_BITOFFSET_MASK (DAC_CR_CH1_BITOFFSET | DAC_CR_CH2_BITOFFSET) 60 #define DAC_SWTR_CH1 (DAC_SWTRIGR_SWTRIG1) 61 #if defined(DAC_CHANNEL2_SUPPORT) 62 #define DAC_SWTR_CH2 (DAC_SWTRIGR_SWTRIG2) 63 #define DAC_SWTR_CHX_MASK (DAC_SWTR_CH1 | DAC_SWTR_CH2) 65 #define DAC_SWTR_CHX_MASK (DAC_SWTR_CH1) 68 #define DAC_REG_DHR12R1_REGOFFSET 0x00000000U 69 #define DAC_REG_DHR12L1_REGOFFSET 0x00100000U 70 #define DAC_REG_DHR8R1_REGOFFSET 0x02000000U 71 #if defined(DAC_CHANNEL2_SUPPORT) 72 #define DAC_REG_DHR12R2_REGOFFSET 0x30000000U 73 #define DAC_REG_DHR12L2_REGOFFSET 0x00400000U 74 #define DAC_REG_DHR8R2_REGOFFSET 0x05000000U 76 #define DAC_REG_DHR12RX_REGOFFSET_MASK 0xF0000000U 77 #define DAC_REG_DHR12LX_REGOFFSET_MASK 0x00F00000U 78 #define DAC_REG_DHR8RX_REGOFFSET_MASK 0x0F000000U 79 #define DAC_REG_DHRX_REGOFFSET_MASK (DAC_REG_DHR12RX_REGOFFSET_MASK | DAC_REG_DHR12LX_REGOFFSET_MASK | DAC_REG_DHR8RX_REGOFFSET_MASK) 81 #define DAC_REG_DOR1_REGOFFSET 0x00000000U 82 #if defined(DAC_CHANNEL2_SUPPORT) 83 #define DAC_REG_DOR2_REGOFFSET 0x00000020U 84 #define DAC_REG_DORX_REGOFFSET_MASK (DAC_REG_DOR1_REGOFFSET | DAC_REG_DOR2_REGOFFSET) 86 #define DAC_REG_DORX_REGOFFSET_MASK (DAC_REG_DOR1_REGOFFSET) 89 #define DAC_REG_SHSR1_REGOFFSET 0x00000000U 90 #if defined(DAC_CHANNEL2_SUPPORT) 91 #define DAC_REG_SHSR2_REGOFFSET 0x00000040U 92 #define DAC_REG_SHSRX_REGOFFSET_MASK (DAC_REG_SHSR1_REGOFFSET | DAC_REG_SHSR2_REGOFFSET) 94 #define DAC_REG_SHSRX_REGOFFSET_MASK (DAC_REG_SHSR1_REGOFFSET) 97 #define DAC_REG_DHR_REGOFFSET_MASK_POSBIT0 0x0000000FU 98 #define DAC_REG_DORX_REGOFFSET_MASK_POSBIT0 0x00000001U 99 #define DAC_REG_SHSRX_REGOFFSET_MASK_POSBIT0 0x00000001U 101 #define DAC_REG_DHR12RX_REGOFFSET_BITOFFSET_POS 28U 102 #define DAC_REG_DHR12LX_REGOFFSET_BITOFFSET_POS 20U 103 #define DAC_REG_DHR8RX_REGOFFSET_BITOFFSET_POS 24U 104 #define DAC_REG_DORX_REGOFFSET_BITOFFSET_POS 5U 105 #define DAC_REG_SHSRX_REGOFFSET_BITOFFSET_POS 6U 108 #if defined(DAC_CHANNEL2_SUPPORT) 109 #define DAC_DHR12RD_DACC2DHR_BITOFFSET_POS DAC_DHR12RD_DACC2DHR_Pos 110 #define DAC_DHR12LD_DACC2DHR_BITOFFSET_POS DAC_DHR12LD_DACC2DHR_Pos 111 #define DAC_DHR8RD_DACC2DHR_BITOFFSET_POS DAC_DHR8RD_DACC2DHR_Pos 115 #define DAC_DIGITAL_SCALE_12BITS 4095U 135 #define __DAC_PTR_REG_OFFSET(__REG__, __REG_OFFFSET__) \ 136 ((uint32_t *)((uint32_t) ((uint32_t)(&(__REG__)) + ((__REG_OFFFSET__) << 2U)))) 144 #if defined(USE_FULL_LL_DRIVER) 203 #define LL_DAC_FLAG_DMAUDR1 (DAC_SR_DMAUDR1) 204 #define LL_DAC_FLAG_CAL1 (DAC_SR_CAL_FLAG1) 205 #define LL_DAC_FLAG_BWST1 (DAC_SR_BWST1) 207 #if defined(DAC_CHANNEL2_SUPPORT) 209 #define LL_DAC_FLAG_DMAUDR2 (DAC_SR_DMAUDR2) 210 #define LL_DAC_FLAG_CAL2 (DAC_SR_CAL_FLAG2) 211 #define LL_DAC_FLAG_BWST2 (DAC_SR_BWST2) 221 #define LL_DAC_IT_DMAUDRIE1 (DAC_CR_DMAUDRIE1) 222 #if defined(DAC_CHANNEL2_SUPPORT) 223 #define LL_DAC_IT_DMAUDRIE2 (DAC_CR_DMAUDRIE2) 232 #define LL_DAC_CHANNEL_1 (DAC_REG_SHSR1_REGOFFSET | DAC_REG_DOR1_REGOFFSET | DAC_REG_DHR12R1_REGOFFSET | DAC_REG_DHR12L1_REGOFFSET | DAC_REG_DHR8R1_REGOFFSET | DAC_CR_CH1_BITOFFSET | DAC_SWTR_CH1) 233 #if defined(DAC_CHANNEL2_SUPPORT) 234 #define LL_DAC_CHANNEL_2 (DAC_REG_SHSR2_REGOFFSET | DAC_REG_DOR2_REGOFFSET | DAC_REG_DHR12R2_REGOFFSET | DAC_REG_DHR12L2_REGOFFSET | DAC_REG_DHR8R2_REGOFFSET | DAC_CR_CH2_BITOFFSET | DAC_SWTR_CH2) 239 #if defined (DAC_CR_HFSEL) 245 #define LL_DAC_HIGH_FREQ_MODE_DISABLE 0x00000000U 246 #define LL_DAC_HIGH_FREQ_MODE_ABOVE_80MHZ (DAC_CR_HFSEL) 255 #define LL_DAC_MODE_NORMAL_OPERATION 0x00000000U 256 #define LL_DAC_MODE_CALIBRATION (DAC_CR_CEN1) 264 #if defined (DAC_CR_TSEL1_3) 265 #define LL_DAC_TRIG_EXT_TIM1_TRGO ( DAC_CR_TSEL1_0) 266 #define LL_DAC_TRIG_EXT_TIM2_TRGO ( DAC_CR_TSEL1_1 ) 267 #define LL_DAC_TRIG_EXT_TIM4_TRGO ( DAC_CR_TSEL1_1 | DAC_CR_TSEL1_0) 268 #define LL_DAC_TRIG_EXT_TIM5_TRGO ( DAC_CR_TSEL1_2 ) 269 #define LL_DAC_TRIG_EXT_TIM6_TRGO ( DAC_CR_TSEL1_2 | DAC_CR_TSEL1_0) 270 #define LL_DAC_TRIG_EXT_TIM7_TRGO ( DAC_CR_TSEL1_2 | DAC_CR_TSEL1_1 ) 271 #define LL_DAC_TRIG_EXT_TIM8_TRGO ( DAC_CR_TSEL1_2 | DAC_CR_TSEL1_1 | DAC_CR_TSEL1_0) 272 #define LL_DAC_TRIG_EXT_TIM15_TRGO (DAC_CR_TSEL1_3 ) 273 #define LL_DAC_TRIG_EXT_LPTIM1_OUT (DAC_CR_TSEL1_3 | DAC_CR_TSEL1_1 | DAC_CR_TSEL1_0) 274 #define LL_DAC_TRIG_EXT_LPTIM2_OUT (DAC_CR_TSEL1_3 | DAC_CR_TSEL1_2 ) 275 #define LL_DAC_TRIG_EXT_EXTI_LINE9 (DAC_CR_TSEL1_3 | DAC_CR_TSEL1_2 | DAC_CR_TSEL1_0) 276 #define LL_DAC_TRIG_SOFTWARE 0x00000000U 278 #define LL_DAC_TRIG_SOFTWARE (DAC_CR_TSEL1_2 | DAC_CR_TSEL1_1 | DAC_CR_TSEL1_0) 279 #define LL_DAC_TRIG_EXT_TIM2_TRGO (DAC_CR_TSEL1_2 ) 280 #define LL_DAC_TRIG_EXT_TIM4_TRGO (DAC_CR_TSEL1_2 | DAC_CR_TSEL1_0) 281 #define LL_DAC_TRIG_EXT_TIM5_TRGO ( DAC_CR_TSEL1_1 | DAC_CR_TSEL1_0) 282 #define LL_DAC_TRIG_EXT_TIM6_TRGO 0x00000000U 283 #define LL_DAC_TRIG_EXT_TIM7_TRGO ( DAC_CR_TSEL1_1 ) 284 #define LL_DAC_TRIG_EXT_TIM8_TRGO ( DAC_CR_TSEL1_0) 285 #define LL_DAC_TRIG_EXT_EXTI_LINE9 (DAC_CR_TSEL1_2 | DAC_CR_TSEL1_1 ) 295 #define LL_DAC_WAVE_AUTO_GENERATION_NONE 0x00000000U 296 #define LL_DAC_WAVE_AUTO_GENERATION_NOISE ( DAC_CR_WAVE1_0) 297 #define LL_DAC_WAVE_AUTO_GENERATION_TRIANGLE (DAC_CR_WAVE1_1 ) 305 #define LL_DAC_NOISE_LFSR_UNMASK_BIT0 0x00000000U 306 #define LL_DAC_NOISE_LFSR_UNMASK_BITS1_0 ( DAC_CR_MAMP1_0) 307 #define LL_DAC_NOISE_LFSR_UNMASK_BITS2_0 ( DAC_CR_MAMP1_1 ) 308 #define LL_DAC_NOISE_LFSR_UNMASK_BITS3_0 ( DAC_CR_MAMP1_1 | DAC_CR_MAMP1_0) 309 #define LL_DAC_NOISE_LFSR_UNMASK_BITS4_0 ( DAC_CR_MAMP1_2 ) 310 #define LL_DAC_NOISE_LFSR_UNMASK_BITS5_0 ( DAC_CR_MAMP1_2 | DAC_CR_MAMP1_0) 311 #define LL_DAC_NOISE_LFSR_UNMASK_BITS6_0 ( DAC_CR_MAMP1_2 | DAC_CR_MAMP1_1 ) 312 #define LL_DAC_NOISE_LFSR_UNMASK_BITS7_0 ( DAC_CR_MAMP1_2 | DAC_CR_MAMP1_1 | DAC_CR_MAMP1_0) 313 #define LL_DAC_NOISE_LFSR_UNMASK_BITS8_0 (DAC_CR_MAMP1_3 ) 314 #define LL_DAC_NOISE_LFSR_UNMASK_BITS9_0 (DAC_CR_MAMP1_3 | DAC_CR_MAMP1_0) 315 #define LL_DAC_NOISE_LFSR_UNMASK_BITS10_0 (DAC_CR_MAMP1_3 | DAC_CR_MAMP1_1 ) 316 #define LL_DAC_NOISE_LFSR_UNMASK_BITS11_0 (DAC_CR_MAMP1_3 | DAC_CR_MAMP1_1 | DAC_CR_MAMP1_0) 324 #define LL_DAC_TRIANGLE_AMPLITUDE_1 0x00000000U 325 #define LL_DAC_TRIANGLE_AMPLITUDE_3 ( DAC_CR_MAMP1_0) 326 #define LL_DAC_TRIANGLE_AMPLITUDE_7 ( DAC_CR_MAMP1_1 ) 327 #define LL_DAC_TRIANGLE_AMPLITUDE_15 ( DAC_CR_MAMP1_1 | DAC_CR_MAMP1_0) 328 #define LL_DAC_TRIANGLE_AMPLITUDE_31 ( DAC_CR_MAMP1_2 ) 329 #define LL_DAC_TRIANGLE_AMPLITUDE_63 ( DAC_CR_MAMP1_2 | DAC_CR_MAMP1_0) 330 #define LL_DAC_TRIANGLE_AMPLITUDE_127 ( DAC_CR_MAMP1_2 | DAC_CR_MAMP1_1 ) 331 #define LL_DAC_TRIANGLE_AMPLITUDE_255 ( DAC_CR_MAMP1_2 | DAC_CR_MAMP1_1 | DAC_CR_MAMP1_0) 332 #define LL_DAC_TRIANGLE_AMPLITUDE_511 (DAC_CR_MAMP1_3 ) 333 #define LL_DAC_TRIANGLE_AMPLITUDE_1023 (DAC_CR_MAMP1_3 | DAC_CR_MAMP1_0) 334 #define LL_DAC_TRIANGLE_AMPLITUDE_2047 (DAC_CR_MAMP1_3 | DAC_CR_MAMP1_1 ) 335 #define LL_DAC_TRIANGLE_AMPLITUDE_4095 (DAC_CR_MAMP1_3 | DAC_CR_MAMP1_1 | DAC_CR_MAMP1_0) 343 #define LL_DAC_OUTPUT_MODE_NORMAL 0x00000000U 344 #define LL_DAC_OUTPUT_MODE_SAMPLE_AND_HOLD (DAC_MCR_MODE1_2) 352 #define LL_DAC_OUTPUT_BUFFER_ENABLE 0x00000000U 353 #define LL_DAC_OUTPUT_BUFFER_DISABLE (DAC_MCR_MODE1_1) 361 #define LL_DAC_OUTPUT_CONNECT_GPIO 0x00000000U 362 #define LL_DAC_OUTPUT_CONNECT_INTERNAL (DAC_MCR_MODE1_0) 370 #define LL_DAC_RESOLUTION_12B 0x00000000U 371 #define LL_DAC_RESOLUTION_8B 0x00000002U 382 #define LL_DAC_DMA_REG_DATA_12BITS_RIGHT_ALIGNED DAC_REG_DHR12RX_REGOFFSET_BITOFFSET_POS 383 #define LL_DAC_DMA_REG_DATA_12BITS_LEFT_ALIGNED DAC_REG_DHR12LX_REGOFFSET_BITOFFSET_POS 384 #define LL_DAC_DMA_REG_DATA_8BITS_RIGHT_ALIGNED DAC_REG_DHR8RX_REGOFFSET_BITOFFSET_POS 409 #define LL_DAC_DELAY_STARTUP_VOLTAGE_SETTLING_US 8U 423 #define LL_DAC_DELAY_VOLTAGE_SETTLING_US 3U 449 #define LL_DAC_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE__)) 457 #define LL_DAC_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__) 480 #define __LL_DAC_CHANNEL_TO_DECIMAL_NB(__CHANNEL__) \ 481 ((__CHANNEL__) & DAC_SWTR_CHX_MASK) 496 #if defined(DAC_CHANNEL2_SUPPORT) 497 #define __LL_DAC_DECIMAL_NB_TO_CHANNEL(__DECIMAL_NB__) \ 498 (((__DECIMAL_NB__) == 1U) \ 503 (((__DECIMAL_NB__) == 2U) \ 514 #define __LL_DAC_DECIMAL_NB_TO_CHANNEL(__DECIMAL_NB__) \ 515 (((__DECIMAL_NB__) == 1U) \ 537 #define __LL_DAC_DIGITAL_SCALE(__DAC_RESOLUTION__) \ 538 ((0x00000FFFU) >> ((__DAC_RESOLUTION__) << 1U)) 558 #define __LL_DAC_CALC_VOLTAGE_TO_DATA(__VREFANALOG_VOLTAGE__,\ 560 __DAC_RESOLUTION__) \ 561 ((__DAC_VOLTAGE__) * __LL_DAC_DIGITAL_SCALE(__DAC_RESOLUTION__) \ 562 / (__VREFANALOG_VOLTAGE__) \ 579 #if defined (DAC_CR_HFSEL) 595 MODIFY_REG(DACx->CR, DAC_CR_HFSEL, HighFreqMode);
608 return (uint32_t)(READ_BIT(DACx->CR, DAC_CR_HFSEL));
634 __STATIC_INLINE
void LL_DAC_SetMode(DAC_TypeDef *DACx, uint32_t DAC_Channel, uint32_t ChannelMode)
637 DAC_CR_CEN1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK),
638 ChannelMode << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK));
656 return (uint32_t)(READ_BIT(DACx->CR, DAC_CR_CEN1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK))
657 >> (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK)
677 DAC_CCR_OTRIM1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK),
678 TrimmingValue << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK));
695 return (uint32_t)(READ_BIT(DACx->CCR, DAC_CCR_OTRIM1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK))
696 >> (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK)
732 DAC_CR_TSEL1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK),
733 TriggerSource << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK));
767 return (uint32_t)(READ_BIT(DACx->CR, DAC_CR_TSEL1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK))
768 >> (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK)
793 DAC_CR_WAVE1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK),
794 WaveAutoGeneration << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK));
816 return (uint32_t)(READ_BIT(DACx->CR, DAC_CR_WAVE1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK))
817 >> (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK)
856 DAC_CR_MAMP1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK),
857 NoiseLFSRMask << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK));
888 return (uint32_t)(READ_BIT(DACx->CR, DAC_CR_MAMP1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK))
889 >> (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK)
926 uint32_t TriangleAmplitude)
929 DAC_CR_MAMP1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK),
930 TriangleAmplitude << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK));
961 return (uint32_t)(READ_BIT(DACx->CR, DAC_CR_MAMP1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK))
962 >> (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK)
1014 uint32_t OutputBuffer, uint32_t OutputConnection)
1017 (DAC_MCR_MODE1_2 | DAC_MCR_MODE1_1 | DAC_MCR_MODE1_0) << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK),
1018 (OutputMode | OutputBuffer | OutputConnection) << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK));
1047 (uint32_t)DAC_MCR_MODE1_2 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK),
1048 OutputMode << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK));
1068 return (uint32_t)(READ_BIT(DACx->MCR, (uint32_t)DAC_MCR_MODE1_2 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK))
1069 >> (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK)
1096 (uint32_t)DAC_MCR_MODE1_1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK),
1097 OutputBuffer << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK));
1117 return (uint32_t)(READ_BIT(DACx->MCR, (uint32_t)DAC_MCR_MODE1_1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK))
1118 >> (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK)
1151 (uint32_t)DAC_MCR_MODE1_0 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK),
1152 OutputConnection << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK));
1182 return (uint32_t)(READ_BIT(DACx->MCR, (uint32_t)DAC_MCR_MODE1_0 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK))
1183 >> (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK)
1208 __IO uint32_t *preg = __DAC_PTR_REG_OFFSET(DACx->SHSR1, (DAC_Channel >> DAC_REG_SHSRX_REGOFFSET_BITOFFSET_POS) & DAC_REG_SHSRX_REGOFFSET_MASK_POSBIT0);
1231 __IO uint32_t
const *preg = __DAC_PTR_REG_OFFSET(DACx->SHSR1, (DAC_Channel >> DAC_REG_SHSRX_REGOFFSET_BITOFFSET_POS) & DAC_REG_SHSRX_REGOFFSET_MASK_POSBIT0);
1233 return (uint32_t) READ_BIT(*preg, DAC_SHSR1_TSAMPLE1);
1254 DAC_SHHR_THOLD1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK),
1255 HoldTime << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK));
1274 return (uint32_t)(READ_BIT(DACx->SHHR, DAC_SHHR_THOLD1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK))
1275 >> (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK)
1297 DAC_SHRR_TREFRESH1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK),
1298 RefreshTime << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK));
1317 return (uint32_t)(READ_BIT(DACx->SHRR, DAC_SHRR_TREFRESH1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK))
1318 >> (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK)
1348 DAC_CR_DMAEN1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK));
1369 DAC_CR_DMAEN1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK));
1388 return ((READ_BIT(DACx->CR,
1389 DAC_CR_DMAEN1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK))
1390 == (DAC_CR_DMAEN1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK))) ? 1UL : 0UL);
1431 return ((uint32_t)(__DAC_PTR_REG_OFFSET((DACx)->DHR12R1,
1432 ((DAC_Channel >> (Register & 0x1FUL)) & DAC_REG_DHR_REGOFFSET_MASK_POSBIT0))));
1461 DAC_CR_EN1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK));
1480 DAC_CR_EN1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK));
1499 return ((READ_BIT(DACx->CR,
1500 DAC_CR_EN1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK))
1501 == (DAC_CR_EN1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK))) ? 1UL : 0UL);
1528 DAC_CR_TEN1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK));
1547 DAC_CR_TEN1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK));
1566 return ((READ_BIT(DACx->CR,
1567 DAC_CR_TEN1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK))
1568 == (DAC_CR_TEN1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK))) ? 1UL : 0UL);
1597 SET_BIT(DACx->SWTRIGR,
1598 (DAC_Channel & DAC_SWTR_CHX_MASK));
1619 __IO uint32_t *preg = __DAC_PTR_REG_OFFSET(DACx->DHR12R1, (DAC_Channel >> DAC_REG_DHR12RX_REGOFFSET_BITOFFSET_POS) & DAC_REG_DHR_REGOFFSET_MASK_POSBIT0);
1622 DAC_DHR12R1_DACC1DHR,
1644 __IO uint32_t *preg = __DAC_PTR_REG_OFFSET(DACx->DHR12R1, (DAC_Channel >> DAC_REG_DHR12LX_REGOFFSET_BITOFFSET_POS) & DAC_REG_DHR_REGOFFSET_MASK_POSBIT0);
1647 DAC_DHR12L1_DACC1DHR,
1669 __IO uint32_t *preg = __DAC_PTR_REG_OFFSET(DACx->DHR12R1, (DAC_Channel >> DAC_REG_DHR8RX_REGOFFSET_BITOFFSET_POS) & DAC_REG_DHR_REGOFFSET_MASK_POSBIT0);
1672 DAC_DHR8R1_DACC1DHR,
1676 #if defined(DAC_CHANNEL2_SUPPORT) 1689 uint32_t DataChannel2)
1692 (DAC_DHR12RD_DACC2DHR | DAC_DHR12RD_DACC1DHR),
1693 ((DataChannel2 << DAC_DHR12RD_DACC2DHR_BITOFFSET_POS) | DataChannel1));
1713 (DAC_DHR12LD_DACC2DHR | DAC_DHR12LD_DACC1DHR),
1714 ((DataChannel2 << (DAC_DHR12LD_DACC2DHR_BITOFFSET_POS - 4U)) | DataChannel1));
1731 (DAC_DHR8RD_DACC2DHR | DAC_DHR8RD_DACC1DHR),
1732 ((DataChannel2 << DAC_DHR8RD_DACC2DHR_BITOFFSET_POS) | DataChannel1));
1755 __IO uint32_t
const *preg = __DAC_PTR_REG_OFFSET(DACx->DOR1, (DAC_Channel >> DAC_REG_DORX_REGOFFSET_BITOFFSET_POS) & DAC_REG_DORX_REGOFFSET_MASK_POSBIT0);
1757 return (uint16_t) READ_BIT(*preg, DAC_DOR1_DACC1DOR);
1775 return ((READ_BIT(DACx->SR, LL_DAC_FLAG_CAL1) == (LL_DAC_FLAG_CAL1)) ? 1UL : 0UL);
1778 #if defined(DAC_CHANNEL2_SUPPORT) 1787 return ((READ_BIT(DACx->SR, LL_DAC_FLAG_CAL2) == (LL_DAC_FLAG_CAL2)) ? 1UL : 0UL);
1799 return ((READ_BIT(DACx->SR, LL_DAC_FLAG_BWST1) == (LL_DAC_FLAG_BWST1)) ? 1UL : 0UL);
1802 #if defined(DAC_CHANNEL2_SUPPORT) 1811 return ((READ_BIT(DACx->SR, LL_DAC_FLAG_BWST2) == (LL_DAC_FLAG_BWST2)) ? 1UL : 0UL);
1823 return ((READ_BIT(DACx->SR, LL_DAC_FLAG_DMAUDR1) == (LL_DAC_FLAG_DMAUDR1)) ? 1UL : 0UL);
1826 #if defined(DAC_CHANNEL2_SUPPORT) 1835 return ((READ_BIT(DACx->SR, LL_DAC_FLAG_DMAUDR2) == (LL_DAC_FLAG_DMAUDR2)) ? 1UL : 0UL);
1847 WRITE_REG(DACx->SR, LL_DAC_FLAG_DMAUDR1);
1850 #if defined(DAC_CHANNEL2_SUPPORT) 1859 WRITE_REG(DACx->SR, LL_DAC_FLAG_DMAUDR2);
1879 SET_BIT(DACx->CR, LL_DAC_IT_DMAUDRIE1);
1882 #if defined(DAC_CHANNEL2_SUPPORT) 1891 SET_BIT(DACx->CR, LL_DAC_IT_DMAUDRIE2);
1903 CLEAR_BIT(DACx->CR, LL_DAC_IT_DMAUDRIE1);
1906 #if defined(DAC_CHANNEL2_SUPPORT) 1915 CLEAR_BIT(DACx->CR, LL_DAC_IT_DMAUDRIE2);
1927 return ((READ_BIT(DACx->CR, LL_DAC_IT_DMAUDRIE1) == (LL_DAC_IT_DMAUDRIE1)) ? 1UL : 0UL);
1930 #if defined(DAC_CHANNEL2_SUPPORT) 1939 return ((READ_BIT(DACx->CR, LL_DAC_IT_DMAUDRIE2) == (LL_DAC_IT_DMAUDRIE2)) ? 1UL : 0UL);
1947 #if defined(USE_FULL_LL_DRIVER) __STATIC_INLINE uint32_t LL_DAC_IsEnabledIT_DMAUDR2(DAC_TypeDef *DACx)
Get DMA underrun interrupt for DAC channel 2 CR DMAUDRIE2 LL_DAC_IsEnabledIT_DMAUDR2.
__STATIC_INLINE void LL_DAC_SetWaveNoiseLFSR(DAC_TypeDef *DACx, uint32_t DAC_Channel, uint32_t NoiseLFSRMask)
Set the noise waveform generation for the selected DAC channel: Noise mode and parameters LFSR (linea...
Structure definition of some features of DAC instance.
__STATIC_INLINE uint32_t LL_DAC_IsActiveFlag_DMAUDR2(DAC_TypeDef *DACx)
Get DAC underrun flag for DAC channel 2 SR DMAUDR2 LL_DAC_IsActiveFlag_DMAUDR2.
__STATIC_INLINE void LL_DAC_SetHighFrequencyMode(DAC_TypeDef *DACx, uint32_t HighFreqMode)
Set the high frequency interface mode for the selected DAC instance CR HFSEL LL_DAC_SetHighFrequency...
__STATIC_INLINE void LL_DAC_SetOutputMode(DAC_TypeDef *DACx, uint32_t DAC_Channel, uint32_t OutputMode)
Set the output mode normal or sample-and-hold for the selected DAC channel.
__STATIC_INLINE uint32_t LL_DAC_IsActiveFlag_BWST1(DAC_TypeDef *DACx)
Get DAC busy writing sample time flag for DAC channel 1 SR BWST1 LL_DAC_IsActiveFlag_BWST1.
__STATIC_INLINE void LL_DAC_SetTrimmingValue(DAC_TypeDef *DACx, uint32_t DAC_Channel, uint32_t TrimmingValue)
Set the offset trimming value for the selected DAC channel. Trimming has an impact when output buffer...
__STATIC_INLINE void LL_DAC_SetWaveAutoGeneration(DAC_TypeDef *DACx, uint32_t DAC_Channel, uint32_t WaveAutoGeneration)
Set the waveform automatic generation mode for the selected DAC channel. CR WAVE1 LL_DAC_SetWaveAuto...
__STATIC_INLINE void LL_DAC_ClearFlag_DMAUDR2(DAC_TypeDef *DACx)
Clear DAC underrun flag for DAC channel 2 SR DMAUDR2 LL_DAC_ClearFlag_DMAUDR2.
__STATIC_INLINE void LL_DAC_EnableIT_DMAUDR1(DAC_TypeDef *DACx)
Enable DMA underrun interrupt for DAC channel 1 CR DMAUDRIE1 LL_DAC_EnableIT_DMAUDR1.
__STATIC_INLINE void LL_DAC_SetSampleAndHoldHoldTime(DAC_TypeDef *DACx, uint32_t DAC_Channel, uint32_t HoldTime)
Set the sample-and-hold timing for the selected DAC channel: hold time SHHR THOLD1 LL_DAC_SetSampleA...
__STATIC_INLINE uint32_t LL_DAC_GetWaveNoiseLFSR(DAC_TypeDef *DACx, uint32_t DAC_Channel)
Get the noise waveform generation for the selected DAC channel: Noise mode and parameters LFSR (linea...
__STATIC_INLINE void LL_DAC_DisableTrigger(DAC_TypeDef *DACx, uint32_t DAC_Channel)
Disable DAC trigger of the selected channel. CR TEN1 LL_DAC_DisableTrigger CR TEN2 LL_DAC_DisableTr...
void LL_DAC_StructInit(LL_DAC_InitTypeDef *DAC_InitStruct)
Set each LL_DAC_InitTypeDef field to default value.
__STATIC_INLINE void LL_DAC_ConvertDualData12LeftAligned(DAC_TypeDef *DACx, uint32_t DataChannel1, uint32_t DataChannel2)
Set the data to be loaded in the data holding register in format 12 bits left alignment (MSB aligned ...
__STATIC_INLINE uint32_t LL_DAC_IsDMAReqEnabled(DAC_TypeDef *DACx, uint32_t DAC_Channel)
Get DAC DMA transfer request state of the selected channel. (0: DAC DMA transfer request is disabled...
ErrorStatus LL_DAC_DeInit(DAC_TypeDef *DACx)
De-initialize registers of the selected DAC instance to their default reset values.
__STATIC_INLINE uint32_t LL_DAC_GetSampleAndHoldHoldTime(DAC_TypeDef *DACx, uint32_t DAC_Channel)
Get the sample-and-hold timing for the selected DAC channel: hold time SHHR THOLD1 LL_DAC_GetSampleA...
__STATIC_INLINE uint32_t LL_DAC_GetTriggerSource(DAC_TypeDef *DACx, uint32_t DAC_Channel)
Get the conversion trigger source for the selected DAC channel.
__STATIC_INLINE void LL_DAC_SetSampleAndHoldRefreshTime(DAC_TypeDef *DACx, uint32_t DAC_Channel, uint32_t RefreshTime)
Set the sample-and-hold timing for the selected DAC channel: refresh time SHRR TREFRESH1 LL_DAC_SetS...
__STATIC_INLINE void LL_DAC_ConvertData8RightAligned(DAC_TypeDef *DACx, uint32_t DAC_Channel, uint32_t Data)
Set the data to be loaded in the data holding register in format 8 bits left alignment (LSB aligned o...
__STATIC_INLINE void LL_DAC_ConfigOutput(DAC_TypeDef *DACx, uint32_t DAC_Channel, uint32_t OutputMode, uint32_t OutputBuffer, uint32_t OutputConnection)
Set the output for the selected DAC channel.
__STATIC_INLINE uint32_t LL_DAC_IsActiveFlag_CAL1(DAC_TypeDef *DACx)
Get DAC calibration offset flag for DAC channel 1 SR CAL_FLAG1 LL_DAC_IsActiveFlag_CAL1.
__STATIC_INLINE uint32_t LL_DAC_GetTrimmingValue(DAC_TypeDef *DACx, uint32_t DAC_Channel)
Get the offset trimming value for the selected DAC channel. Trimming has an impact when output buffer...
__STATIC_INLINE void LL_DAC_EnableDMAReq(DAC_TypeDef *DACx, uint32_t DAC_Channel)
Enable DAC DMA transfer request of the selected channel.
__STATIC_INLINE uint32_t LL_DAC_DMA_GetRegAddr(DAC_TypeDef *DACx, uint32_t DAC_Channel, uint32_t Register)
Function to help to configure DMA transfer to DAC: retrieve the DAC register address from DAC instanc...
CLEAR_BIT(hrtc->Instance->CR, RTC_CR_WUTE)
__STATIC_INLINE uint32_t LL_DAC_GetWaveTriangleAmplitude(DAC_TypeDef *DACx, uint32_t DAC_Channel)
Get the triangle waveform generation for the selected DAC channel: triangle mode and amplitude...
__STATIC_INLINE void LL_DAC_DisableDMAReq(DAC_TypeDef *DACx, uint32_t DAC_Channel)
Disable DAC DMA transfer request of the selected channel.
__STATIC_INLINE uint32_t LL_DAC_IsActiveFlag_DMAUDR1(DAC_TypeDef *DACx)
Get DAC underrun flag for DAC channel 1 SR DMAUDR1 LL_DAC_IsActiveFlag_DMAUDR1.
__STATIC_INLINE void LL_DAC_SetMode(DAC_TypeDef *DACx, uint32_t DAC_Channel, uint32_t ChannelMode)
Set the operating mode for the selected DAC channel: calibration or normal operating mode...
__STATIC_INLINE uint32_t LL_DAC_GetOutputBuffer(DAC_TypeDef *DACx, uint32_t DAC_Channel)
Get the output buffer state for the selected DAC channel. CR MODE1 LL_DAC_GetOutputBuffer CR MODE2 ...
__STATIC_INLINE void LL_DAC_EnableTrigger(DAC_TypeDef *DACx, uint32_t DAC_Channel)
Enable DAC trigger of the selected channel.
__STATIC_INLINE void LL_DAC_DisableIT_DMAUDR2(DAC_TypeDef *DACx)
Disable DMA underrun interrupt for DAC channel 2 CR DMAUDRIE2 LL_DAC_DisableIT_DMAUDR2.
__STATIC_INLINE uint32_t LL_DAC_IsActiveFlag_CAL2(DAC_TypeDef *DACx)
Get DAC calibration offset flag for DAC channel 2 SR CAL_FLAG2 LL_DAC_IsActiveFlag_CAL2.
__STATIC_INLINE uint32_t LL_DAC_GetSampleAndHoldRefreshTime(DAC_TypeDef *DACx, uint32_t DAC_Channel)
Get the sample-and-hold timing for the selected DAC channel: refresh time SHRR TREFRESH1 LL_DAC_GetS...
uint32_t WaveAutoGeneration
__STATIC_INLINE uint32_t LL_DAC_GetHighFrequencyMode(DAC_TypeDef *DACx)
Get the high frequency interface mode for the selected DAC instance CR HFSEL LL_DAC_GetHighFrequency...
__STATIC_INLINE void LL_DAC_SetTriggerSource(DAC_TypeDef *DACx, uint32_t DAC_Channel, uint32_t TriggerSource)
Set the conversion trigger source for the selected DAC channel.
__STATIC_INLINE void LL_DAC_EnableIT_DMAUDR2(DAC_TypeDef *DACx)
Enable DMA underrun interrupt for DAC channel 2 CR DMAUDRIE2 LL_DAC_EnableIT_DMAUDR2.
__STATIC_INLINE uint32_t LL_DAC_RetrieveOutputData(DAC_TypeDef *DACx, uint32_t DAC_Channel)
Retrieve output data currently generated for the selected DAC channel.
__STATIC_INLINE void LL_DAC_ConvertData12LeftAligned(DAC_TypeDef *DACx, uint32_t DAC_Channel, uint32_t Data)
Set the data to be loaded in the data holding register in format 12 bits left alignment (MSB aligned ...
__STATIC_INLINE void LL_DAC_SetSampleAndHoldSampleTime(DAC_TypeDef *DACx, uint32_t DAC_Channel, uint32_t SampleTime)
Set the sample-and-hold timing for the selected DAC channel: sample time.
__STATIC_INLINE uint32_t LL_DAC_IsTriggerEnabled(DAC_TypeDef *DACx, uint32_t DAC_Channel)
Get DAC trigger state of the selected channel. (0: DAC trigger is disabled, 1: DAC trigger is enabled...
__STATIC_INLINE void LL_DAC_DisableIT_DMAUDR1(DAC_TypeDef *DACx)
Disable DMA underrun interrupt for DAC channel 1 CR DMAUDRIE1 LL_DAC_DisableIT_DMAUDR1.
__STATIC_INLINE uint32_t LL_DAC_GetMode(DAC_TypeDef *DACx, uint32_t DAC_Channel)
Get the operating mode for the selected DAC channel: calibration or normal operating mode...
__STATIC_INLINE void LL_DAC_SetOutputBuffer(DAC_TypeDef *DACx, uint32_t DAC_Channel, uint32_t OutputBuffer)
Set the output buffer for the selected DAC channel.
__STATIC_INLINE void LL_DAC_ConvertDualData8RightAligned(DAC_TypeDef *DACx, uint32_t DataChannel1, uint32_t DataChannel2)
Set the data to be loaded in the data holding register in format 8 bits left alignment (LSB aligned o...
__STATIC_INLINE void LL_DAC_SetWaveTriangleAmplitude(DAC_TypeDef *DACx, uint32_t DAC_Channel, uint32_t TriangleAmplitude)
Set the triangle waveform generation for the selected DAC channel: triangle mode and amplitude...
__STATIC_INLINE uint32_t LL_DAC_GetOutputConnection(DAC_TypeDef *DACx, uint32_t DAC_Channel)
Get the output connection for the selected DAC channel.
ErrorStatus LL_DAC_Init(DAC_TypeDef *DACx, uint32_t DAC_Channel, LL_DAC_InitTypeDef *DAC_InitStruct)
Initialize some features of DAC channel.
uint32_t WaveAutoGenerationConfig
uint32_t OutputConnection
__STATIC_INLINE void LL_DAC_ClearFlag_DMAUDR1(DAC_TypeDef *DACx)
Clear DAC underrun flag for DAC channel 1 SR DMAUDR1 LL_DAC_ClearFlag_DMAUDR1.
__STATIC_INLINE uint32_t LL_DAC_GetSampleAndHoldSampleTime(DAC_TypeDef *DACx, uint32_t DAC_Channel)
Get the sample-and-hold timing for the selected DAC channel: sample time SHSR1 TSAMPLE1 LL_DAC_GetSa...
MODIFY_REG(hrtc->Instance->CR, RTC_CR_WUCKSEL,(uint32_t) WakeUpClock)
__STATIC_INLINE void LL_DAC_TrigSWConversion(DAC_TypeDef *DACx, uint32_t DAC_Channel)
Trig DAC conversion by software for the selected DAC channel.
__STATIC_INLINE uint32_t LL_DAC_IsActiveFlag_BWST2(DAC_TypeDef *DACx)
Get DAC busy writing sample time flag for DAC channel 2 SR BWST2 LL_DAC_IsActiveFlag_BWST2.
__STATIC_INLINE void LL_DAC_ConvertDualData12RightAligned(DAC_TypeDef *DACx, uint32_t DataChannel1, uint32_t DataChannel2)
Set the data to be loaded in the data holding register in format 12 bits left alignment (LSB aligned ...
__STATIC_INLINE uint32_t LL_DAC_GetWaveAutoGeneration(DAC_TypeDef *DACx, uint32_t DAC_Channel)
Get the waveform automatic generation mode for the selected DAC channel. CR WAVE1 LL_DAC_GetWaveAuto...
__STATIC_INLINE void LL_DAC_ConvertData12RightAligned(DAC_TypeDef *DACx, uint32_t DAC_Channel, uint32_t Data)
Set the data to be loaded in the data holding register in format 12 bits left alignment (LSB aligned ...
__STATIC_INLINE void LL_DAC_SetOutputConnection(DAC_TypeDef *DACx, uint32_t DAC_Channel, uint32_t OutputConnection)
Set the output connection for the selected DAC channel.
__STATIC_INLINE void LL_DAC_Enable(DAC_TypeDef *DACx, uint32_t DAC_Channel)
Enable DAC selected channel. CR EN1 LL_DAC_Enable CR EN2 LL_DAC_Enable.
__STATIC_INLINE uint32_t LL_DAC_IsEnabled(DAC_TypeDef *DACx, uint32_t DAC_Channel)
Get DAC enable state of the selected channel. (0: DAC channel is disabled, 1: DAC channel is enabled)...
__STATIC_INLINE uint32_t LL_DAC_GetOutputMode(DAC_TypeDef *DACx, uint32_t DAC_Channel)
Get the output mode normal or sample-and-hold for the selected DAC channel. CR MODE1 LL_DAC_GetOutpu...
__STATIC_INLINE void LL_DAC_Disable(DAC_TypeDef *DACx, uint32_t DAC_Channel)
Disable DAC selected channel. CR EN1 LL_DAC_Disable CR EN2 LL_DAC_Disable.
__STATIC_INLINE uint32_t LL_DAC_IsEnabledIT_DMAUDR1(DAC_TypeDef *DACx)
Get DMA underrun interrupt for DAC channel 1 CR DMAUDRIE1 LL_DAC_IsEnabledIT_DMAUDR1.