Rev 2 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 2 | Rev 9 | ||
|---|---|---|---|
| Line 4... | Line 4... | ||
| 4 | * @author MCD Application Team |
4 | * @author MCD Application Team |
| 5 | * @brief Header file of DAC LL module. |
5 | * @brief Header file of DAC LL module. |
| 6 | ****************************************************************************** |
6 | ****************************************************************************** |
| 7 | * @attention |
7 | * @attention |
| 8 | * |
8 | * |
| 9 | * <h2><center>© COPYRIGHT(c) 2016 STMicroelectronics</center></h2> |
9 | * <h2><center>© Copyright (c) 2016 STMicroelectronics. |
| - | 10 | * All rights reserved.</center></h2> |
|
| 10 | * |
11 | * |
| 11 | * Redistribution and use in source and binary forms, with or without modification, |
12 | * This software component is licensed by ST under BSD 3-Clause license, |
| 12 | * are permitted provided that the following conditions are met: |
13 | * the "License"; You may not use this file except in compliance with the |
| 13 | * 1. Redistributions of source code must retain the above copyright notice, |
- | |
| 14 | * this list of conditions and the following disclaimer. |
- | |
| 15 | * 2. Redistributions in binary form must reproduce the above copyright notice, |
- | |
| 16 | * this list of conditions and the following disclaimer in the documentation |
- | |
| 17 | * and/or other materials provided with the distribution. |
14 | * License. You may obtain a copy of the License at: |
| 18 | * 3. Neither the name of STMicroelectronics nor the names of its contributors |
- | |
| 19 | * may be used to endorse or promote products derived from this software |
15 | * opensource.org/licenses/BSD-3-Clause |
| 20 | * without specific prior written permission. |
- | |
| 21 | * |
- | |
| 22 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
- | |
| 23 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
- | |
| 24 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
- | |
| 25 | * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE |
- | |
| 26 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
- | |
| 27 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR |
- | |
| 28 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER |
- | |
| 29 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
- | |
| 30 | * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
- | |
| 31 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
- | |
| 32 | * |
16 | * |
| 33 | ****************************************************************************** |
17 | ****************************************************************************** |
| 34 | */ |
18 | */ |
| 35 | 19 | ||
| 36 | /* Define to prevent recursive inclusion -------------------------------------*/ |
20 | /* Define to prevent recursive inclusion -------------------------------------*/ |
| 37 | #ifndef __STM32F1xx_LL_DAC_H |
21 | #ifndef STM32F1xx_LL_DAC_H |
| 38 | #define __STM32F1xx_LL_DAC_H |
22 | #define STM32F1xx_LL_DAC_H |
| 39 | 23 | ||
| 40 | #ifdef __cplusplus |
24 | #ifdef __cplusplus |
| 41 | extern "C" { |
25 | extern "C" { |
| 42 | #endif |
26 | #endif |
| 43 | 27 | ||
| Line 46... | Line 30... | ||
| 46 | 30 | ||
| 47 | /** @addtogroup STM32F1xx_LL_Driver |
31 | /** @addtogroup STM32F1xx_LL_Driver |
| 48 | * @{ |
32 | * @{ |
| 49 | */ |
33 | */ |
| 50 | 34 | ||
| 51 | #if defined (DAC) |
35 | #if defined(DAC) |
| 52 | 36 | ||
| 53 | /** @defgroup DAC_LL DAC |
37 | /** @defgroup DAC_LL DAC |
| 54 | * @{ |
38 | * @{ |
| 55 | */ |
39 | */ |
| 56 | 40 | ||
| Line 62... | Line 46... | ||
| 62 | * @{ |
46 | * @{ |
| 63 | */ |
47 | */ |
| 64 | 48 | ||
| 65 | /* Internal masks for DAC channels definition */ |
49 | /* Internal masks for DAC channels definition */ |
| 66 | /* To select into literal LL_DAC_CHANNEL_x the relevant bits for: */ |
50 | /* To select into literal LL_DAC_CHANNEL_x the relevant bits for: */ |
| 67 | /* - channel bits position into register CR */ |
51 | /* - channel bits position into registers CR, MCR, CCR, SHHR, SHRR */ |
| 68 | /* - channel bits position into register SWTRIG */ |
52 | /* - channel bits position into register SWTRIG */ |
| 69 | /* - channel register offset of data holding register DHRx */ |
53 | /* - channel register offset of data holding register DHRx */ |
| 70 | /* - channel register offset of data output register DORx */ |
54 | /* - channel register offset of data output register DORx */ |
| 71 | #define DAC_CR_CH1_BITOFFSET 0U /* Position of channel bits into registers CR, MCR, CCR, SHHR, SHRR of channel 1 */ |
55 | #define DAC_CR_CH1_BITOFFSET 0U /* Position of channel bits into registers CR, MCR, CCR, SHHR, SHRR of channel 1 */ |
| 72 | #define DAC_CR_CH2_BITOFFSET 16U /* Position of channel bits into registers CR, MCR, CCR, SHHR, SHRR of channel 2 */ |
56 | #define DAC_CR_CH2_BITOFFSET 16U /* Position of channel bits into registers CR, MCR, CCR, SHHR, SHRR of channel 2 */ |
| 73 | #define DAC_CR_CHX_BITOFFSET_MASK (DAC_CR_CH1_BITOFFSET | DAC_CR_CH2_BITOFFSET) |
57 | #define DAC_CR_CHX_BITOFFSET_MASK (DAC_CR_CH1_BITOFFSET | DAC_CR_CH2_BITOFFSET) |
| 74 | 58 | ||
| 75 | #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). */ |
59 | #define DAC_SWTR_CH1 (DAC_SWTRIGR_SWTRIG1) /* Channel bit into register SWTRIGR of channel 1. */ |
| 76 | #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). */ |
60 | #define DAC_SWTR_CH2 (DAC_SWTRIGR_SWTRIG2) /* Channel bit into register SWTRIGR of channel 2. */ |
| 77 | #define DAC_SWTR_CHX_MASK (DAC_SWTR_CH1 | DAC_SWTR_CH2) |
61 | #define DAC_SWTR_CHX_MASK (DAC_SWTR_CH1 | DAC_SWTR_CH2) |
| 78 | 62 | ||
| 79 | #define DAC_REG_DHR12R1_REGOFFSET 0x00000000U /* Register DHR12Rx channel 1 taken as reference */ |
63 | #define DAC_REG_DHR12R1_REGOFFSET 0x00000000U /* Register DHR12Rx channel 1 taken as reference */ |
| 80 | #define DAC_REG_DHR12L1_REGOFFSET 0x00100000U /* Register offset of DHR12Lx channel 1 versus DHR12Rx channel 1 (shifted left of 20 bits) */ |
64 | #define DAC_REG_DHR12L1_REGOFFSET 0x00100000U /* Register offset of DHR12Lx channel 1 versus DHR12Rx channel 1 (shifted left of 20 bits) */ |
| 81 | #define DAC_REG_DHR8R1_REGOFFSET 0x02000000U /* Register offset of DHR8Rx channel 1 versus DHR12Rx channel 1 (shifted left of 24 bits) */ |
65 | #define DAC_REG_DHR8R1_REGOFFSET 0x02000000U /* Register offset of DHR8Rx channel 1 versus DHR12Rx channel 1 (shifted left of 24 bits) */ |
| Line 89... | Line 73... | ||
| 89 | 73 | ||
| 90 | #define DAC_REG_DOR1_REGOFFSET 0x00000000U /* Register DORx channel 1 taken as reference */ |
74 | #define DAC_REG_DOR1_REGOFFSET 0x00000000U /* Register DORx channel 1 taken as reference */ |
| 91 | #define DAC_REG_DOR2_REGOFFSET 0x10000000U /* Register offset of DORx channel 1 versus DORx channel 2 (shifted left of 28 bits) */ |
75 | #define DAC_REG_DOR2_REGOFFSET 0x10000000U /* Register offset of DORx channel 1 versus DORx channel 2 (shifted left of 28 bits) */ |
| 92 | #define DAC_REG_DORX_REGOFFSET_MASK (DAC_REG_DOR1_REGOFFSET | DAC_REG_DOR2_REGOFFSET) |
76 | #define DAC_REG_DORX_REGOFFSET_MASK (DAC_REG_DOR1_REGOFFSET | DAC_REG_DOR2_REGOFFSET) |
| 93 | 77 | ||
| - | 78 | ||
| - | 79 | #define DAC_REG_DHR_REGOFFSET_MASK_POSBIT0 0x0000000FU /* Mask of data hold registers offset (DHR12Rx, DHR12Lx, DHR8Rx, ...) when shifted to position 0 */ |
|
| - | 80 | #define DAC_REG_DORX_REGOFFSET_MASK_POSBIT0 0x00000001U /* Mask of DORx registers offset when shifted to position 0 */ |
|
| - | 81 | #define DAC_REG_SHSRX_REGOFFSET_MASK_POSBIT0 0x00000001U /* Mask of SHSRx registers offset when shifted to position 0 */ |
|
| - | 82 | ||
| - | 83 | #define DAC_REG_DHR12RX_REGOFFSET_BITOFFSET_POS 16U /* Position of bits register offset of DHR12Rx channel 1 or 2 versus DHR12Rx channel 1 (shifted left of 16 bits) */ |
|
| - | 84 | #define DAC_REG_DHR12LX_REGOFFSET_BITOFFSET_POS 20U /* Position of bits register offset of DHR12Lx channel 1 or 2 versus DHR12Rx channel 1 (shifted left of 20 bits) */ |
|
| - | 85 | #define DAC_REG_DHR8RX_REGOFFSET_BITOFFSET_POS 24U /* Position of bits register offset of DHR8Rx channel 1 or 2 versus DHR12Rx channel 1 (shifted left of 24 bits) */ |
|
| - | 86 | #define DAC_REG_DORX_REGOFFSET_BITOFFSET_POS 28U /* Position of bits register offset of DORx channel 1 or 2 versus DORx channel 1 (shifted left of 28 bits) */ |
|
| - | 87 | ||
| 94 | /* DAC registers bits positions */ |
88 | /* DAC registers bits positions */ |
| 95 | #define DAC_DHR12RD_DACC2DHR_BITOFFSET_POS 16U /* Value equivalent to POSITION_VAL(DAC_DHR12RD_DACC2DHR) */ |
89 | #define DAC_DHR12RD_DACC2DHR_BITOFFSET_POS DAC_DHR12RD_DACC2DHR_Pos |
| 96 | #define DAC_DHR12LD_DACC2DHR_BITOFFSET_POS 20U /* Value equivalent to POSITION_VAL(DAC_DHR12LD_DACC2DHR) */ |
90 | #define DAC_DHR12LD_DACC2DHR_BITOFFSET_POS DAC_DHR12LD_DACC2DHR_Pos |
| 97 | #define DAC_DHR8RD_DACC2DHR_BITOFFSET_POS 8U /* Value equivalent to POSITION_VAL(DAC_DHR8RD_DACC2DHR) */ |
91 | #define DAC_DHR8RD_DACC2DHR_BITOFFSET_POS DAC_DHR8RD_DACC2DHR_Pos |
| 98 | 92 | ||
| 99 | /* Miscellaneous data */ |
93 | /* Miscellaneous data */ |
| 100 | #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) */ |
94 | #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) */ |
| 101 | 95 | ||
| 102 | /** |
96 | /** |
| Line 108... | Line 102... | ||
| 108 | /** @defgroup DAC_LL_Private_Macros DAC Private Macros |
102 | /** @defgroup DAC_LL_Private_Macros DAC Private Macros |
| 109 | * @{ |
103 | * @{ |
| 110 | */ |
104 | */ |
| 111 | 105 | ||
| 112 | /** |
106 | /** |
| 113 | * @brief Driver macro reserved for internal use: isolate bits with the |
- | |
| 114 | * selected mask and shift them to the register LSB |
- | |
| 115 | * (shift mask on register position bit 0). |
- | |
| 116 | * @param __BITS__ Bits in register 32 bits |
- | |
| 117 | * @param __MASK__ Mask in register 32 bits |
- | |
| 118 | * @retval Bits in register 32 bits |
- | |
| 119 | */ |
- | |
| 120 | #define __DAC_MASK_SHIFT(__BITS__, __MASK__) \ |
- | |
| 121 | (((__BITS__) & (__MASK__)) >> POSITION_VAL((__MASK__))) |
- | |
| 122 | - | ||
| 123 | /** |
- | |
| 124 | * @brief Driver macro reserved for internal use: set a pointer to |
107 | * @brief Driver macro reserved for internal use: set a pointer to |
| 125 | * a register from a register basis from which an offset |
108 | * a register from a register basis from which an offset |
| 126 | * is applied. |
109 | * is applied. |
| 127 | * @param __REG__ Register basis from which the offset is applied. |
110 | * @param __REG__ Register basis from which the offset is applied. |
| 128 | * @param __REG_OFFFSET__ Offset to be applied (unit: number of registers). |
111 | * @param __REG_OFFFSET__ Offset to be applied (unit: number of registers). |
| 129 | * @retval Pointer to register address |
112 | * @retval Pointer to register address |
| 130 | */ |
113 | */ |
| 131 | #define __DAC_PTR_REG_OFFSET(__REG__, __REG_OFFFSET__) \ |
114 | #define __DAC_PTR_REG_OFFSET(__REG__, __REG_OFFFSET__) \ |
| 132 | ((uint32_t *)((uint32_t) ((uint32_t)(&(__REG__)) + ((__REG_OFFFSET__) << 2U)))) |
115 | ((uint32_t *)((uint32_t) ((uint32_t)(&(__REG__)) + ((__REG_OFFFSET__) << 2U)))) |
| 133 | 116 | ||
| 134 | /** |
117 | /** |
| 135 | * @} |
118 | * @} |
| 136 | */ |
119 | */ |
| 137 | 120 | ||
| Line 145... | Line 128... | ||
| 145 | /** |
128 | /** |
| 146 | * @brief Structure definition of some features of DAC instance. |
129 | * @brief Structure definition of some features of DAC instance. |
| 147 | */ |
130 | */ |
| 148 | typedef struct |
131 | typedef struct |
| 149 | { |
132 | { |
| 150 | uint32_t TriggerSource; /*!< Set the conversion trigger source for the selected DAC channel: internal (SW start) or from external IP (timer event, external interrupt line). |
133 | uint32_t TriggerSource; /*!< Set the conversion trigger source for the selected DAC channel: internal (SW start) or from external peripheral (timer event, external interrupt line). |
| 151 | This parameter can be a value of @ref DAC_LL_EC_TRIGGER_SOURCE |
134 | This parameter can be a value of @ref DAC_LL_EC_TRIGGER_SOURCE |
| 152 | |
- | |
| - | 135 | ||
| 153 | This feature can be modified afterwards using unitary function @ref LL_DAC_SetTriggerSource(). */ |
136 | This feature can be modified afterwards using unitary function @ref LL_DAC_SetTriggerSource(). */ |
| 154 | 137 | ||
| 155 | uint32_t WaveAutoGeneration; /*!< Set the waveform automatic generation mode for the selected DAC channel. |
138 | uint32_t WaveAutoGeneration; /*!< Set the waveform automatic generation mode for the selected DAC channel. |
| 156 | This parameter can be a value of @ref DAC_LL_EC_WAVE_AUTO_GENERATION_MODE |
139 | This parameter can be a value of @ref DAC_LL_EC_WAVE_AUTO_GENERATION_MODE |
| 157 | |
- | |
| - | 140 | ||
| 158 | This feature can be modified afterwards using unitary function @ref LL_DAC_SetWaveAutoGeneration(). */ |
141 | This feature can be modified afterwards using unitary function @ref LL_DAC_SetWaveAutoGeneration(). */ |
| 159 | 142 | ||
| 160 | uint32_t WaveAutoGenerationConfig; /*!< Set the waveform automatic generation mode for the selected DAC channel. |
143 | uint32_t WaveAutoGenerationConfig; /*!< Set the waveform automatic generation mode for the selected DAC channel. |
| 161 | If waveform automatic generation mode is set to noise, this parameter can be a value of @ref DAC_LL_EC_WAVE_NOISE_LFSR_UNMASK_BITS |
144 | If waveform automatic generation mode is set to noise, this parameter can be a value of @ref DAC_LL_EC_WAVE_NOISE_LFSR_UNMASK_BITS |
| 162 | If waveform automatic generation mode is set to triangle, this parameter can be a value of @ref DAC_LL_EC_WAVE_TRIANGLE_AMPLITUDE |
145 | If waveform automatic generation mode is set to triangle, this parameter can be a value of @ref DAC_LL_EC_WAVE_TRIANGLE_AMPLITUDE |
| 163 | @note If waveform automatic generation mode is disabled, this parameter is discarded. |
146 | @note If waveform automatic generation mode is disabled, this parameter is discarded. |
| 164 | |
- | |
| - | 147 | ||
| 165 | This feature can be modified afterwards using unitary function @ref LL_DAC_SetWaveNoiseLFSR() or @ref LL_DAC_SetWaveTriangleAmplitude(), depending on the wave automatic generation selected. */ |
148 | This feature can be modified afterwards using unitary function @ref LL_DAC_SetWaveNoiseLFSR(), @ref LL_DAC_SetWaveTriangleAmplitude() |
| - | 149 | depending on the wave automatic generation selected. */ |
|
| 166 | 150 | ||
| 167 | uint32_t OutputBuffer; /*!< Set the output buffer for the selected DAC channel. |
151 | uint32_t OutputBuffer; /*!< Set the output buffer for the selected DAC channel. |
| 168 | This parameter can be a value of @ref DAC_LL_EC_OUTPUT_BUFFER |
152 | This parameter can be a value of @ref DAC_LL_EC_OUTPUT_BUFFER |
| 169 | |
- | |
| - | 153 | ||
| 170 | This feature can be modified afterwards using unitary function @ref LL_DAC_SetOutputBuffer(). */ |
154 | This feature can be modified afterwards using unitary function @ref LL_DAC_SetOutputBuffer(). */ |
| 171 | 155 | ||
| 172 | } LL_DAC_InitTypeDef; |
156 | } LL_DAC_InitTypeDef; |
| 173 | 157 | ||
| 174 | /** |
158 | /** |
| Line 184... | Line 168... | ||
| 184 | /** @defgroup DAC_LL_EC_GET_FLAG DAC flags |
168 | /** @defgroup DAC_LL_EC_GET_FLAG DAC flags |
| 185 | * @brief Flags defines which can be used with LL_DAC_ReadReg function |
169 | * @brief Flags defines which can be used with LL_DAC_ReadReg function |
| 186 | * @{ |
170 | * @{ |
| 187 | */ |
171 | */ |
| 188 | /* DAC channel 1 flags */ |
172 | /* DAC channel 1 flags */ |
| 189 | #if defined(DAC_SR_DMAUDR1) |
- | |
| 190 | #define LL_DAC_FLAG_DMAUDR1 (DAC_SR_DMAUDR1) /*!< DAC channel 1 flag DMA underrun */ |
173 | #define LL_DAC_FLAG_DMAUDR1 (DAC_SR_DMAUDR1) /*!< DAC channel 1 flag DMA underrun */ |
| 191 | #endif /* DAC_SR_DMAUDR1 */ |
- | |
| 192 | 174 | ||
| 193 | /* DAC channel 2 flags */ |
175 | /* DAC channel 2 flags */ |
| 194 | #if defined(DAC_SR_DMAUDR2) |
- | |
| 195 | #define LL_DAC_FLAG_DMAUDR2 (DAC_SR_DMAUDR2) /*!< DAC channel 2 flag DMA underrun */ |
176 | #define LL_DAC_FLAG_DMAUDR2 (DAC_SR_DMAUDR2) /*!< DAC channel 2 flag DMA underrun */ |
| 196 | #endif /* DAC_SR_DMAUDR2 */ |
- | |
| 197 | /** |
177 | /** |
| 198 | * @} |
178 | * @} |
| 199 | */ |
179 | */ |
| 200 | 180 | ||
| 201 | /** @defgroup DAC_LL_EC_IT DAC interruptions |
181 | /** @defgroup DAC_LL_EC_IT DAC interruptions |
| 202 | * @brief IT defines which can be used with LL_DAC_ReadReg and LL_DAC_WriteReg functions |
182 | * @brief IT defines which can be used with LL_DAC_ReadReg and LL_DAC_WriteReg functions |
| 203 | * @{ |
183 | * @{ |
| 204 | */ |
184 | */ |
| 205 | #if defined(DAC_CR_DMAUDRIE1) |
- | |
| 206 | #define LL_DAC_IT_DMAUDRIE1 (DAC_CR_DMAUDRIE1) /*!< DAC channel 1 interruption DMA underrun */ |
185 | #define LL_DAC_IT_DMAUDRIE1 (DAC_CR_DMAUDRIE1) /*!< DAC channel 1 interruption DMA underrun */ |
| 207 | #endif /* DAC_CR_DMAUDRIE1 */ |
- | |
| 208 | #if defined(DAC_CR_DMAUDRIE2) |
- | |
| 209 | #define LL_DAC_IT_DMAUDRIE2 (DAC_CR_DMAUDRIE2) /*!< DAC channel 2 interruption DMA underrun */ |
186 | #define LL_DAC_IT_DMAUDRIE2 (DAC_CR_DMAUDRIE2) /*!< DAC channel 2 interruption DMA underrun */ |
| 210 | #endif /* DAC_CR_DMAUDRIE2 */ |
- | |
| 211 | /** |
187 | /** |
| 212 | * @} |
188 | * @} |
| 213 | */ |
189 | */ |
| 214 | 190 | ||
| 215 | /** @defgroup DAC_LL_EC_CHANNEL DAC channels |
191 | /** @defgroup DAC_LL_EC_CHANNEL DAC channels |
| Line 223... | Line 199... | ||
| 223 | 199 | ||
| 224 | /** @defgroup DAC_LL_EC_TRIGGER_SOURCE DAC trigger source |
200 | /** @defgroup DAC_LL_EC_TRIGGER_SOURCE DAC trigger source |
| 225 | * @{ |
201 | * @{ |
| 226 | */ |
202 | */ |
| 227 | #define LL_DAC_TRIG_SOFTWARE (DAC_CR_TSEL1_2 | DAC_CR_TSEL1_1 | DAC_CR_TSEL1_0) /*!< DAC channel conversion trigger internal (SW start) */ |
203 | #define LL_DAC_TRIG_SOFTWARE (DAC_CR_TSEL1_2 | DAC_CR_TSEL1_1 | DAC_CR_TSEL1_0) /*!< DAC channel conversion trigger internal (SW start) */ |
| 228 | #define LL_DAC_TRIG_EXT_TIM3_TRGO ( DAC_CR_TSEL1_0) /*!< DAC channel conversion trigger from external IP: TIM3 TRGO. */ |
204 | #define LL_DAC_TRIG_EXT_TIM3_TRGO ( DAC_CR_TSEL1_0) /*!< DAC channel conversion trigger from external peripheral: TIM3 TRGO. */ |
| 229 | #define LL_DAC_TRIG_EXT_TIM15_TRGO ( DAC_CR_TSEL1_1 | DAC_CR_TSEL1_0) /*!< DAC channel conversion trigger from external IP: TIM15 TRGO. */ |
205 | #define LL_DAC_TRIG_EXT_TIM15_TRGO ( DAC_CR_TSEL1_1 | DAC_CR_TSEL1_0) /*!< DAC channel conversion trigger from external peripheral: TIM15 TRGO. */ |
| 230 | #define LL_DAC_TRIG_EXT_TIM2_TRGO (DAC_CR_TSEL1_2 ) /*!< DAC channel conversion trigger from external IP: TIM2 TRGO. */ |
206 | #define LL_DAC_TRIG_EXT_TIM2_TRGO (DAC_CR_TSEL1_2 ) /*!< DAC channel conversion trigger from external peripheral: TIM2 TRGO. */ |
| 231 | #define LL_DAC_TRIG_EXT_TIM8_TRGO ( DAC_CR_TSEL1_0) /*!< DAC channel conversion trigger from external IP: TIM8 TRGO. */ |
207 | #define LL_DAC_TRIG_EXT_TIM8_TRGO ( DAC_CR_TSEL1_0) /*!< DAC channel conversion trigger from external peripheral: TIM8 TRGO. */ |
| 232 | #define LL_DAC_TRIG_EXT_TIM4_TRGO (DAC_CR_TSEL1_2 | DAC_CR_TSEL1_0) /*!< DAC channel conversion trigger from external IP: TIM4 TRGO. */ |
208 | #define LL_DAC_TRIG_EXT_TIM4_TRGO (DAC_CR_TSEL1_2 | DAC_CR_TSEL1_0) /*!< DAC channel conversion trigger from external peripheral: TIM4 TRGO. */ |
| 233 | #define LL_DAC_TRIG_EXT_TIM6_TRGO 0x00000000U /*!< DAC channel conversion trigger from external IP: TIM6 TRGO. */ |
209 | #define LL_DAC_TRIG_EXT_TIM6_TRGO 0x00000000U /*!< DAC channel conversion trigger from external peripheral: TIM6 TRGO. */ |
| 234 | #define LL_DAC_TRIG_EXT_TIM7_TRGO ( DAC_CR_TSEL1_1 ) /*!< DAC channel conversion trigger from external IP: TIM7 TRGO. */ |
210 | #define LL_DAC_TRIG_EXT_TIM7_TRGO ( DAC_CR_TSEL1_1 ) /*!< DAC channel conversion trigger from external peripheral: TIM7 TRGO. */ |
| 235 | #define LL_DAC_TRIG_EXT_TIM5_TRGO ( DAC_CR_TSEL1_1 | DAC_CR_TSEL1_0) /*!< DAC channel conversion trigger from external IP: TIM5 TRGO. */ |
211 | #define LL_DAC_TRIG_EXT_TIM5_TRGO ( DAC_CR_TSEL1_1 | DAC_CR_TSEL1_0) /*!< DAC channel conversion trigger from external peripheral: TIM5 TRGO. */ |
| 236 | #define LL_DAC_TRIG_EXT_EXTI_LINE9 (DAC_CR_TSEL1_2 | DAC_CR_TSEL1_1 ) /*!< DAC channel conversion trigger from external IP: external interrupt line 9. */ |
212 | #define LL_DAC_TRIG_EXT_EXTI_LINE9 (DAC_CR_TSEL1_2 | DAC_CR_TSEL1_1 ) /*!< DAC channel conversion trigger from external peripheral: external interrupt line 9. */ |
| 237 | /** |
213 | /** |
| 238 | * @} |
214 | * @} |
| 239 | */ |
215 | */ |
| 240 | 216 | ||
| 241 | /** @defgroup DAC_LL_EC_WAVE_AUTO_GENERATION_MODE DAC waveform automatic generation mode |
217 | /** @defgroup DAC_LL_EC_WAVE_AUTO_GENERATION_MODE DAC waveform automatic generation mode |
| 242 | * @{ |
218 | * @{ |
| 243 | */ |
219 | */ |
| 244 | #define LL_DAC_WAVE_AUTO_GENERATION_NONE 0x00000000U /*!< DAC channel wave auto generation mode disabled. */ |
220 | #define LL_DAC_WAVE_AUTO_GENERATION_NONE 0x00000000U /*!< DAC channel wave auto generation mode disabled. */ |
| 245 | #define LL_DAC_WAVE_AUTO_GENERATION_NOISE (DAC_CR_WAVE1_0) /*!< DAC channel wave auto generation mode enabled, set generated noise waveform. */ |
221 | #define LL_DAC_WAVE_AUTO_GENERATION_NOISE ( DAC_CR_WAVE1_0) /*!< DAC channel wave auto generation mode enabled, set generated noise waveform. */ |
| 246 | #define LL_DAC_WAVE_AUTO_GENERATION_TRIANGLE (DAC_CR_WAVE1_1) /*!< DAC channel wave auto generation mode enabled, set generated triangle waveform. */ |
222 | #define LL_DAC_WAVE_AUTO_GENERATION_TRIANGLE (DAC_CR_WAVE1_1 ) /*!< DAC channel wave auto generation mode enabled, set generated triangle waveform. */ |
| 247 | /** |
223 | /** |
| 248 | * @} |
224 | * @} |
| 249 | */ |
225 | */ |
| 250 | 226 | ||
| 251 | /** @defgroup DAC_LL_EC_WAVE_NOISE_LFSR_UNMASK_BITS DAC wave generation - Noise LFSR unmask bits |
227 | /** @defgroup DAC_LL_EC_WAVE_NOISE_LFSR_UNMASK_BITS DAC wave generation - Noise LFSR unmask bits |
| Line 293... | Line 269... | ||
| 293 | #define LL_DAC_OUTPUT_BUFFER_DISABLE (DAC_CR_BOFF1) /*!< The selected DAC channel output is not buffered: lower drive current capability, but also lower current consumption */ |
269 | #define LL_DAC_OUTPUT_BUFFER_DISABLE (DAC_CR_BOFF1) /*!< The selected DAC channel output is not buffered: lower drive current capability, but also lower current consumption */ |
| 294 | /** |
270 | /** |
| 295 | * @} |
271 | * @} |
| 296 | */ |
272 | */ |
| 297 | 273 | ||
| 298 | - | ||
| 299 | /** @defgroup DAC_LL_EC_RESOLUTION DAC channel output resolution |
274 | /** @defgroup DAC_LL_EC_RESOLUTION DAC channel output resolution |
| 300 | * @{ |
275 | * @{ |
| 301 | */ |
276 | */ |
| 302 | #define LL_DAC_RESOLUTION_12B 0x00000000U /*!< DAC channel resolution 12 bits */ |
277 | #define LL_DAC_RESOLUTION_12B 0x00000000U /*!< DAC channel resolution 12 bits */ |
| 303 | #define LL_DAC_RESOLUTION_8B 0x00000002U /*!< DAC channel resolution 8 bits */ |
278 | #define LL_DAC_RESOLUTION_8B 0x00000002U /*!< DAC channel resolution 8 bits */ |
| Line 309... | Line 284... | ||
| 309 | * @{ |
284 | * @{ |
| 310 | */ |
285 | */ |
| 311 | /* List of DAC registers intended to be used (most commonly) with */ |
286 | /* List of DAC registers intended to be used (most commonly) with */ |
| 312 | /* DMA transfer. */ |
287 | /* DMA transfer. */ |
| 313 | /* Refer to function @ref LL_DAC_DMA_GetRegAddr(). */ |
288 | /* Refer to function @ref LL_DAC_DMA_GetRegAddr(). */ |
| 314 | #define LL_DAC_DMA_REG_DATA_12BITS_RIGHT_ALIGNED DAC_REG_DHR12RX_REGOFFSET_MASK /*!< DAC channel data holding register 12 bits right aligned */ |
289 | #define LL_DAC_DMA_REG_DATA_12BITS_RIGHT_ALIGNED DAC_REG_DHR12RX_REGOFFSET_BITOFFSET_POS /*!< DAC channel data holding register 12 bits right aligned */ |
| 315 | #define LL_DAC_DMA_REG_DATA_12BITS_LEFT_ALIGNED DAC_REG_DHR12LX_REGOFFSET_MASK /*!< DAC channel data holding register 12 bits left aligned */ |
290 | #define LL_DAC_DMA_REG_DATA_12BITS_LEFT_ALIGNED DAC_REG_DHR12LX_REGOFFSET_BITOFFSET_POS /*!< DAC channel data holding register 12 bits left aligned */ |
| 316 | #define LL_DAC_DMA_REG_DATA_8BITS_RIGHT_ALIGNED DAC_REG_DHR8RX_REGOFFSET_MASK /*!< DAC channel data holding register 8 bits right aligned */ |
291 | #define LL_DAC_DMA_REG_DATA_8BITS_RIGHT_ALIGNED DAC_REG_DHR8RX_REGOFFSET_BITOFFSET_POS /*!< DAC channel data holding register 8 bits right aligned */ |
| 317 | /** |
292 | /** |
| 318 | * @} |
293 | * @} |
| 319 | */ |
294 | */ |
| 320 | 295 | ||
| 321 | /** @defgroup DAC_LL_EC_HW_DELAYS Definitions of DAC hardware constraints delays |
296 | /** @defgroup DAC_LL_EC_HW_DELAYS Definitions of DAC hardware constraints delays |
| 322 | * @note Only DAC IP HW delays are defined in DAC LL driver driver, |
297 | * @note Only DAC peripheral HW delays are defined in DAC LL driver driver, |
| 323 | * not timeout values. |
298 | * not timeout values. |
| 324 | * For details on delays values, refer to descriptions in source code |
299 | * For details on delays values, refer to descriptions in source code |
| 325 | * above each literal definition. |
300 | * above each literal definition. |
| 326 | * @{ |
301 | * @{ |
| 327 | */ |
302 | */ |
| Line 350... | Line 325... | ||
| 350 | /* - load impedance of 5kOhm min, 50pF max */ |
325 | /* - load impedance of 5kOhm min, 50pF max */ |
| 351 | /* Literal set to maximum value (refer to device datasheet, */ |
326 | /* Literal set to maximum value (refer to device datasheet, */ |
| 352 | /* parameter "tSETTLING"). */ |
327 | /* parameter "tSETTLING"). */ |
| 353 | /* Unit: us */ |
328 | /* Unit: us */ |
| 354 | #define LL_DAC_DELAY_VOLTAGE_SETTLING_US 12U /*!< Delay for DAC channel voltage settling time */ |
329 | #define LL_DAC_DELAY_VOLTAGE_SETTLING_US 12U /*!< Delay for DAC channel voltage settling time */ |
| - | 330 | ||
| 355 | /** |
331 | /** |
| 356 | * @} |
332 | * @} |
| 357 | */ |
333 | */ |
| 358 | 334 | ||
| 359 | /** |
335 | /** |
| Line 422... | Line 398... | ||
| 422 | * @retval Returned value can be one of the following values: |
398 | * @retval Returned value can be one of the following values: |
| 423 | * @arg @ref LL_DAC_CHANNEL_1 |
399 | * @arg @ref LL_DAC_CHANNEL_1 |
| 424 | * @arg @ref LL_DAC_CHANNEL_2 |
400 | * @arg @ref LL_DAC_CHANNEL_2 |
| 425 | */ |
401 | */ |
| 426 | #define __LL_DAC_DECIMAL_NB_TO_CHANNEL(__DECIMAL_NB__) \ |
402 | #define __LL_DAC_DECIMAL_NB_TO_CHANNEL(__DECIMAL_NB__) \ |
| 427 | (((__DECIMAL_NB__) == 1U) \ |
403 | (((__DECIMAL_NB__) == 1U) \ |
| 428 | ? ( \ |
404 | ? ( \ |
| 429 | LL_DAC_CHANNEL_1 \ |
405 | LL_DAC_CHANNEL_1 \ |
| 430 | ) \ |
406 | ) \ |
| 431 | : \ |
407 | : \ |
| 432 | (((__DECIMAL_NB__) == 2U) \ |
408 | (((__DECIMAL_NB__) == 2U) \ |
| 433 | ? ( \ |
409 | ? ( \ |
| 434 | LL_DAC_CHANNEL_2 \ |
410 | LL_DAC_CHANNEL_2 \ |
| 435 | ) \ |
411 | ) \ |
| 436 | : \ |
412 | : \ |
| 437 | ( \ |
413 | ( \ |
| 438 | 0 \ |
414 | 0U \ |
| 439 | ) \ |
415 | ) \ |
| 440 | ) \ |
416 | ) \ |
| 441 | ) |
417 | ) |
| 442 | 418 | ||
| 443 | /** |
419 | /** |
| Line 490... | Line 466... | ||
| 490 | 466 | ||
| 491 | /* Exported functions --------------------------------------------------------*/ |
467 | /* Exported functions --------------------------------------------------------*/ |
| 492 | /** @defgroup DAC_LL_Exported_Functions DAC Exported Functions |
468 | /** @defgroup DAC_LL_Exported_Functions DAC Exported Functions |
| 493 | * @{ |
469 | * @{ |
| 494 | */ |
470 | */ |
| 495 | /** @defgroup DAC_LL_EF_Configuration Configuration of DAC channels |
- | |
| 496 | * @{ |
- | |
| 497 | */ |
- | |
| 498 | - | ||
| 499 | /** |
471 | /** |
| 500 | * @brief Set the conversion trigger source for the selected DAC channel. |
472 | * @brief Set the conversion trigger source for the selected DAC channel. |
| 501 | * @note For conversion trigger source to be effective, DAC trigger |
473 | * @note For conversion trigger source to be effective, DAC trigger |
| 502 | * must be enabled using function @ref LL_DAC_EnableTrigger(). |
474 | * must be enabled using function @ref LL_DAC_EnableTrigger(). |
| 503 | * @note To set conversion trigger source, DAC channel must be disabled. |
475 | * @note To set conversion trigger source, DAC channel must be disabled. |
| Line 510... | Line 482... | ||
| 510 | * @param DAC_Channel This parameter can be one of the following values: |
482 | * @param DAC_Channel This parameter can be one of the following values: |
| 511 | * @arg @ref LL_DAC_CHANNEL_1 |
483 | * @arg @ref LL_DAC_CHANNEL_1 |
| 512 | * @arg @ref LL_DAC_CHANNEL_2 |
484 | * @arg @ref LL_DAC_CHANNEL_2 |
| 513 | * @param TriggerSource This parameter can be one of the following values: |
485 | * @param TriggerSource This parameter can be one of the following values: |
| 514 | * @arg @ref LL_DAC_TRIG_SOFTWARE |
486 | * @arg @ref LL_DAC_TRIG_SOFTWARE |
| - | 487 | * @arg @ref LL_DAC_TRIG_EXT_TIM2_TRGO |
|
| 515 | * @arg @ref LL_DAC_TRIG_EXT_TIM3_TRGO |
488 | * @arg @ref LL_DAC_TRIG_EXT_TIM3_TRGO |
| 516 | * @arg @ref LL_DAC_TRIG_EXT_TIM15_TRGO |
- | |
| 517 | * @arg @ref LL_DAC_TRIG_EXT_TIM8_TRGO |
- | |
| 518 | * @arg @ref LL_DAC_TRIG_EXT_TIM7_TRGO |
- | |
| 519 | * @arg @ref LL_DAC_TRIG_EXT_TIM6_TRGO |
- | |
| 520 | * @arg @ref LL_DAC_TRIG_EXT_TIM5_TRGO |
- | |
| 521 | * @arg @ref LL_DAC_TRIG_EXT_TIM4_TRGO |
489 | * @arg @ref LL_DAC_TRIG_EXT_TIM4_TRGO |
| - | 490 | * @arg @ref LL_DAC_TRIG_EXT_TIM5_TRGO |
|
| - | 491 | * @arg @ref LL_DAC_TRIG_EXT_TIM6_TRGO |
|
| 522 | * @arg @ref LL_DAC_TRIG_EXT_TIM2_TRGO |
492 | * @arg @ref LL_DAC_TRIG_EXT_TIM7_TRGO |
| - | 493 | * @arg @ref LL_DAC_TRIG_EXT_TIM15_TRGO |
|
| 523 | * @arg @ref LL_DAC_TRIG_EXT_EXTI_LINE9 |
494 | * @arg @ref LL_DAC_TRIG_EXT_EXTI_LINE9 |
| 524 | * @retval None |
495 | * @retval None |
| 525 | */ |
496 | */ |
| 526 | __STATIC_INLINE void LL_DAC_SetTriggerSource(DAC_TypeDef *DACx, uint32_t DAC_Channel, uint32_t TriggerSource) |
497 | __STATIC_INLINE void LL_DAC_SetTriggerSource(DAC_TypeDef *DACx, uint32_t DAC_Channel, uint32_t TriggerSource) |
| 527 | { |
498 | { |
| Line 542... | Line 513... | ||
| 542 | * @param DAC_Channel This parameter can be one of the following values: |
513 | * @param DAC_Channel This parameter can be one of the following values: |
| 543 | * @arg @ref LL_DAC_CHANNEL_1 |
514 | * @arg @ref LL_DAC_CHANNEL_1 |
| 544 | * @arg @ref LL_DAC_CHANNEL_2 |
515 | * @arg @ref LL_DAC_CHANNEL_2 |
| 545 | * @retval Returned value can be one of the following values: |
516 | * @retval Returned value can be one of the following values: |
| 546 | * @arg @ref LL_DAC_TRIG_SOFTWARE |
517 | * @arg @ref LL_DAC_TRIG_SOFTWARE |
| - | 518 | * @arg @ref LL_DAC_TRIG_EXT_TIM2_TRGO |
|
| 547 | * @arg @ref LL_DAC_TRIG_EXT_TIM3_TRGO |
519 | * @arg @ref LL_DAC_TRIG_EXT_TIM3_TRGO |
| 548 | * @arg @ref LL_DAC_TRIG_EXT_TIM15_TRGO |
- | |
| 549 | * @arg @ref LL_DAC_TRIG_EXT_TIM8_TRGO |
- | |
| 550 | * @arg @ref LL_DAC_TRIG_EXT_TIM7_TRGO |
- | |
| 551 | * @arg @ref LL_DAC_TRIG_EXT_TIM6_TRGO |
- | |
| 552 | * @arg @ref LL_DAC_TRIG_EXT_TIM5_TRGO |
- | |
| 553 | * @arg @ref LL_DAC_TRIG_EXT_TIM4_TRGO |
520 | * @arg @ref LL_DAC_TRIG_EXT_TIM4_TRGO |
| - | 521 | * @arg @ref LL_DAC_TRIG_EXT_TIM5_TRGO |
|
| - | 522 | * @arg @ref LL_DAC_TRIG_EXT_TIM6_TRGO |
|
| 554 | * @arg @ref LL_DAC_TRIG_EXT_TIM2_TRGO |
523 | * @arg @ref LL_DAC_TRIG_EXT_TIM7_TRGO |
| - | 524 | * @arg @ref LL_DAC_TRIG_EXT_TIM15_TRGO |
|
| 555 | * @arg @ref LL_DAC_TRIG_EXT_EXTI_LINE9 |
525 | * @arg @ref LL_DAC_TRIG_EXT_EXTI_LINE9 |
| 556 | */ |
526 | */ |
| 557 | __STATIC_INLINE uint32_t LL_DAC_GetTriggerSource(DAC_TypeDef *DACx, uint32_t DAC_Channel) |
527 | __STATIC_INLINE uint32_t LL_DAC_GetTriggerSource(DAC_TypeDef *DACx, uint32_t DAC_Channel) |
| 558 | { |
528 | { |
| 559 | return (uint32_t)(READ_BIT(DACx->CR, DAC_CR_TSEL1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK)) |
529 | return (uint32_t)(READ_BIT(DACx->CR, DAC_CR_TSEL1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK)) |
| Line 639... | Line 609... | ||
| 639 | DAC_CR_MAMP1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK), |
609 | DAC_CR_MAMP1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK), |
| 640 | NoiseLFSRMask << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK)); |
610 | NoiseLFSRMask << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK)); |
| 641 | } |
611 | } |
| 642 | 612 | ||
| 643 | /** |
613 | /** |
| 644 | * @brief Set the noise waveform generation for the selected DAC channel: |
614 | * @brief Get the noise waveform generation for the selected DAC channel: |
| 645 | * Noise mode and parameters LFSR (linear feedback shift register). |
615 | * Noise mode and parameters LFSR (linear feedback shift register). |
| 646 | * @rmtoll CR MAMP1 LL_DAC_GetWaveNoiseLFSR\n |
616 | * @rmtoll CR MAMP1 LL_DAC_GetWaveNoiseLFSR\n |
| 647 | * CR MAMP2 LL_DAC_GetWaveNoiseLFSR |
617 | * CR MAMP2 LL_DAC_GetWaveNoiseLFSR |
| 648 | * @param DACx DAC instance |
618 | * @param DACx DAC instance |
| 649 | * @param DAC_Channel This parameter can be one of the following values: |
619 | * @param DAC_Channel This parameter can be one of the following values: |
| Line 697... | Line 667... | ||
| 697 | * @arg @ref LL_DAC_TRIANGLE_AMPLITUDE_1023 |
667 | * @arg @ref LL_DAC_TRIANGLE_AMPLITUDE_1023 |
| 698 | * @arg @ref LL_DAC_TRIANGLE_AMPLITUDE_2047 |
668 | * @arg @ref LL_DAC_TRIANGLE_AMPLITUDE_2047 |
| 699 | * @arg @ref LL_DAC_TRIANGLE_AMPLITUDE_4095 |
669 | * @arg @ref LL_DAC_TRIANGLE_AMPLITUDE_4095 |
| 700 | * @retval None |
670 | * @retval None |
| 701 | */ |
671 | */ |
| 702 | __STATIC_INLINE void LL_DAC_SetWaveTriangleAmplitude(DAC_TypeDef *DACx, uint32_t DAC_Channel, uint32_t TriangleAmplitude) |
672 | __STATIC_INLINE void LL_DAC_SetWaveTriangleAmplitude(DAC_TypeDef *DACx, uint32_t DAC_Channel, |
| - | 673 | uint32_t TriangleAmplitude) |
|
| 703 | { |
674 | { |
| 704 | MODIFY_REG(DACx->CR, |
675 | MODIFY_REG(DACx->CR, |
| 705 | DAC_CR_MAMP1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK), |
676 | DAC_CR_MAMP1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK), |
| 706 | TriangleAmplitude << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK)); |
677 | TriangleAmplitude << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK)); |
| 707 | } |
678 | } |
| 708 | 679 | ||
| 709 | /** |
680 | /** |
| 710 | * @brief Set the triangle waveform generation for the selected DAC channel: |
681 | * @brief Get the triangle waveform generation for the selected DAC channel: |
| 711 | * triangle mode and amplitude. |
682 | * triangle mode and amplitude. |
| 712 | * @rmtoll CR MAMP1 LL_DAC_GetWaveTriangleAmplitude\n |
683 | * @rmtoll CR MAMP1 LL_DAC_GetWaveTriangleAmplitude\n |
| 713 | * CR MAMP2 LL_DAC_GetWaveTriangleAmplitude |
684 | * CR MAMP2 LL_DAC_GetWaveTriangleAmplitude |
| 714 | * @param DACx DAC instance |
685 | * @param DACx DAC instance |
| 715 | * @param DAC_Channel This parameter can be one of the following values: |
686 | * @param DAC_Channel This parameter can be one of the following values: |
| Line 830... | Line 801... | ||
| 830 | * @arg @ref LL_DAC_CHANNEL_2 |
801 | * @arg @ref LL_DAC_CHANNEL_2 |
| 831 | * @retval State of bit (1 or 0). |
802 | * @retval State of bit (1 or 0). |
| 832 | */ |
803 | */ |
| 833 | __STATIC_INLINE uint32_t LL_DAC_IsDMAReqEnabled(DAC_TypeDef *DACx, uint32_t DAC_Channel) |
804 | __STATIC_INLINE uint32_t LL_DAC_IsDMAReqEnabled(DAC_TypeDef *DACx, uint32_t DAC_Channel) |
| 834 | { |
805 | { |
| 835 | return (READ_BIT(DACx->CR, |
806 | return ((READ_BIT(DACx->CR, |
| 836 | DAC_CR_DMAEN1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK)) |
807 | DAC_CR_DMAEN1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK)) |
| 837 | == (DAC_CR_DMAEN1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK))); |
808 | == (DAC_CR_DMAEN1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK))) ? 1UL : 0UL); |
| 838 | } |
809 | } |
| 839 | 810 | ||
| 840 | /** |
811 | /** |
| 841 | * @brief Function to help to configure DMA transfer to DAC: retrieve the |
812 | * @brief Function to help to configure DMA transfer to DAC: retrieve the |
| 842 | * DAC register address from DAC instance and a list of DAC registers |
813 | * DAC register address from DAC instance and a list of DAC registers |
| Line 870... | Line 841... | ||
| 870 | */ |
841 | */ |
| 871 | __STATIC_INLINE uint32_t LL_DAC_DMA_GetRegAddr(DAC_TypeDef *DACx, uint32_t DAC_Channel, uint32_t Register) |
842 | __STATIC_INLINE uint32_t LL_DAC_DMA_GetRegAddr(DAC_TypeDef *DACx, uint32_t DAC_Channel, uint32_t Register) |
| 872 | { |
843 | { |
| 873 | /* Retrieve address of register DHR12Rx, DHR12Lx or DHR8Rx depending on */ |
844 | /* Retrieve address of register DHR12Rx, DHR12Lx or DHR8Rx depending on */ |
| 874 | /* DAC channel selected. */ |
845 | /* DAC channel selected. */ |
| 875 | return ((uint32_t)(__DAC_PTR_REG_OFFSET((DACx)->DHR12R1, __DAC_MASK_SHIFT(DAC_Channel, Register)))); |
846 | return ((uint32_t)(__DAC_PTR_REG_OFFSET((DACx)->DHR12R1, |
| - | 847 | ((DAC_Channel >> (Register & 0x1FUL)) & DAC_REG_DHR_REGOFFSET_MASK_POSBIT0)))); |
|
| 876 | } |
848 | } |
| 877 | /** |
849 | /** |
| 878 | * @} |
850 | * @} |
| 879 | */ |
851 | */ |
| 880 | 852 | ||
| Line 928... | Line 900... | ||
| 928 | * @arg @ref LL_DAC_CHANNEL_2 |
900 | * @arg @ref LL_DAC_CHANNEL_2 |
| 929 | * @retval State of bit (1 or 0). |
901 | * @retval State of bit (1 or 0). |
| 930 | */ |
902 | */ |
| 931 | __STATIC_INLINE uint32_t LL_DAC_IsEnabled(DAC_TypeDef *DACx, uint32_t DAC_Channel) |
903 | __STATIC_INLINE uint32_t LL_DAC_IsEnabled(DAC_TypeDef *DACx, uint32_t DAC_Channel) |
| 932 | { |
904 | { |
| 933 | return (READ_BIT(DACx->CR, |
905 | return ((READ_BIT(DACx->CR, |
| 934 | DAC_CR_EN1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK)) |
906 | DAC_CR_EN1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK)) |
| 935 | == (DAC_CR_EN1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK))); |
907 | == (DAC_CR_EN1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK))) ? 1UL : 0UL); |
| 936 | } |
908 | } |
| 937 | 909 | ||
| 938 | /** |
910 | /** |
| 939 | * @brief Enable DAC trigger of the selected channel. |
911 | * @brief Enable DAC trigger of the selected channel. |
| 940 | * @note - If DAC trigger is disabled, DAC conversion is performed |
912 | * @note - If DAC trigger is disabled, DAC conversion is performed |
| Line 986... | Line 958... | ||
| 986 | * @arg @ref LL_DAC_CHANNEL_2 |
958 | * @arg @ref LL_DAC_CHANNEL_2 |
| 987 | * @retval State of bit (1 or 0). |
959 | * @retval State of bit (1 or 0). |
| 988 | */ |
960 | */ |
| 989 | __STATIC_INLINE uint32_t LL_DAC_IsTriggerEnabled(DAC_TypeDef *DACx, uint32_t DAC_Channel) |
961 | __STATIC_INLINE uint32_t LL_DAC_IsTriggerEnabled(DAC_TypeDef *DACx, uint32_t DAC_Channel) |
| 990 | { |
962 | { |
| 991 | return (READ_BIT(DACx->CR, |
963 | return ((READ_BIT(DACx->CR, |
| 992 | DAC_CR_TEN1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK)) |
964 | DAC_CR_TEN1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK)) |
| 993 | == (DAC_CR_TEN1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK))); |
965 | == (DAC_CR_TEN1 << (DAC_Channel & DAC_CR_CHX_BITOFFSET_MASK))) ? 1UL : 0UL); |
| 994 | } |
966 | } |
| 995 | 967 | ||
| 996 | /** |
968 | /** |
| 997 | * @brief Trig DAC conversion by software for the selected DAC channel. |
969 | * @brief Trig DAC conversion by software for the selected DAC channel. |
| 998 | * @note Preliminarily, DAC trigger must be set to software trigger |
970 | * @note Preliminarily, DAC trigger must be set to software trigger |
| - | 971 | * using function |
|
| - | 972 | * @ref LL_DAC_Init() |
|
| 999 | * using function @ref LL_DAC_SetTriggerSource() |
973 | * @ref LL_DAC_SetTriggerSource() |
| 1000 | * with parameter "LL_DAC_TRIGGER_SOFTWARE". |
974 | * with parameter "LL_DAC_TRIGGER_SOFTWARE". |
| 1001 | * and DAC trigger must be enabled using |
975 | * and DAC trigger must be enabled using |
| 1002 | * function @ref LL_DAC_EnableTrigger(). |
976 | * function @ref LL_DAC_EnableTrigger(). |
| 1003 | * @note For devices featuring DAC with 2 channels: this function |
977 | * @note For devices featuring DAC with 2 channels: this function |
| 1004 | * can perform a SW start of both DAC channels simultaneously. |
978 | * can perform a SW start of both DAC channels simultaneously. |
| Line 1031... | Line 1005... | ||
| 1031 | * @param Data Value between Min_Data=0x000 and Max_Data=0xFFF |
1005 | * @param Data Value between Min_Data=0x000 and Max_Data=0xFFF |
| 1032 | * @retval None |
1006 | * @retval None |
| 1033 | */ |
1007 | */ |
| 1034 | __STATIC_INLINE void LL_DAC_ConvertData12RightAligned(DAC_TypeDef *DACx, uint32_t DAC_Channel, uint32_t Data) |
1008 | __STATIC_INLINE void LL_DAC_ConvertData12RightAligned(DAC_TypeDef *DACx, uint32_t DAC_Channel, uint32_t Data) |
| 1035 | { |
1009 | { |
| 1036 | register uint32_t *preg = __DAC_PTR_REG_OFFSET(DACx->DHR12R1, __DAC_MASK_SHIFT(DAC_Channel, DAC_REG_DHR12RX_REGOFFSET_MASK)); |
1010 | __IO uint32_t *preg = __DAC_PTR_REG_OFFSET(DACx->DHR12R1, (DAC_Channel >> DAC_REG_DHR12RX_REGOFFSET_BITOFFSET_POS) & DAC_REG_DHR_REGOFFSET_MASK_POSBIT0); |
| 1037 | 1011 | ||
| 1038 | MODIFY_REG(*preg, |
1012 | MODIFY_REG(*preg, |
| 1039 | DAC_DHR12R1_DACC1DHR, |
1013 | DAC_DHR12R1_DACC1DHR, |
| 1040 | Data); |
1014 | Data); |
| 1041 | } |
1015 | } |
| 1042 | 1016 | ||
| Line 1053... | Line 1027... | ||
| 1053 | * @param Data Value between Min_Data=0x000 and Max_Data=0xFFF |
1027 | * @param Data Value between Min_Data=0x000 and Max_Data=0xFFF |
| 1054 | * @retval None |
1028 | * @retval None |
| 1055 | */ |
1029 | */ |
| 1056 | __STATIC_INLINE void LL_DAC_ConvertData12LeftAligned(DAC_TypeDef *DACx, uint32_t DAC_Channel, uint32_t Data) |
1030 | __STATIC_INLINE void LL_DAC_ConvertData12LeftAligned(DAC_TypeDef *DACx, uint32_t DAC_Channel, uint32_t Data) |
| 1057 | { |
1031 | { |
| 1058 | register uint32_t *preg = __DAC_PTR_REG_OFFSET(DACx->DHR12R1, __DAC_MASK_SHIFT(DAC_Channel, DAC_REG_DHR12LX_REGOFFSET_MASK)); |
1032 | __IO uint32_t *preg = __DAC_PTR_REG_OFFSET(DACx->DHR12R1, (DAC_Channel >> DAC_REG_DHR12LX_REGOFFSET_BITOFFSET_POS) & DAC_REG_DHR_REGOFFSET_MASK_POSBIT0); |
| 1059 | 1033 | ||
| 1060 | MODIFY_REG(*preg, |
1034 | MODIFY_REG(*preg, |
| 1061 | DAC_DHR12L1_DACC1DHR, |
1035 | DAC_DHR12L1_DACC1DHR, |
| 1062 | Data); |
1036 | Data); |
| 1063 | } |
1037 | } |
| 1064 | 1038 | ||
| Line 1075... | Line 1049... | ||
| 1075 | * @param Data Value between Min_Data=0x00 and Max_Data=0xFF |
1049 | * @param Data Value between Min_Data=0x00 and Max_Data=0xFF |
| 1076 | * @retval None |
1050 | * @retval None |
| 1077 | */ |
1051 | */ |
| 1078 | __STATIC_INLINE void LL_DAC_ConvertData8RightAligned(DAC_TypeDef *DACx, uint32_t DAC_Channel, uint32_t Data) |
1052 | __STATIC_INLINE void LL_DAC_ConvertData8RightAligned(DAC_TypeDef *DACx, uint32_t DAC_Channel, uint32_t Data) |
| 1079 | { |
1053 | { |
| 1080 | register uint32_t *preg = __DAC_PTR_REG_OFFSET(DACx->DHR12R1, __DAC_MASK_SHIFT(DAC_Channel, DAC_REG_DHR8RX_REGOFFSET_MASK)); |
1054 | __IO uint32_t *preg = __DAC_PTR_REG_OFFSET(DACx->DHR12R1, (DAC_Channel >> DAC_REG_DHR8RX_REGOFFSET_BITOFFSET_POS) & DAC_REG_DHR_REGOFFSET_MASK_POSBIT0); |
| 1081 | 1055 | ||
| 1082 | MODIFY_REG(*preg, |
1056 | MODIFY_REG(*preg, |
| 1083 | DAC_DHR8R1_DACC1DHR, |
1057 | DAC_DHR8R1_DACC1DHR, |
| 1084 | Data); |
1058 | Data); |
| 1085 | } |
1059 | } |
| 1086 | 1060 | ||
| - | 1061 | ||
| 1087 | /** |
1062 | /** |
| 1088 | * @brief Set the data to be loaded in the data holding register |
1063 | * @brief Set the data to be loaded in the data holding register |
| 1089 | * in format 12 bits left alignment (LSB aligned on bit 0), |
1064 | * in format 12 bits left alignment (LSB aligned on bit 0), |
| 1090 | * for both DAC channels. |
1065 | * for both DAC channels. |
| 1091 | * @rmtoll DHR12RD DACC1DHR LL_DAC_ConvertDualData12RightAligned\n |
1066 | * @rmtoll DHR12RD DACC1DHR LL_DAC_ConvertDualData12RightAligned\n |
| Line 1093... | Line 1068... | ||
| 1093 | * @param DACx DAC instance |
1068 | * @param DACx DAC instance |
| 1094 | * @param DataChannel1 Value between Min_Data=0x000 and Max_Data=0xFFF |
1069 | * @param DataChannel1 Value between Min_Data=0x000 and Max_Data=0xFFF |
| 1095 | * @param DataChannel2 Value between Min_Data=0x000 and Max_Data=0xFFF |
1070 | * @param DataChannel2 Value between Min_Data=0x000 and Max_Data=0xFFF |
| 1096 | * @retval None |
1071 | * @retval None |
| 1097 | */ |
1072 | */ |
| 1098 | __STATIC_INLINE void LL_DAC_ConvertDualData12RightAligned(DAC_TypeDef *DACx, uint32_t DataChannel1, uint32_t DataChannel2) |
1073 | __STATIC_INLINE void LL_DAC_ConvertDualData12RightAligned(DAC_TypeDef *DACx, uint32_t DataChannel1, |
| - | 1074 | uint32_t DataChannel2) |
|
| 1099 | { |
1075 | { |
| 1100 | MODIFY_REG(DACx->DHR12RD, |
1076 | MODIFY_REG(DACx->DHR12RD, |
| 1101 | (DAC_DHR12RD_DACC2DHR | DAC_DHR12RD_DACC1DHR), |
1077 | (DAC_DHR12RD_DACC2DHR | DAC_DHR12RD_DACC1DHR), |
| 1102 | ((DataChannel2 << DAC_DHR12RD_DACC2DHR_BITOFFSET_POS) | DataChannel1)); |
1078 | ((DataChannel2 << DAC_DHR12RD_DACC2DHR_BITOFFSET_POS) | DataChannel1)); |
| 1103 | } |
1079 | } |
| Line 1111... | Line 1087... | ||
| 1111 | * @param DACx DAC instance |
1087 | * @param DACx DAC instance |
| 1112 | * @param DataChannel1 Value between Min_Data=0x000 and Max_Data=0xFFF |
1088 | * @param DataChannel1 Value between Min_Data=0x000 and Max_Data=0xFFF |
| 1113 | * @param DataChannel2 Value between Min_Data=0x000 and Max_Data=0xFFF |
1089 | * @param DataChannel2 Value between Min_Data=0x000 and Max_Data=0xFFF |
| 1114 | * @retval None |
1090 | * @retval None |
| 1115 | */ |
1091 | */ |
| 1116 | __STATIC_INLINE void LL_DAC_ConvertDualData12LeftAligned(DAC_TypeDef *DACx, uint32_t DataChannel1, uint32_t DataChannel2) |
1092 | __STATIC_INLINE void LL_DAC_ConvertDualData12LeftAligned(DAC_TypeDef *DACx, uint32_t DataChannel1, |
| - | 1093 | uint32_t DataChannel2) |
|
| 1117 | { |
1094 | { |
| 1118 | /* Note: Data of DAC channel 2 shift value subtracted of 4 because */ |
1095 | /* Note: Data of DAC channel 2 shift value subtracted of 4 because */ |
| 1119 | /* data on 16 bits and DAC channel 2 bits field is on the 12 MSB, */ |
1096 | /* data on 16 bits and DAC channel 2 bits field is on the 12 MSB, */ |
| 1120 | /* the 4 LSB must be taken into account for the shift value. */ |
1097 | /* the 4 LSB must be taken into account for the shift value. */ |
| 1121 | MODIFY_REG(DACx->DHR12LD, |
1098 | MODIFY_REG(DACx->DHR12LD, |
| Line 1132... | Line 1109... | ||
| 1132 | * @param DACx DAC instance |
1109 | * @param DACx DAC instance |
| 1133 | * @param DataChannel1 Value between Min_Data=0x00 and Max_Data=0xFF |
1110 | * @param DataChannel1 Value between Min_Data=0x00 and Max_Data=0xFF |
| 1134 | * @param DataChannel2 Value between Min_Data=0x00 and Max_Data=0xFF |
1111 | * @param DataChannel2 Value between Min_Data=0x00 and Max_Data=0xFF |
| 1135 | * @retval None |
1112 | * @retval None |
| 1136 | */ |
1113 | */ |
| 1137 | __STATIC_INLINE void LL_DAC_ConvertDualData8RightAligned(DAC_TypeDef *DACx, uint32_t DataChannel1, uint32_t DataChannel2) |
1114 | __STATIC_INLINE void LL_DAC_ConvertDualData8RightAligned(DAC_TypeDef *DACx, uint32_t DataChannel1, |
| - | 1115 | uint32_t DataChannel2) |
|
| 1138 | { |
1116 | { |
| 1139 | MODIFY_REG(DACx->DHR8RD, |
1117 | MODIFY_REG(DACx->DHR8RD, |
| 1140 | (DAC_DHR8RD_DACC2DHR | DAC_DHR8RD_DACC1DHR), |
1118 | (DAC_DHR8RD_DACC2DHR | DAC_DHR8RD_DACC1DHR), |
| 1141 | ((DataChannel2 << DAC_DHR8RD_DACC2DHR_BITOFFSET_POS) | DataChannel1)); |
1119 | ((DataChannel2 << DAC_DHR8RD_DACC2DHR_BITOFFSET_POS) | DataChannel1)); |
| 1142 | } |
1120 | } |
| 1143 | 1121 | ||
| - | 1122 | ||
| 1144 | /** |
1123 | /** |
| 1145 | * @brief Retrieve output data currently generated for the selected DAC channel. |
1124 | * @brief Retrieve output data currently generated for the selected DAC channel. |
| 1146 | * @note Whatever alignment and resolution settings |
1125 | * @note Whatever alignment and resolution settings |
| 1147 | * (using functions "LL_DAC_ConvertData{8; 12}{Right; Left} Aligned()": |
1126 | * (using functions "LL_DAC_ConvertData{8; 12}{Right; Left} Aligned()": |
| 1148 | * @ref LL_DAC_ConvertData12RightAligned(), ...), |
1127 | * @ref LL_DAC_ConvertData12RightAligned(), ...), |
| Line 1155... | Line 1134... | ||
| 1155 | * @arg @ref LL_DAC_CHANNEL_2 |
1134 | * @arg @ref LL_DAC_CHANNEL_2 |
| 1156 | * @retval Value between Min_Data=0x000 and Max_Data=0xFFF |
1135 | * @retval Value between Min_Data=0x000 and Max_Data=0xFFF |
| 1157 | */ |
1136 | */ |
| 1158 | __STATIC_INLINE uint32_t LL_DAC_RetrieveOutputData(DAC_TypeDef *DACx, uint32_t DAC_Channel) |
1137 | __STATIC_INLINE uint32_t LL_DAC_RetrieveOutputData(DAC_TypeDef *DACx, uint32_t DAC_Channel) |
| 1159 | { |
1138 | { |
| 1160 | register uint32_t *preg = __DAC_PTR_REG_OFFSET(DACx->DOR1, __DAC_MASK_SHIFT(DAC_Channel, DAC_REG_DORX_REGOFFSET_MASK)); |
1139 | __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); |
| 1161 | 1140 | ||
| 1162 | return (uint16_t) READ_BIT(*preg, DAC_DOR1_DACC1DOR); |
1141 | return (uint16_t) READ_BIT(*preg, DAC_DOR1_DACC1DOR); |
| 1163 | } |
1142 | } |
| 1164 | 1143 | ||
| 1165 | /** |
1144 | /** |
| 1166 | * @} |
1145 | * @} |
| Line 1176... | Line 1155... | ||
| 1176 | * @param DACx DAC instance |
1155 | * @param DACx DAC instance |
| 1177 | * @retval State of bit (1 or 0). |
1156 | * @retval State of bit (1 or 0). |
| 1178 | */ |
1157 | */ |
| 1179 | __STATIC_INLINE uint32_t LL_DAC_IsActiveFlag_DMAUDR1(DAC_TypeDef *DACx) |
1158 | __STATIC_INLINE uint32_t LL_DAC_IsActiveFlag_DMAUDR1(DAC_TypeDef *DACx) |
| 1180 | { |
1159 | { |
| 1181 | return (READ_BIT(DACx->SR, LL_DAC_FLAG_DMAUDR1) == (LL_DAC_FLAG_DMAUDR1)); |
1160 | return ((READ_BIT(DACx->SR, LL_DAC_FLAG_DMAUDR1) == (LL_DAC_FLAG_DMAUDR1)) ? 1UL : 0UL); |
| 1182 | } |
1161 | } |
| 1183 | #endif /* DAC_SR_DMAUDR1 */ |
1162 | #endif /* DAC_SR_DMAUDR1 */ |
| 1184 | 1163 | ||
| 1185 | #if defined(DAC_SR_DMAUDR2) |
1164 | #if defined(DAC_SR_DMAUDR2) |
| 1186 | /** |
1165 | /** |
| Line 1189... | Line 1168... | ||
| 1189 | * @param DACx DAC instance |
1168 | * @param DACx DAC instance |
| 1190 | * @retval State of bit (1 or 0). |
1169 | * @retval State of bit (1 or 0). |
| 1191 | */ |
1170 | */ |
| 1192 | __STATIC_INLINE uint32_t LL_DAC_IsActiveFlag_DMAUDR2(DAC_TypeDef *DACx) |
1171 | __STATIC_INLINE uint32_t LL_DAC_IsActiveFlag_DMAUDR2(DAC_TypeDef *DACx) |
| 1193 | { |
1172 | { |
| 1194 | return (READ_BIT(DACx->SR, LL_DAC_FLAG_DMAUDR2) == (LL_DAC_FLAG_DMAUDR2)); |
1173 | return ((READ_BIT(DACx->SR, LL_DAC_FLAG_DMAUDR2) == (LL_DAC_FLAG_DMAUDR2)) ? 1UL : 0UL); |
| 1195 | } |
1174 | } |
| 1196 | #endif /* DAC_SR_DMAUDR2 */ |
1175 | #endif /* DAC_SR_DMAUDR2 */ |
| 1197 | 1176 | ||
| 1198 | #if defined(DAC_SR_DMAUDR1) |
1177 | #if defined(DAC_SR_DMAUDR1) |
| 1199 | /** |
1178 | /** |
| Line 1222... | Line 1201... | ||
| 1222 | #endif /* DAC_SR_DMAUDR2 */ |
1201 | #endif /* DAC_SR_DMAUDR2 */ |
| 1223 | 1202 | ||
| 1224 | /** |
1203 | /** |
| 1225 | * @} |
1204 | * @} |
| 1226 | */ |
1205 | */ |
| - | 1206 | ||
| 1227 | /** @defgroup DAC_LL_EF_IT_Management IT management |
1207 | /** @defgroup DAC_LL_EF_IT_Management IT management |
| 1228 | * @{ |
1208 | * @{ |
| 1229 | */ |
1209 | */ |
| 1230 | - | ||
| 1231 | #if defined(DAC_CR_DMAUDRIE1) |
1210 | #if defined(DAC_CR_DMAUDRIE1) |
| 1232 | /** |
1211 | /** |
| 1233 | * @brief Enable DMA underrun interrupt for DAC channel 1 |
1212 | * @brief Enable DMA underrun interrupt for DAC channel 1 |
| 1234 | * @rmtoll CR DMAUDRIE1 LL_DAC_EnableIT_DMAUDR1 |
1213 | * @rmtoll CR DMAUDRIE1 LL_DAC_EnableIT_DMAUDR1 |
| 1235 | * @param DACx DAC instance |
1214 | * @param DACx DAC instance |
| Line 1287... | Line 1266... | ||
| 1287 | * @param DACx DAC instance |
1266 | * @param DACx DAC instance |
| 1288 | * @retval State of bit (1 or 0). |
1267 | * @retval State of bit (1 or 0). |
| 1289 | */ |
1268 | */ |
| 1290 | __STATIC_INLINE uint32_t LL_DAC_IsEnabledIT_DMAUDR1(DAC_TypeDef *DACx) |
1269 | __STATIC_INLINE uint32_t LL_DAC_IsEnabledIT_DMAUDR1(DAC_TypeDef *DACx) |
| 1291 | { |
1270 | { |
| 1292 | return (READ_BIT(DACx->CR, LL_DAC_IT_DMAUDRIE1) == (LL_DAC_IT_DMAUDRIE1)); |
1271 | return ((READ_BIT(DACx->CR, LL_DAC_IT_DMAUDRIE1) == (LL_DAC_IT_DMAUDRIE1)) ? 1UL : 0UL); |
| 1293 | } |
1272 | } |
| 1294 | #endif /* DAC_CR_DMAUDRIE1 */ |
1273 | #endif /* DAC_CR_DMAUDRIE1 */ |
| 1295 | 1274 | ||
| 1296 | #if defined(DAC_CR_DMAUDRIE2) |
1275 | #if defined(DAC_CR_DMAUDRIE2) |
| 1297 | /** |
1276 | /** |
| Line 1300... | Line 1279... | ||
| 1300 | * @param DACx DAC instance |
1279 | * @param DACx DAC instance |
| 1301 | * @retval State of bit (1 or 0). |
1280 | * @retval State of bit (1 or 0). |
| 1302 | */ |
1281 | */ |
| 1303 | __STATIC_INLINE uint32_t LL_DAC_IsEnabledIT_DMAUDR2(DAC_TypeDef *DACx) |
1282 | __STATIC_INLINE uint32_t LL_DAC_IsEnabledIT_DMAUDR2(DAC_TypeDef *DACx) |
| 1304 | { |
1283 | { |
| 1305 | return (READ_BIT(DACx->CR, LL_DAC_IT_DMAUDRIE2) == (LL_DAC_IT_DMAUDRIE2)); |
1284 | return ((READ_BIT(DACx->CR, LL_DAC_IT_DMAUDRIE2) == (LL_DAC_IT_DMAUDRIE2)) ? 1UL : 0UL); |
| 1306 | } |
1285 | } |
| 1307 | #endif /* DAC_CR_DMAUDRIE2 */ |
1286 | #endif /* DAC_CR_DMAUDRIE2 */ |
| 1308 | 1287 | ||
| 1309 | /** |
1288 | /** |
| 1310 | * @} |
1289 | * @} |
| Line 1313... | Line 1292... | ||
| 1313 | #if defined(USE_FULL_LL_DRIVER) |
1292 | #if defined(USE_FULL_LL_DRIVER) |
| 1314 | /** @defgroup DAC_LL_EF_Init Initialization and de-initialization functions |
1293 | /** @defgroup DAC_LL_EF_Init Initialization and de-initialization functions |
| 1315 | * @{ |
1294 | * @{ |
| 1316 | */ |
1295 | */ |
| 1317 | 1296 | ||
| 1318 | ErrorStatus LL_DAC_DeInit(DAC_TypeDef* DACx); |
1297 | ErrorStatus LL_DAC_DeInit(DAC_TypeDef *DACx); |
| 1319 | ErrorStatus LL_DAC_Init(DAC_TypeDef* DACx, uint32_t DAC_Channel, LL_DAC_InitTypeDef* DAC_InitStruct); |
1298 | ErrorStatus LL_DAC_Init(DAC_TypeDef *DACx, uint32_t DAC_Channel, LL_DAC_InitTypeDef *DAC_InitStruct); |
| 1320 | void LL_DAC_StructInit(LL_DAC_InitTypeDef* DAC_InitStruct); |
1299 | void LL_DAC_StructInit(LL_DAC_InitTypeDef *DAC_InitStruct); |
| 1321 | 1300 | ||
| 1322 | /** |
1301 | /** |
| 1323 | * @} |
1302 | * @} |
| 1324 | */ |
1303 | */ |
| 1325 | #endif /* USE_FULL_LL_DRIVER */ |
1304 | #endif /* USE_FULL_LL_DRIVER */ |
| Line 1340... | Line 1319... | ||
| 1340 | 1319 | ||
| 1341 | #ifdef __cplusplus |
1320 | #ifdef __cplusplus |
| 1342 | } |
1321 | } |
| 1343 | #endif |
1322 | #endif |
| 1344 | 1323 | ||
| 1345 | #endif /* __STM32F1xx_LL_DAC_H */ |
1324 | #endif /* STM32F1xx_LL_DAC_H */ |
| 1346 | 1325 | ||
| 1347 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ |
1326 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ |