mbed library sources. Supersedes mbed-src.

Dependents:   Nucleo_Hello_Encoder BLE_iBeaconScan AM1805_DEMO DISCO-F429ZI_ExportTemplate1 ... more

Committer:
AnnaBridge
Date:
Wed Feb 20 22:31:08 2019 +0000
Revision:
189:f392fc9709a3
Parent:
187:0387e8f68319
mbed library release version 165

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 165:e614a9f1c9e2 1 /**
AnnaBridge 165:e614a9f1c9e2 2 ******************************************************************************
AnnaBridge 165:e614a9f1c9e2 3 * @file stm32f1xx_ll_dac.c
AnnaBridge 165:e614a9f1c9e2 4 * @author MCD Application Team
AnnaBridge 165:e614a9f1c9e2 5 * @brief DAC LL module driver
AnnaBridge 165:e614a9f1c9e2 6 ******************************************************************************
AnnaBridge 165:e614a9f1c9e2 7 * @attention
AnnaBridge 165:e614a9f1c9e2 8 *
AnnaBridge 165:e614a9f1c9e2 9 * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
AnnaBridge 165:e614a9f1c9e2 10 *
AnnaBridge 165:e614a9f1c9e2 11 * Redistribution and use in source and binary forms, with or without modification,
AnnaBridge 165:e614a9f1c9e2 12 * are permitted provided that the following conditions are met:
AnnaBridge 165:e614a9f1c9e2 13 * 1. Redistributions of source code must retain the above copyright notice,
AnnaBridge 165:e614a9f1c9e2 14 * this list of conditions and the following disclaimer.
AnnaBridge 165:e614a9f1c9e2 15 * 2. Redistributions in binary form must reproduce the above copyright notice,
AnnaBridge 165:e614a9f1c9e2 16 * this list of conditions and the following disclaimer in the documentation
AnnaBridge 165:e614a9f1c9e2 17 * and/or other materials provided with the distribution.
AnnaBridge 165:e614a9f1c9e2 18 * 3. Neither the name of STMicroelectronics nor the names of its contributors
AnnaBridge 165:e614a9f1c9e2 19 * may be used to endorse or promote products derived from this software
AnnaBridge 165:e614a9f1c9e2 20 * without specific prior written permission.
AnnaBridge 165:e614a9f1c9e2 21 *
AnnaBridge 165:e614a9f1c9e2 22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AnnaBridge 165:e614a9f1c9e2 23 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
AnnaBridge 165:e614a9f1c9e2 24 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
AnnaBridge 165:e614a9f1c9e2 25 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
AnnaBridge 165:e614a9f1c9e2 26 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
AnnaBridge 165:e614a9f1c9e2 27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
AnnaBridge 165:e614a9f1c9e2 28 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
AnnaBridge 165:e614a9f1c9e2 29 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
AnnaBridge 165:e614a9f1c9e2 30 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
AnnaBridge 165:e614a9f1c9e2 31 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
AnnaBridge 165:e614a9f1c9e2 32 *
AnnaBridge 165:e614a9f1c9e2 33 ******************************************************************************
AnnaBridge 165:e614a9f1c9e2 34 */
AnnaBridge 165:e614a9f1c9e2 35 #if defined(USE_FULL_LL_DRIVER)
AnnaBridge 165:e614a9f1c9e2 36
AnnaBridge 165:e614a9f1c9e2 37 /* Includes ------------------------------------------------------------------*/
AnnaBridge 165:e614a9f1c9e2 38 #include "stm32f1xx_ll_dac.h"
AnnaBridge 165:e614a9f1c9e2 39 #include "stm32f1xx_ll_bus.h"
AnnaBridge 165:e614a9f1c9e2 40
AnnaBridge 165:e614a9f1c9e2 41 #ifdef USE_FULL_ASSERT
AnnaBridge 165:e614a9f1c9e2 42 #include "stm32_assert.h"
AnnaBridge 165:e614a9f1c9e2 43 #else
AnnaBridge 165:e614a9f1c9e2 44 #define assert_param(expr) ((void)0U)
AnnaBridge 165:e614a9f1c9e2 45 #endif
AnnaBridge 165:e614a9f1c9e2 46
AnnaBridge 165:e614a9f1c9e2 47 /** @addtogroup STM32F1xx_LL_Driver
AnnaBridge 165:e614a9f1c9e2 48 * @{
AnnaBridge 165:e614a9f1c9e2 49 */
AnnaBridge 165:e614a9f1c9e2 50
AnnaBridge 165:e614a9f1c9e2 51 #if defined (DAC)
AnnaBridge 165:e614a9f1c9e2 52
AnnaBridge 165:e614a9f1c9e2 53 /** @addtogroup DAC_LL DAC
AnnaBridge 165:e614a9f1c9e2 54 * @{
AnnaBridge 165:e614a9f1c9e2 55 */
AnnaBridge 165:e614a9f1c9e2 56
AnnaBridge 165:e614a9f1c9e2 57 /* Private types -------------------------------------------------------------*/
AnnaBridge 165:e614a9f1c9e2 58 /* Private variables ---------------------------------------------------------*/
AnnaBridge 165:e614a9f1c9e2 59 /* Private constants ---------------------------------------------------------*/
AnnaBridge 165:e614a9f1c9e2 60 /* Private macros ------------------------------------------------------------*/
AnnaBridge 165:e614a9f1c9e2 61
AnnaBridge 165:e614a9f1c9e2 62 /** @addtogroup DAC_LL_Private_Macros
AnnaBridge 165:e614a9f1c9e2 63 * @{
AnnaBridge 165:e614a9f1c9e2 64 */
AnnaBridge 165:e614a9f1c9e2 65
AnnaBridge 165:e614a9f1c9e2 66 #define IS_LL_DAC_CHANNEL(__DACX__, __DAC_CHANNEL__) \
AnnaBridge 165:e614a9f1c9e2 67 ( \
AnnaBridge 165:e614a9f1c9e2 68 ((__DAC_CHANNEL__) == LL_DAC_CHANNEL_1) \
AnnaBridge 165:e614a9f1c9e2 69 || ((__DAC_CHANNEL__) == LL_DAC_CHANNEL_2) \
AnnaBridge 165:e614a9f1c9e2 70 )
AnnaBridge 165:e614a9f1c9e2 71
AnnaBridge 165:e614a9f1c9e2 72 #define IS_LL_DAC_TRIGGER_SOURCE(__TRIGGER_SOURCE__) \
AnnaBridge 165:e614a9f1c9e2 73 ( ((__TRIGGER_SOURCE__) == LL_DAC_TRIG_SOFTWARE) \
AnnaBridge 165:e614a9f1c9e2 74 || ((__TRIGGER_SOURCE__) == LL_DAC_TRIG_EXT_TIM3_TRGO) \
AnnaBridge 165:e614a9f1c9e2 75 || ((__TRIGGER_SOURCE__) == LL_DAC_TRIG_EXT_TIM15_TRGO) \
AnnaBridge 165:e614a9f1c9e2 76 || ((__TRIGGER_SOURCE__) == LL_DAC_TRIG_EXT_TIM2_TRGO) \
AnnaBridge 165:e614a9f1c9e2 77 || ((__TRIGGER_SOURCE__) == LL_DAC_TRIG_EXT_TIM4_TRGO) \
AnnaBridge 165:e614a9f1c9e2 78 || ((__TRIGGER_SOURCE__) == LL_DAC_TRIG_EXT_TIM5_TRGO) \
AnnaBridge 165:e614a9f1c9e2 79 || ((__TRIGGER_SOURCE__) == LL_DAC_TRIG_EXT_TIM6_TRGO) \
AnnaBridge 165:e614a9f1c9e2 80 || ((__TRIGGER_SOURCE__) == LL_DAC_TRIG_EXT_TIM7_TRGO) \
AnnaBridge 165:e614a9f1c9e2 81 || ((__TRIGGER_SOURCE__) == LL_DAC_TRIG_EXT_TIM8_TRGO) \
AnnaBridge 165:e614a9f1c9e2 82 || ((__TRIGGER_SOURCE__) == LL_DAC_TRIG_EXT_EXTI_LINE9) \
AnnaBridge 165:e614a9f1c9e2 83 )
AnnaBridge 165:e614a9f1c9e2 84 #define IS_LL_DAC_WAVE_AUTO_GENER_MODE(__WAVE_AUTO_GENERATION_MODE__) \
AnnaBridge 165:e614a9f1c9e2 85 ( ((__WAVE_AUTO_GENERATION_MODE__) == LL_DAC_WAVE_AUTO_GENERATION_NONE) \
AnnaBridge 165:e614a9f1c9e2 86 || ((__WAVE_AUTO_GENERATION_MODE__) == LL_DAC_WAVE_AUTO_GENERATION_NOISE) \
AnnaBridge 165:e614a9f1c9e2 87 || ((__WAVE_AUTO_GENERATION_MODE__) == LL_DAC_WAVE_AUTO_GENERATION_TRIANGLE) \
AnnaBridge 165:e614a9f1c9e2 88 )
AnnaBridge 165:e614a9f1c9e2 89
AnnaBridge 165:e614a9f1c9e2 90 #define IS_LL_DAC_WAVE_AUTO_GENER_CONFIG(__WAVE_AUTO_GENERATION_CONFIG__) \
AnnaBridge 165:e614a9f1c9e2 91 ( ((__WAVE_AUTO_GENERATION_CONFIG__) == LL_DAC_NOISE_LFSR_UNMASK_BIT0) \
AnnaBridge 165:e614a9f1c9e2 92 || ((__WAVE_AUTO_GENERATION_CONFIG__) == LL_DAC_NOISE_LFSR_UNMASK_BITS1_0) \
AnnaBridge 165:e614a9f1c9e2 93 || ((__WAVE_AUTO_GENERATION_CONFIG__) == LL_DAC_NOISE_LFSR_UNMASK_BITS2_0) \
AnnaBridge 165:e614a9f1c9e2 94 || ((__WAVE_AUTO_GENERATION_CONFIG__) == LL_DAC_NOISE_LFSR_UNMASK_BITS3_0) \
AnnaBridge 165:e614a9f1c9e2 95 || ((__WAVE_AUTO_GENERATION_CONFIG__) == LL_DAC_NOISE_LFSR_UNMASK_BITS4_0) \
AnnaBridge 165:e614a9f1c9e2 96 || ((__WAVE_AUTO_GENERATION_CONFIG__) == LL_DAC_NOISE_LFSR_UNMASK_BITS5_0) \
AnnaBridge 165:e614a9f1c9e2 97 || ((__WAVE_AUTO_GENERATION_CONFIG__) == LL_DAC_NOISE_LFSR_UNMASK_BITS6_0) \
AnnaBridge 165:e614a9f1c9e2 98 || ((__WAVE_AUTO_GENERATION_CONFIG__) == LL_DAC_NOISE_LFSR_UNMASK_BITS7_0) \
AnnaBridge 165:e614a9f1c9e2 99 || ((__WAVE_AUTO_GENERATION_CONFIG__) == LL_DAC_NOISE_LFSR_UNMASK_BITS8_0) \
AnnaBridge 165:e614a9f1c9e2 100 || ((__WAVE_AUTO_GENERATION_CONFIG__) == LL_DAC_NOISE_LFSR_UNMASK_BITS9_0) \
AnnaBridge 165:e614a9f1c9e2 101 || ((__WAVE_AUTO_GENERATION_CONFIG__) == LL_DAC_NOISE_LFSR_UNMASK_BITS10_0) \
AnnaBridge 165:e614a9f1c9e2 102 || ((__WAVE_AUTO_GENERATION_CONFIG__) == LL_DAC_NOISE_LFSR_UNMASK_BITS11_0) \
AnnaBridge 165:e614a9f1c9e2 103 || ((__WAVE_AUTO_GENERATION_CONFIG__) == LL_DAC_TRIANGLE_AMPLITUDE_1) \
AnnaBridge 165:e614a9f1c9e2 104 || ((__WAVE_AUTO_GENERATION_CONFIG__) == LL_DAC_TRIANGLE_AMPLITUDE_3) \
AnnaBridge 165:e614a9f1c9e2 105 || ((__WAVE_AUTO_GENERATION_CONFIG__) == LL_DAC_TRIANGLE_AMPLITUDE_7) \
AnnaBridge 165:e614a9f1c9e2 106 || ((__WAVE_AUTO_GENERATION_CONFIG__) == LL_DAC_TRIANGLE_AMPLITUDE_15) \
AnnaBridge 165:e614a9f1c9e2 107 || ((__WAVE_AUTO_GENERATION_CONFIG__) == LL_DAC_TRIANGLE_AMPLITUDE_31) \
AnnaBridge 165:e614a9f1c9e2 108 || ((__WAVE_AUTO_GENERATION_CONFIG__) == LL_DAC_TRIANGLE_AMPLITUDE_63) \
AnnaBridge 165:e614a9f1c9e2 109 || ((__WAVE_AUTO_GENERATION_CONFIG__) == LL_DAC_TRIANGLE_AMPLITUDE_127) \
AnnaBridge 165:e614a9f1c9e2 110 || ((__WAVE_AUTO_GENERATION_CONFIG__) == LL_DAC_TRIANGLE_AMPLITUDE_255) \
AnnaBridge 165:e614a9f1c9e2 111 || ((__WAVE_AUTO_GENERATION_CONFIG__) == LL_DAC_TRIANGLE_AMPLITUDE_511) \
AnnaBridge 165:e614a9f1c9e2 112 || ((__WAVE_AUTO_GENERATION_CONFIG__) == LL_DAC_TRIANGLE_AMPLITUDE_1023) \
AnnaBridge 165:e614a9f1c9e2 113 || ((__WAVE_AUTO_GENERATION_CONFIG__) == LL_DAC_TRIANGLE_AMPLITUDE_2047) \
AnnaBridge 165:e614a9f1c9e2 114 || ((__WAVE_AUTO_GENERATION_CONFIG__) == LL_DAC_TRIANGLE_AMPLITUDE_4095) \
AnnaBridge 165:e614a9f1c9e2 115 )
AnnaBridge 165:e614a9f1c9e2 116
AnnaBridge 165:e614a9f1c9e2 117 #define IS_LL_DAC_OUTPUT_BUFFER(__OUTPUT_BUFFER__) \
AnnaBridge 165:e614a9f1c9e2 118 ( ((__OUTPUT_BUFFER__) == LL_DAC_OUTPUT_BUFFER_ENABLE) \
AnnaBridge 165:e614a9f1c9e2 119 || ((__OUTPUT_BUFFER__) == LL_DAC_OUTPUT_BUFFER_DISABLE) \
AnnaBridge 165:e614a9f1c9e2 120 )
AnnaBridge 165:e614a9f1c9e2 121
AnnaBridge 165:e614a9f1c9e2 122 /**
AnnaBridge 165:e614a9f1c9e2 123 * @}
AnnaBridge 165:e614a9f1c9e2 124 */
AnnaBridge 165:e614a9f1c9e2 125
AnnaBridge 165:e614a9f1c9e2 126
AnnaBridge 165:e614a9f1c9e2 127 /* Private function prototypes -----------------------------------------------*/
AnnaBridge 165:e614a9f1c9e2 128
AnnaBridge 165:e614a9f1c9e2 129 /* Exported functions --------------------------------------------------------*/
AnnaBridge 165:e614a9f1c9e2 130 /** @addtogroup DAC_LL_Exported_Functions
AnnaBridge 165:e614a9f1c9e2 131 * @{
AnnaBridge 165:e614a9f1c9e2 132 */
AnnaBridge 165:e614a9f1c9e2 133
AnnaBridge 165:e614a9f1c9e2 134 /** @addtogroup DAC_LL_EF_Init
AnnaBridge 165:e614a9f1c9e2 135 * @{
AnnaBridge 165:e614a9f1c9e2 136 */
AnnaBridge 165:e614a9f1c9e2 137
AnnaBridge 165:e614a9f1c9e2 138 /**
AnnaBridge 165:e614a9f1c9e2 139 * @brief De-initialize registers of the selected DAC instance
AnnaBridge 165:e614a9f1c9e2 140 * to their default reset values.
AnnaBridge 165:e614a9f1c9e2 141 * @param DACx DAC instance
AnnaBridge 165:e614a9f1c9e2 142 * @retval An ErrorStatus enumeration value:
AnnaBridge 165:e614a9f1c9e2 143 * - SUCCESS: DAC registers are de-initialized
AnnaBridge 165:e614a9f1c9e2 144 * - ERROR: not applicable
AnnaBridge 165:e614a9f1c9e2 145 */
AnnaBridge 165:e614a9f1c9e2 146 ErrorStatus LL_DAC_DeInit(DAC_TypeDef *DACx)
AnnaBridge 165:e614a9f1c9e2 147 {
AnnaBridge 165:e614a9f1c9e2 148 /* Check the parameters */
AnnaBridge 165:e614a9f1c9e2 149 assert_param(IS_DAC_ALL_INSTANCE(DACx));
AnnaBridge 165:e614a9f1c9e2 150
AnnaBridge 165:e614a9f1c9e2 151 /* Force reset of DAC1 clock */
AnnaBridge 165:e614a9f1c9e2 152 LL_APB1_GRP1_ForceReset(LL_APB1_GRP1_PERIPH_DAC1);
AnnaBridge 165:e614a9f1c9e2 153
AnnaBridge 165:e614a9f1c9e2 154 /* Release reset of DAC1 clock */
AnnaBridge 165:e614a9f1c9e2 155 LL_APB1_GRP1_ReleaseReset(LL_APB1_GRP1_PERIPH_DAC1);
AnnaBridge 165:e614a9f1c9e2 156 return SUCCESS;
AnnaBridge 165:e614a9f1c9e2 157 }
AnnaBridge 165:e614a9f1c9e2 158
AnnaBridge 165:e614a9f1c9e2 159 /**
AnnaBridge 165:e614a9f1c9e2 160 * @brief Initialize some features of DAC instance.
AnnaBridge 165:e614a9f1c9e2 161 * @note The setting of these parameters by function @ref LL_DAC_Init()
AnnaBridge 165:e614a9f1c9e2 162 * is conditioned to DAC state:
AnnaBridge 165:e614a9f1c9e2 163 * DAC instance must be disabled.
AnnaBridge 165:e614a9f1c9e2 164 * @param DACx DAC instance
AnnaBridge 165:e614a9f1c9e2 165 * @param DAC_Channel This parameter can be one of the following values:
AnnaBridge 165:e614a9f1c9e2 166 * @arg @ref LL_DAC_CHANNEL_1
AnnaBridge 165:e614a9f1c9e2 167 * @arg @ref LL_DAC_CHANNEL_2
AnnaBridge 165:e614a9f1c9e2 168 * @param DAC_InitStruct Pointer to a @ref LL_DAC_InitTypeDef structure
AnnaBridge 165:e614a9f1c9e2 169 * @retval An ErrorStatus enumeration value:
AnnaBridge 165:e614a9f1c9e2 170 * - SUCCESS: DAC registers are initialized
AnnaBridge 165:e614a9f1c9e2 171 * - ERROR: DAC registers are not initialized
AnnaBridge 165:e614a9f1c9e2 172 */
AnnaBridge 165:e614a9f1c9e2 173 ErrorStatus LL_DAC_Init(DAC_TypeDef *DACx, uint32_t DAC_Channel, LL_DAC_InitTypeDef *DAC_InitStruct)
AnnaBridge 165:e614a9f1c9e2 174 {
AnnaBridge 165:e614a9f1c9e2 175 ErrorStatus status = SUCCESS;
AnnaBridge 165:e614a9f1c9e2 176
AnnaBridge 165:e614a9f1c9e2 177 /* Check the parameters */
AnnaBridge 165:e614a9f1c9e2 178 assert_param(IS_DAC_ALL_INSTANCE(DACx));
AnnaBridge 165:e614a9f1c9e2 179 assert_param(IS_LL_DAC_CHANNEL(DACx, DAC_Channel));
AnnaBridge 165:e614a9f1c9e2 180 assert_param(IS_LL_DAC_TRIGGER_SOURCE(DAC_InitStruct->TriggerSource));
AnnaBridge 165:e614a9f1c9e2 181 assert_param(IS_LL_DAC_OUTPUT_BUFFER(DAC_InitStruct->OutputBuffer));
AnnaBridge 165:e614a9f1c9e2 182 assert_param(IS_LL_DAC_WAVE_AUTO_GENER_MODE(DAC_InitStruct->WaveAutoGeneration));
AnnaBridge 165:e614a9f1c9e2 183 if (DAC_InitStruct->WaveAutoGeneration != LL_DAC_WAVE_AUTO_GENERATION_NONE)
AnnaBridge 165:e614a9f1c9e2 184 {
AnnaBridge 165:e614a9f1c9e2 185 assert_param(IS_LL_DAC_WAVE_AUTO_GENER_CONFIG(DAC_InitStruct->WaveAutoGenerationConfig));
AnnaBridge 165:e614a9f1c9e2 186 }
AnnaBridge 165:e614a9f1c9e2 187
AnnaBridge 165:e614a9f1c9e2 188 /* Note: Hardware constraint (refer to description of this function) */
AnnaBridge 165:e614a9f1c9e2 189 /* DAC instance must be disabled. */
AnnaBridge 165:e614a9f1c9e2 190 if(LL_DAC_IsEnabled(DACx, DAC_Channel) == 0U)
AnnaBridge 165:e614a9f1c9e2 191 {
AnnaBridge 165:e614a9f1c9e2 192 /* Configuration of DAC channel: */
AnnaBridge 165:e614a9f1c9e2 193 /* - TriggerSource */
AnnaBridge 165:e614a9f1c9e2 194 /* - WaveAutoGeneration */
AnnaBridge 165:e614a9f1c9e2 195 /* - OutputBuffer */
AnnaBridge 165:e614a9f1c9e2 196 if (DAC_InitStruct->WaveAutoGeneration != LL_DAC_WAVE_AUTO_GENERATION_NONE)
AnnaBridge 165:e614a9f1c9e2 197 {
AnnaBridge 165:e614a9f1c9e2 198 MODIFY_REG(DACx->CR,
AnnaBridge 165:e614a9f1c9e2 199 ( DAC_CR_TSEL1
AnnaBridge 165:e614a9f1c9e2 200 | DAC_CR_WAVE1
AnnaBridge 165:e614a9f1c9e2 201 | DAC_CR_MAMP1
AnnaBridge 165:e614a9f1c9e2 202 | DAC_CR_BOFF1
AnnaBridge 165:e614a9f1c9e2 203 ) << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK)
AnnaBridge 165:e614a9f1c9e2 204 ,
AnnaBridge 165:e614a9f1c9e2 205 ( DAC_InitStruct->TriggerSource
AnnaBridge 165:e614a9f1c9e2 206 | DAC_InitStruct->WaveAutoGeneration
AnnaBridge 165:e614a9f1c9e2 207 | DAC_InitStruct->WaveAutoGenerationConfig
AnnaBridge 165:e614a9f1c9e2 208 | DAC_InitStruct->OutputBuffer
AnnaBridge 165:e614a9f1c9e2 209 ) << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK)
AnnaBridge 165:e614a9f1c9e2 210 );
AnnaBridge 165:e614a9f1c9e2 211 }
AnnaBridge 165:e614a9f1c9e2 212 else
AnnaBridge 165:e614a9f1c9e2 213 {
AnnaBridge 165:e614a9f1c9e2 214 MODIFY_REG(DACx->CR,
AnnaBridge 165:e614a9f1c9e2 215 ( DAC_CR_TSEL1
AnnaBridge 165:e614a9f1c9e2 216 | DAC_CR_WAVE1
AnnaBridge 165:e614a9f1c9e2 217 | DAC_CR_BOFF1
AnnaBridge 165:e614a9f1c9e2 218 ) << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK)
AnnaBridge 165:e614a9f1c9e2 219 ,
AnnaBridge 165:e614a9f1c9e2 220 ( DAC_InitStruct->TriggerSource
AnnaBridge 165:e614a9f1c9e2 221 | LL_DAC_WAVE_AUTO_GENERATION_NONE
AnnaBridge 165:e614a9f1c9e2 222 | DAC_InitStruct->OutputBuffer
AnnaBridge 165:e614a9f1c9e2 223 ) << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK)
AnnaBridge 165:e614a9f1c9e2 224 );
AnnaBridge 165:e614a9f1c9e2 225 }
AnnaBridge 165:e614a9f1c9e2 226 }
AnnaBridge 165:e614a9f1c9e2 227 else
AnnaBridge 165:e614a9f1c9e2 228 {
AnnaBridge 165:e614a9f1c9e2 229 /* Initialization error: DAC instance is not disabled. */
AnnaBridge 165:e614a9f1c9e2 230 status = ERROR;
AnnaBridge 165:e614a9f1c9e2 231 }
AnnaBridge 165:e614a9f1c9e2 232 return status;
AnnaBridge 165:e614a9f1c9e2 233 }
AnnaBridge 165:e614a9f1c9e2 234
AnnaBridge 165:e614a9f1c9e2 235 /**
AnnaBridge 165:e614a9f1c9e2 236 * @brief Set each @ref LL_DAC_InitTypeDef field to default value.
AnnaBridge 165:e614a9f1c9e2 237 * @param DAC_InitStruct pointer to a @ref LL_DAC_InitTypeDef structure
AnnaBridge 165:e614a9f1c9e2 238 * whose fields will be set to default values.
AnnaBridge 165:e614a9f1c9e2 239 * @retval None
AnnaBridge 165:e614a9f1c9e2 240 */
AnnaBridge 165:e614a9f1c9e2 241 void LL_DAC_StructInit(LL_DAC_InitTypeDef *DAC_InitStruct)
AnnaBridge 165:e614a9f1c9e2 242 {
AnnaBridge 165:e614a9f1c9e2 243 /* Set DAC_InitStruct fields to default values */
AnnaBridge 165:e614a9f1c9e2 244 DAC_InitStruct->TriggerSource = LL_DAC_TRIG_SOFTWARE;
AnnaBridge 165:e614a9f1c9e2 245 DAC_InitStruct->WaveAutoGeneration = LL_DAC_WAVE_AUTO_GENERATION_NONE;
AnnaBridge 165:e614a9f1c9e2 246 /* Note: Parameter discarded if wave auto generation is disabled, */
AnnaBridge 165:e614a9f1c9e2 247 /* set anyway to its default value. */
AnnaBridge 165:e614a9f1c9e2 248 DAC_InitStruct->WaveAutoGenerationConfig = LL_DAC_NOISE_LFSR_UNMASK_BIT0;
AnnaBridge 165:e614a9f1c9e2 249 DAC_InitStruct->OutputBuffer = LL_DAC_OUTPUT_BUFFER_ENABLE;
AnnaBridge 165:e614a9f1c9e2 250 }
AnnaBridge 165:e614a9f1c9e2 251
AnnaBridge 165:e614a9f1c9e2 252 /**
AnnaBridge 165:e614a9f1c9e2 253 * @}
AnnaBridge 165:e614a9f1c9e2 254 */
AnnaBridge 165:e614a9f1c9e2 255
AnnaBridge 165:e614a9f1c9e2 256 /**
AnnaBridge 165:e614a9f1c9e2 257 * @}
AnnaBridge 165:e614a9f1c9e2 258 */
AnnaBridge 165:e614a9f1c9e2 259
AnnaBridge 165:e614a9f1c9e2 260 /**
AnnaBridge 165:e614a9f1c9e2 261 * @}
AnnaBridge 165:e614a9f1c9e2 262 */
AnnaBridge 165:e614a9f1c9e2 263
AnnaBridge 165:e614a9f1c9e2 264 #endif /* DAC */
AnnaBridge 165:e614a9f1c9e2 265
AnnaBridge 165:e614a9f1c9e2 266 /**
AnnaBridge 165:e614a9f1c9e2 267 * @}
AnnaBridge 165:e614a9f1c9e2 268 */
AnnaBridge 165:e614a9f1c9e2 269
AnnaBridge 165:e614a9f1c9e2 270 #endif /* USE_FULL_LL_DRIVER */
AnnaBridge 165:e614a9f1c9e2 271
AnnaBridge 165:e614a9f1c9e2 272 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/