STM32F439xx HAL User Manual
Data Structures | Defines | Functions
stm32f4xx_ll_dac.h File Reference

Header file of DAC LL module. More...

#include "stm32f4xx.h"

Go to the source code of this file.

Data Structures

struct  LL_DAC_InitTypeDef
 Structure definition of some features of DAC instance. More...

Defines

#define DAC_CR_CH1_BITOFFSET   0U /* Position of channel bits into registers CR, MCR, CCR, SHHR, SHRR of channel 1 */
#define DAC_CR_CH2_BITOFFSET   16U /* Position of channel bits into registers CR, MCR, CCR, SHHR, SHRR of channel 2 */
#define DAC_CR_CHX_BITOFFSET_MASK   (DAC_CR_CH1_BITOFFSET | DAC_CR_CH2_BITOFFSET)
#define DAC_SWTR_CH1   (DAC_SWTRIGR_SWTRIG1) /* Channel bit into register SWTRIGR of channel 1. This bit is into area of LL_DAC_CR_CHx_BITOFFSET but excluded by mask DAC_CR_CHX_BITOFFSET_MASK (done to be enable to trig SW start of both DAC channels simultaneously). */
#define DAC_SWTR_CH2   (DAC_SWTRIGR_SWTRIG2) /* Channel bit into register SWTRIGR of channel 2. This bit is into area of LL_DAC_CR_CHx_BITOFFSET but excluded by mask DAC_CR_CHX_BITOFFSET_MASK (done to be enable to trig SW start of both DAC channels simultaneously). */
#define DAC_SWTR_CHX_MASK   (DAC_SWTR_CH1 | DAC_SWTR_CH2)
#define DAC_REG_DHR12R1_REGOFFSET   0x00000000U /* Register DHR12Rx channel 1 taken as reference */
#define DAC_REG_DHR12L1_REGOFFSET   0x00100000U /* Register offset of DHR12Lx channel 1 versus DHR12Rx channel 1 (shifted left of 20 bits) */
#define DAC_REG_DHR8R1_REGOFFSET   0x02000000U /* Register offset of DHR8Rx channel 1 versus DHR12Rx channel 1 (shifted left of 24 bits) */
#define DAC_REG_DHR12R2_REGOFFSET   0x00030000U /* Register offset of DHR12Rx channel 2 versus DHR12Rx channel 1 (shifted left of 16 bits) */
#define DAC_REG_DHR12L2_REGOFFSET   0x00400000U /* Register offset of DHR12Lx channel 2 versus DHR12Rx channel 1 (shifted left of 20 bits) */
#define DAC_REG_DHR8R2_REGOFFSET   0x05000000U /* Register offset of DHR8Rx channel 2 versus DHR12Rx channel 1 (shifted left of 24 bits) */
#define DAC_REG_DHR12RX_REGOFFSET_MASK   0x000F0000U
#define DAC_REG_DHR12LX_REGOFFSET_MASK   0x00F00000U
#define DAC_REG_DHR8RX_REGOFFSET_MASK   0x0F000000U
#define DAC_REG_DHRX_REGOFFSET_MASK   (DAC_REG_DHR12RX_REGOFFSET_MASK | DAC_REG_DHR12LX_REGOFFSET_MASK | DAC_REG_DHR8RX_REGOFFSET_MASK)
#define DAC_REG_DOR1_REGOFFSET   0x00000000U /* Register DORx channel 1 taken as reference */
#define DAC_REG_DOR2_REGOFFSET   0x10000000U /* Register offset of DORx channel 1 versus DORx channel 2 (shifted left of 28 bits) */
#define DAC_REG_DORX_REGOFFSET_MASK   (DAC_REG_DOR1_REGOFFSET | DAC_REG_DOR2_REGOFFSET)
#define DAC_DHR12RD_DACC2DHR_BITOFFSET_POS   16U /* Value equivalent to POSITION_VAL(DAC_DHR12RD_DACC2DHR) */
#define DAC_DHR12LD_DACC2DHR_BITOFFSET_POS   20U /* Value equivalent to POSITION_VAL(DAC_DHR12LD_DACC2DHR) */
#define DAC_DHR8RD_DACC2DHR_BITOFFSET_POS   8U /* Value equivalent to POSITION_VAL(DAC_DHR8RD_DACC2DHR) */
#define DAC_DIGITAL_SCALE_12BITS   4095U /* Full-scale digital value with a resolution of 12 bits (voltage range determined by analog voltage references Vref+ and Vref-, refer to reference manual) */
#define __DAC_MASK_SHIFT(__BITS__, __MASK__)   (((__BITS__) & (__MASK__)) >> POSITION_VAL((__MASK__)))
 Driver macro reserved for internal use: isolate bits with the selected mask and shift them to the register LSB (shift mask on register position bit 0).
#define __DAC_PTR_REG_OFFSET(__REG__, __REG_OFFFSET__)   ((uint32_t *)((uint32_t) ((uint32_t)(&(__REG__)) + ((__REG_OFFFSET__) << 2U))))
 Driver macro reserved for internal use: set a pointer to a register from a register basis from which an offset is applied.
#define LL_DAC_FLAG_DMAUDR1   (DAC_SR_DMAUDR1)
#define LL_DAC_FLAG_DMAUDR2   (DAC_SR_DMAUDR2)
#define LL_DAC_IT_DMAUDRIE1   (DAC_CR_DMAUDRIE1)
#define LL_DAC_IT_DMAUDRIE2   (DAC_CR_DMAUDRIE2)
#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)
#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)
#define LL_DAC_TRIG_SOFTWARE   (DAC_CR_TSEL1_2 | DAC_CR_TSEL1_1 | DAC_CR_TSEL1_0)
#define LL_DAC_TRIG_EXT_TIM2_TRGO   (DAC_CR_TSEL1_2 )
#define LL_DAC_TRIG_EXT_TIM8_TRGO   ( DAC_CR_TSEL1_0)
#define LL_DAC_TRIG_EXT_TIM4_TRGO   (DAC_CR_TSEL1_2 | DAC_CR_TSEL1_0)
#define LL_DAC_TRIG_EXT_TIM6_TRGO   0x00000000U
#define LL_DAC_TRIG_EXT_TIM7_TRGO   ( DAC_CR_TSEL1_1 )
#define LL_DAC_TRIG_EXT_TIM5_TRGO   ( DAC_CR_TSEL1_1 | DAC_CR_TSEL1_0)
#define LL_DAC_TRIG_EXT_EXTI_LINE9   (DAC_CR_TSEL1_2 | DAC_CR_TSEL1_1 )
#define LL_DAC_WAVE_AUTO_GENERATION_NONE   0x00000000U
#define LL_DAC_WAVE_AUTO_GENERATION_NOISE   (DAC_CR_WAVE1_0)
#define LL_DAC_WAVE_AUTO_GENERATION_TRIANGLE   (DAC_CR_WAVE1_1)
#define LL_DAC_NOISE_LFSR_UNMASK_BIT0   0x00000000U
#define LL_DAC_NOISE_LFSR_UNMASK_BITS1_0   ( DAC_CR_MAMP1_0)
#define LL_DAC_NOISE_LFSR_UNMASK_BITS2_0   ( DAC_CR_MAMP1_1 )
#define LL_DAC_NOISE_LFSR_UNMASK_BITS3_0   ( DAC_CR_MAMP1_1 | DAC_CR_MAMP1_0)
#define LL_DAC_NOISE_LFSR_UNMASK_BITS4_0   ( DAC_CR_MAMP1_2 )
#define LL_DAC_NOISE_LFSR_UNMASK_BITS5_0   ( DAC_CR_MAMP1_2 | DAC_CR_MAMP1_0)
#define LL_DAC_NOISE_LFSR_UNMASK_BITS6_0   ( DAC_CR_MAMP1_2 | DAC_CR_MAMP1_1 )
#define LL_DAC_NOISE_LFSR_UNMASK_BITS7_0   ( DAC_CR_MAMP1_2 | DAC_CR_MAMP1_1 | DAC_CR_MAMP1_0)
#define LL_DAC_NOISE_LFSR_UNMASK_BITS8_0   (DAC_CR_MAMP1_3 )
#define LL_DAC_NOISE_LFSR_UNMASK_BITS9_0   (DAC_CR_MAMP1_3 | DAC_CR_MAMP1_0)
#define LL_DAC_NOISE_LFSR_UNMASK_BITS10_0   (DAC_CR_MAMP1_3 | DAC_CR_MAMP1_1 )
#define LL_DAC_NOISE_LFSR_UNMASK_BITS11_0   (DAC_CR_MAMP1_3 | DAC_CR_MAMP1_1 | DAC_CR_MAMP1_0)
#define LL_DAC_TRIANGLE_AMPLITUDE_1   0x00000000U
#define LL_DAC_TRIANGLE_AMPLITUDE_3   ( DAC_CR_MAMP1_0)
#define LL_DAC_TRIANGLE_AMPLITUDE_7   ( DAC_CR_MAMP1_1 )
#define LL_DAC_TRIANGLE_AMPLITUDE_15   ( DAC_CR_MAMP1_1 | DAC_CR_MAMP1_0)
#define LL_DAC_TRIANGLE_AMPLITUDE_31   ( DAC_CR_MAMP1_2 )
#define LL_DAC_TRIANGLE_AMPLITUDE_63   ( DAC_CR_MAMP1_2 | DAC_CR_MAMP1_0)
#define LL_DAC_TRIANGLE_AMPLITUDE_127   ( DAC_CR_MAMP1_2 | DAC_CR_MAMP1_1 )
#define LL_DAC_TRIANGLE_AMPLITUDE_255   ( DAC_CR_MAMP1_2 | DAC_CR_MAMP1_1 | DAC_CR_MAMP1_0)
#define LL_DAC_TRIANGLE_AMPLITUDE_511   (DAC_CR_MAMP1_3 )
#define LL_DAC_TRIANGLE_AMPLITUDE_1023   (DAC_CR_MAMP1_3 | DAC_CR_MAMP1_0)
#define LL_DAC_TRIANGLE_AMPLITUDE_2047   (DAC_CR_MAMP1_3 | DAC_CR_MAMP1_1 )
#define LL_DAC_TRIANGLE_AMPLITUDE_4095   (DAC_CR_MAMP1_3 | DAC_CR_MAMP1_1 | DAC_CR_MAMP1_0)
#define LL_DAC_OUTPUT_BUFFER_ENABLE   0x00000000U
#define LL_DAC_OUTPUT_BUFFER_DISABLE   (DAC_CR_BOFF1)
#define LL_DAC_RESOLUTION_12B   0x00000000U
#define LL_DAC_RESOLUTION_8B   0x00000002U
#define LL_DAC_DMA_REG_DATA_12BITS_RIGHT_ALIGNED   DAC_REG_DHR12RX_REGOFFSET_MASK
#define LL_DAC_DMA_REG_DATA_12BITS_LEFT_ALIGNED   DAC_REG_DHR12LX_REGOFFSET_MASK
#define LL_DAC_DMA_REG_DATA_8BITS_RIGHT_ALIGNED   DAC_REG_DHR8RX_REGOFFSET_MASK
#define LL_DAC_DELAY_STARTUP_VOLTAGE_SETTLING_US   15U
#define LL_DAC_DELAY_VOLTAGE_SETTLING_US   12U
#define LL_DAC_WriteReg(__INSTANCE__, __REG__, __VALUE__)   WRITE_REG(__INSTANCE__->__REG__, (__VALUE__))
 Write a value in DAC register.
#define LL_DAC_ReadReg(__INSTANCE__, __REG__)   READ_REG(__INSTANCE__->__REG__)
 Read a value in DAC register.
#define __LL_DAC_CHANNEL_TO_DECIMAL_NB(__CHANNEL__)   ((__CHANNEL__) & DAC_SWTR_CHX_MASK)
 Helper macro to get DAC channel number in decimal format from literals LL_DAC_CHANNEL_x.
#define __LL_DAC_DECIMAL_NB_TO_CHANNEL(__DECIMAL_NB__)
 Helper macro to get DAC channel in literal format LL_DAC_CHANNEL_x from number in decimal format.
#define __LL_DAC_DIGITAL_SCALE(__DAC_RESOLUTION__)   ((0x00000FFFU) >> ((__DAC_RESOLUTION__) << 1U))
 Helper macro to define the DAC conversion data full-scale digital value corresponding to the selected DAC resolution.
#define __LL_DAC_CALC_VOLTAGE_TO_DATA(__VREFANALOG_VOLTAGE__, __DAC_VOLTAGE__, __DAC_RESOLUTION__)
 Helper macro to calculate the DAC conversion data (unit: digital value) corresponding to a voltage (unit: mVolt).

Functions

__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 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_SetWaveAutoGeneration (DAC_TypeDef *DACx, uint32_t DAC_Channel, uint32_t WaveAutoGeneration)
 Set the waveform automatic generation mode for the selected DAC channel.
__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.
__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 (linear feedback shift register).
__STATIC_INLINE uint32_t LL_DAC_GetWaveNoiseLFSR (DAC_TypeDef *DACx, uint32_t DAC_Channel)
 Set the noise waveform generation for the selected DAC channel: Noise mode and parameters LFSR (linear feedback shift register).
__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_GetWaveTriangleAmplitude (DAC_TypeDef *DACx, uint32_t DAC_Channel)
 Set the triangle waveform generation for the selected DAC channel: triangle mode and amplitude.
__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 uint32_t LL_DAC_GetOutputBuffer (DAC_TypeDef *DACx, uint32_t DAC_Channel)
 Get the output buffer state for the selected DAC channel.
__STATIC_INLINE void LL_DAC_EnableDMAReq (DAC_TypeDef *DACx, uint32_t DAC_Channel)
 Enable DAC DMA transfer request of the selected channel.
__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_IsDMAReqEnabled (DAC_TypeDef *DACx, uint32_t DAC_Channel)
 Get DAC DMA transfer request state 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 instance and a list of DAC registers intended to be used (most commonly) with DMA transfer.
__STATIC_INLINE void LL_DAC_Enable (DAC_TypeDef *DACx, uint32_t DAC_Channel)
 Enable DAC selected channel.
__STATIC_INLINE void LL_DAC_Disable (DAC_TypeDef *DACx, uint32_t DAC_Channel)
 Disable DAC selected channel.
__STATIC_INLINE uint32_t LL_DAC_IsEnabled (DAC_TypeDef *DACx, uint32_t DAC_Channel)
 Get DAC enable state of the selected channel.
__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_DisableTrigger (DAC_TypeDef *DACx, uint32_t DAC_Channel)
 Disable DAC trigger of the selected channel.
__STATIC_INLINE uint32_t LL_DAC_IsTriggerEnabled (DAC_TypeDef *DACx, uint32_t DAC_Channel)
 Get DAC trigger state of the selected channel.
__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 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 on bit 0), 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 on bit 15), for the selected DAC channel.
__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 on bit 0), for the selected DAC channel.
__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 on bit 0), for both DAC channels.
__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 on bit 15), for both DAC channels.
__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 on bit 0), for both DAC channels.
__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 uint32_t LL_DAC_IsActiveFlag_DMAUDR1 (DAC_TypeDef *DACx)
 Get DAC underrun flag for DAC channel 1.
__STATIC_INLINE uint32_t LL_DAC_IsActiveFlag_DMAUDR2 (DAC_TypeDef *DACx)
 Get DAC underrun flag for DAC channel 2.
__STATIC_INLINE void LL_DAC_ClearFlag_DMAUDR1 (DAC_TypeDef *DACx)
 Clear DAC underrun flag for DAC channel 1.
__STATIC_INLINE void LL_DAC_ClearFlag_DMAUDR2 (DAC_TypeDef *DACx)
 Clear DAC underrun flag for DAC channel 2.
__STATIC_INLINE void LL_DAC_EnableIT_DMAUDR1 (DAC_TypeDef *DACx)
 Enable DMA underrun interrupt for DAC channel 1.
__STATIC_INLINE void LL_DAC_EnableIT_DMAUDR2 (DAC_TypeDef *DACx)
 Enable DMA underrun interrupt for DAC channel 2.
__STATIC_INLINE void LL_DAC_DisableIT_DMAUDR1 (DAC_TypeDef *DACx)
 Disable DMA underrun interrupt for DAC channel 1.
__STATIC_INLINE void LL_DAC_DisableIT_DMAUDR2 (DAC_TypeDef *DACx)
 Disable DMA underrun interrupt for DAC channel 2.
__STATIC_INLINE uint32_t LL_DAC_IsEnabledIT_DMAUDR1 (DAC_TypeDef *DACx)
 Get DMA underrun interrupt for DAC channel 1.
__STATIC_INLINE uint32_t LL_DAC_IsEnabledIT_DMAUDR2 (DAC_TypeDef *DACx)
 Get DMA underrun interrupt for DAC channel 2.
ErrorStatus LL_DAC_DeInit (DAC_TypeDef *DACx)
 De-initialize registers of the selected DAC instance to their default reset values.
ErrorStatus LL_DAC_Init (DAC_TypeDef *DACx, uint32_t DAC_Channel, LL_DAC_InitTypeDef *DAC_InitStruct)
 Initialize some features of DAC instance.
void LL_DAC_StructInit (LL_DAC_InitTypeDef *DAC_InitStruct)
 Set each LL_DAC_InitTypeDef field to default value.

Detailed Description

Header file of DAC LL module.

Author:
MCD Application Team
Attention:

© COPYRIGHT(c) 2017 STMicroelectronics

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of STMicroelectronics nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Definition in file stm32f4xx_ll_dac.h.