amiro-blt / Target / Demo / ARMCM4_STM32F405_Power_Management_GCC / Boot / lib / stdperiphlib / STM32F4xx_StdPeriph_Driver / inc / stm32f4xx_dac.h @ 69661903
History | View | Annotate | Download (14.6 KB)
1 |
/**
|
---|---|
2 |
******************************************************************************
|
3 |
* @file stm32f4xx_dac.h
|
4 |
* @author MCD Application Team
|
5 |
* @version V1.1.0
|
6 |
* @date 11-January-2013
|
7 |
* @brief This file contains all the functions prototypes for the DAC firmware
|
8 |
* library.
|
9 |
******************************************************************************
|
10 |
* @attention
|
11 |
*
|
12 |
* <h2><center>© COPYRIGHT 2013 STMicroelectronics</center></h2>
|
13 |
*
|
14 |
* Licensed under MCD-ST Liberty SW License Agreement V2, (the "License");
|
15 |
* You may not use this file except in compliance with the License.
|
16 |
* You may obtain a copy of the License at:
|
17 |
*
|
18 |
* http://www.st.com/software_license_agreement_liberty_v2
|
19 |
*
|
20 |
* Unless required by applicable law or agreed to in writing, software
|
21 |
* distributed under the License is distributed on an "AS IS" BASIS,
|
22 |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
23 |
* See the License for the specific language governing permissions and
|
24 |
* limitations under the License.
|
25 |
*
|
26 |
******************************************************************************
|
27 |
*/
|
28 |
|
29 |
/* Define to prevent recursive inclusion -------------------------------------*/
|
30 |
#ifndef __STM32F4xx_DAC_H
|
31 |
#define __STM32F4xx_DAC_H
|
32 |
|
33 |
#ifdef __cplusplus
|
34 |
extern "C" { |
35 |
#endif
|
36 |
|
37 |
/* Includes ------------------------------------------------------------------*/
|
38 |
#include "stm32f4xx.h" |
39 |
|
40 |
/** @addtogroup STM32F4xx_StdPeriph_Driver
|
41 |
* @{
|
42 |
*/
|
43 |
|
44 |
/** @addtogroup DAC
|
45 |
* @{
|
46 |
*/
|
47 |
|
48 |
/* Exported types ------------------------------------------------------------*/
|
49 |
|
50 |
/**
|
51 |
* @brief DAC Init structure definition
|
52 |
*/
|
53 |
|
54 |
typedef struct |
55 |
{ |
56 |
uint32_t DAC_Trigger; /*!< Specifies the external trigger for the selected DAC channel.
|
57 |
This parameter can be a value of @ref DAC_trigger_selection */
|
58 |
|
59 |
uint32_t DAC_WaveGeneration; /*!< Specifies whether DAC channel noise waves or triangle waves
|
60 |
are generated, or whether no wave is generated.
|
61 |
This parameter can be a value of @ref DAC_wave_generation */
|
62 |
|
63 |
uint32_t DAC_LFSRUnmask_TriangleAmplitude; /*!< Specifies the LFSR mask for noise wave generation or
|
64 |
the maximum amplitude triangle generation for the DAC channel.
|
65 |
This parameter can be a value of @ref DAC_lfsrunmask_triangleamplitude */
|
66 |
|
67 |
uint32_t DAC_OutputBuffer; /*!< Specifies whether the DAC channel output buffer is enabled or disabled.
|
68 |
This parameter can be a value of @ref DAC_output_buffer */
|
69 |
}DAC_InitTypeDef; |
70 |
|
71 |
/* Exported constants --------------------------------------------------------*/
|
72 |
|
73 |
/** @defgroup DAC_Exported_Constants
|
74 |
* @{
|
75 |
*/
|
76 |
|
77 |
/** @defgroup DAC_trigger_selection
|
78 |
* @{
|
79 |
*/
|
80 |
|
81 |
#define DAC_Trigger_None ((uint32_t)0x00000000) /*!< Conversion is automatic once the DAC1_DHRxxxx register |
82 |
has been loaded, and not by external trigger */
|
83 |
#define DAC_Trigger_T2_TRGO ((uint32_t)0x00000024) /*!< TIM2 TRGO selected as external conversion trigger for DAC channel */ |
84 |
#define DAC_Trigger_T4_TRGO ((uint32_t)0x0000002C) /*!< TIM4 TRGO selected as external conversion trigger for DAC channel */ |
85 |
#define DAC_Trigger_T5_TRGO ((uint32_t)0x0000001C) /*!< TIM5 TRGO selected as external conversion trigger for DAC channel */ |
86 |
#define DAC_Trigger_T6_TRGO ((uint32_t)0x00000004) /*!< TIM6 TRGO selected as external conversion trigger for DAC channel */ |
87 |
#define DAC_Trigger_T7_TRGO ((uint32_t)0x00000014) /*!< TIM7 TRGO selected as external conversion trigger for DAC channel */ |
88 |
#define DAC_Trigger_T8_TRGO ((uint32_t)0x0000000C) /*!< TIM8 TRGO selected as external conversion trigger for DAC channel */ |
89 |
|
90 |
#define DAC_Trigger_Ext_IT9 ((uint32_t)0x00000034) /*!< EXTI Line9 event selected as external conversion trigger for DAC channel */ |
91 |
#define DAC_Trigger_Software ((uint32_t)0x0000003C) /*!< Conversion started by software trigger for DAC channel */ |
92 |
|
93 |
#define IS_DAC_TRIGGER(TRIGGER) (((TRIGGER) == DAC_Trigger_None) || \
|
94 |
((TRIGGER) == DAC_Trigger_T6_TRGO) || \ |
95 |
((TRIGGER) == DAC_Trigger_T8_TRGO) || \ |
96 |
((TRIGGER) == DAC_Trigger_T7_TRGO) || \ |
97 |
((TRIGGER) == DAC_Trigger_T5_TRGO) || \ |
98 |
((TRIGGER) == DAC_Trigger_T2_TRGO) || \ |
99 |
((TRIGGER) == DAC_Trigger_T4_TRGO) || \ |
100 |
((TRIGGER) == DAC_Trigger_Ext_IT9) || \ |
101 |
((TRIGGER) == DAC_Trigger_Software)) |
102 |
|
103 |
/**
|
104 |
* @}
|
105 |
*/
|
106 |
|
107 |
/** @defgroup DAC_wave_generation
|
108 |
* @{
|
109 |
*/
|
110 |
|
111 |
#define DAC_WaveGeneration_None ((uint32_t)0x00000000) |
112 |
#define DAC_WaveGeneration_Noise ((uint32_t)0x00000040) |
113 |
#define DAC_WaveGeneration_Triangle ((uint32_t)0x00000080) |
114 |
#define IS_DAC_GENERATE_WAVE(WAVE) (((WAVE) == DAC_WaveGeneration_None) || \
|
115 |
((WAVE) == DAC_WaveGeneration_Noise) || \ |
116 |
((WAVE) == DAC_WaveGeneration_Triangle)) |
117 |
/**
|
118 |
* @}
|
119 |
*/
|
120 |
|
121 |
/** @defgroup DAC_lfsrunmask_triangleamplitude
|
122 |
* @{
|
123 |
*/
|
124 |
|
125 |
#define DAC_LFSRUnmask_Bit0 ((uint32_t)0x00000000) /*!< Unmask DAC channel LFSR bit0 for noise wave generation */ |
126 |
#define DAC_LFSRUnmask_Bits1_0 ((uint32_t)0x00000100) /*!< Unmask DAC channel LFSR bit[1:0] for noise wave generation */ |
127 |
#define DAC_LFSRUnmask_Bits2_0 ((uint32_t)0x00000200) /*!< Unmask DAC channel LFSR bit[2:0] for noise wave generation */ |
128 |
#define DAC_LFSRUnmask_Bits3_0 ((uint32_t)0x00000300) /*!< Unmask DAC channel LFSR bit[3:0] for noise wave generation */ |
129 |
#define DAC_LFSRUnmask_Bits4_0 ((uint32_t)0x00000400) /*!< Unmask DAC channel LFSR bit[4:0] for noise wave generation */ |
130 |
#define DAC_LFSRUnmask_Bits5_0 ((uint32_t)0x00000500) /*!< Unmask DAC channel LFSR bit[5:0] for noise wave generation */ |
131 |
#define DAC_LFSRUnmask_Bits6_0 ((uint32_t)0x00000600) /*!< Unmask DAC channel LFSR bit[6:0] for noise wave generation */ |
132 |
#define DAC_LFSRUnmask_Bits7_0 ((uint32_t)0x00000700) /*!< Unmask DAC channel LFSR bit[7:0] for noise wave generation */ |
133 |
#define DAC_LFSRUnmask_Bits8_0 ((uint32_t)0x00000800) /*!< Unmask DAC channel LFSR bit[8:0] for noise wave generation */ |
134 |
#define DAC_LFSRUnmask_Bits9_0 ((uint32_t)0x00000900) /*!< Unmask DAC channel LFSR bit[9:0] for noise wave generation */ |
135 |
#define DAC_LFSRUnmask_Bits10_0 ((uint32_t)0x00000A00) /*!< Unmask DAC channel LFSR bit[10:0] for noise wave generation */ |
136 |
#define DAC_LFSRUnmask_Bits11_0 ((uint32_t)0x00000B00) /*!< Unmask DAC channel LFSR bit[11:0] for noise wave generation */ |
137 |
#define DAC_TriangleAmplitude_1 ((uint32_t)0x00000000) /*!< Select max triangle amplitude of 1 */ |
138 |
#define DAC_TriangleAmplitude_3 ((uint32_t)0x00000100) /*!< Select max triangle amplitude of 3 */ |
139 |
#define DAC_TriangleAmplitude_7 ((uint32_t)0x00000200) /*!< Select max triangle amplitude of 7 */ |
140 |
#define DAC_TriangleAmplitude_15 ((uint32_t)0x00000300) /*!< Select max triangle amplitude of 15 */ |
141 |
#define DAC_TriangleAmplitude_31 ((uint32_t)0x00000400) /*!< Select max triangle amplitude of 31 */ |
142 |
#define DAC_TriangleAmplitude_63 ((uint32_t)0x00000500) /*!< Select max triangle amplitude of 63 */ |
143 |
#define DAC_TriangleAmplitude_127 ((uint32_t)0x00000600) /*!< Select max triangle amplitude of 127 */ |
144 |
#define DAC_TriangleAmplitude_255 ((uint32_t)0x00000700) /*!< Select max triangle amplitude of 255 */ |
145 |
#define DAC_TriangleAmplitude_511 ((uint32_t)0x00000800) /*!< Select max triangle amplitude of 511 */ |
146 |
#define DAC_TriangleAmplitude_1023 ((uint32_t)0x00000900) /*!< Select max triangle amplitude of 1023 */ |
147 |
#define DAC_TriangleAmplitude_2047 ((uint32_t)0x00000A00) /*!< Select max triangle amplitude of 2047 */ |
148 |
#define DAC_TriangleAmplitude_4095 ((uint32_t)0x00000B00) /*!< Select max triangle amplitude of 4095 */ |
149 |
|
150 |
#define IS_DAC_LFSR_UNMASK_TRIANGLE_AMPLITUDE(VALUE) (((VALUE) == DAC_LFSRUnmask_Bit0) || \
|
151 |
((VALUE) == DAC_LFSRUnmask_Bits1_0) || \ |
152 |
((VALUE) == DAC_LFSRUnmask_Bits2_0) || \ |
153 |
((VALUE) == DAC_LFSRUnmask_Bits3_0) || \ |
154 |
((VALUE) == DAC_LFSRUnmask_Bits4_0) || \ |
155 |
((VALUE) == DAC_LFSRUnmask_Bits5_0) || \ |
156 |
((VALUE) == DAC_LFSRUnmask_Bits6_0) || \ |
157 |
((VALUE) == DAC_LFSRUnmask_Bits7_0) || \ |
158 |
((VALUE) == DAC_LFSRUnmask_Bits8_0) || \ |
159 |
((VALUE) == DAC_LFSRUnmask_Bits9_0) || \ |
160 |
((VALUE) == DAC_LFSRUnmask_Bits10_0) || \ |
161 |
((VALUE) == DAC_LFSRUnmask_Bits11_0) || \ |
162 |
((VALUE) == DAC_TriangleAmplitude_1) || \ |
163 |
((VALUE) == DAC_TriangleAmplitude_3) || \ |
164 |
((VALUE) == DAC_TriangleAmplitude_7) || \ |
165 |
((VALUE) == DAC_TriangleAmplitude_15) || \ |
166 |
((VALUE) == DAC_TriangleAmplitude_31) || \ |
167 |
((VALUE) == DAC_TriangleAmplitude_63) || \ |
168 |
((VALUE) == DAC_TriangleAmplitude_127) || \ |
169 |
((VALUE) == DAC_TriangleAmplitude_255) || \ |
170 |
((VALUE) == DAC_TriangleAmplitude_511) || \ |
171 |
((VALUE) == DAC_TriangleAmplitude_1023) || \ |
172 |
((VALUE) == DAC_TriangleAmplitude_2047) || \ |
173 |
((VALUE) == DAC_TriangleAmplitude_4095)) |
174 |
/**
|
175 |
* @}
|
176 |
*/
|
177 |
|
178 |
/** @defgroup DAC_output_buffer
|
179 |
* @{
|
180 |
*/
|
181 |
|
182 |
#define DAC_OutputBuffer_Enable ((uint32_t)0x00000000) |
183 |
#define DAC_OutputBuffer_Disable ((uint32_t)0x00000002) |
184 |
#define IS_DAC_OUTPUT_BUFFER_STATE(STATE) (((STATE) == DAC_OutputBuffer_Enable) || \
|
185 |
((STATE) == DAC_OutputBuffer_Disable)) |
186 |
/**
|
187 |
* @}
|
188 |
*/
|
189 |
|
190 |
/** @defgroup DAC_Channel_selection
|
191 |
* @{
|
192 |
*/
|
193 |
|
194 |
#define DAC_Channel_1 ((uint32_t)0x00000000) |
195 |
#define DAC_Channel_2 ((uint32_t)0x00000010) |
196 |
#define IS_DAC_CHANNEL(CHANNEL) (((CHANNEL) == DAC_Channel_1) || \
|
197 |
((CHANNEL) == DAC_Channel_2)) |
198 |
/**
|
199 |
* @}
|
200 |
*/
|
201 |
|
202 |
/** @defgroup DAC_data_alignement
|
203 |
* @{
|
204 |
*/
|
205 |
|
206 |
#define DAC_Align_12b_R ((uint32_t)0x00000000) |
207 |
#define DAC_Align_12b_L ((uint32_t)0x00000004) |
208 |
#define DAC_Align_8b_R ((uint32_t)0x00000008) |
209 |
#define IS_DAC_ALIGN(ALIGN) (((ALIGN) == DAC_Align_12b_R) || \
|
210 |
((ALIGN) == DAC_Align_12b_L) || \ |
211 |
((ALIGN) == DAC_Align_8b_R)) |
212 |
/**
|
213 |
* @}
|
214 |
*/
|
215 |
|
216 |
/** @defgroup DAC_wave_generation
|
217 |
* @{
|
218 |
*/
|
219 |
|
220 |
#define DAC_Wave_Noise ((uint32_t)0x00000040) |
221 |
#define DAC_Wave_Triangle ((uint32_t)0x00000080) |
222 |
#define IS_DAC_WAVE(WAVE) (((WAVE) == DAC_Wave_Noise) || \
|
223 |
((WAVE) == DAC_Wave_Triangle)) |
224 |
/**
|
225 |
* @}
|
226 |
*/
|
227 |
|
228 |
/** @defgroup DAC_data
|
229 |
* @{
|
230 |
*/
|
231 |
|
232 |
#define IS_DAC_DATA(DATA) ((DATA) <= 0xFFF0) |
233 |
/**
|
234 |
* @}
|
235 |
*/
|
236 |
|
237 |
/** @defgroup DAC_interrupts_definition
|
238 |
* @{
|
239 |
*/
|
240 |
#define DAC_IT_DMAUDR ((uint32_t)0x00002000) |
241 |
#define IS_DAC_IT(IT) (((IT) == DAC_IT_DMAUDR))
|
242 |
|
243 |
/**
|
244 |
* @}
|
245 |
*/
|
246 |
|
247 |
/** @defgroup DAC_flags_definition
|
248 |
* @{
|
249 |
*/
|
250 |
|
251 |
#define DAC_FLAG_DMAUDR ((uint32_t)0x00002000) |
252 |
#define IS_DAC_FLAG(FLAG) (((FLAG) == DAC_FLAG_DMAUDR))
|
253 |
|
254 |
/**
|
255 |
* @}
|
256 |
*/
|
257 |
|
258 |
/**
|
259 |
* @}
|
260 |
*/
|
261 |
|
262 |
/* Exported macro ------------------------------------------------------------*/
|
263 |
/* Exported functions --------------------------------------------------------*/
|
264 |
|
265 |
/* Function used to set the DAC configuration to the default reset state *****/
|
266 |
void DAC_DeInit(void); |
267 |
|
268 |
/* DAC channels configuration: trigger, output buffer, data format functions */
|
269 |
void DAC_Init(uint32_t DAC_Channel, DAC_InitTypeDef* DAC_InitStruct);
|
270 |
void DAC_StructInit(DAC_InitTypeDef* DAC_InitStruct);
|
271 |
void DAC_Cmd(uint32_t DAC_Channel, FunctionalState NewState);
|
272 |
void DAC_SoftwareTriggerCmd(uint32_t DAC_Channel, FunctionalState NewState);
|
273 |
void DAC_DualSoftwareTriggerCmd(FunctionalState NewState);
|
274 |
void DAC_WaveGenerationCmd(uint32_t DAC_Channel, uint32_t DAC_Wave, FunctionalState NewState);
|
275 |
void DAC_SetChannel1Data(uint32_t DAC_Align, uint16_t Data);
|
276 |
void DAC_SetChannel2Data(uint32_t DAC_Align, uint16_t Data);
|
277 |
void DAC_SetDualChannelData(uint32_t DAC_Align, uint16_t Data2, uint16_t Data1);
|
278 |
uint16_t DAC_GetDataOutputValue(uint32_t DAC_Channel); |
279 |
|
280 |
/* DMA management functions ***************************************************/
|
281 |
void DAC_DMACmd(uint32_t DAC_Channel, FunctionalState NewState);
|
282 |
|
283 |
/* Interrupts and flags management functions **********************************/
|
284 |
void DAC_ITConfig(uint32_t DAC_Channel, uint32_t DAC_IT, FunctionalState NewState);
|
285 |
FlagStatus DAC_GetFlagStatus(uint32_t DAC_Channel, uint32_t DAC_FLAG); |
286 |
void DAC_ClearFlag(uint32_t DAC_Channel, uint32_t DAC_FLAG);
|
287 |
ITStatus DAC_GetITStatus(uint32_t DAC_Channel, uint32_t DAC_IT); |
288 |
void DAC_ClearITPendingBit(uint32_t DAC_Channel, uint32_t DAC_IT);
|
289 |
|
290 |
#ifdef __cplusplus
|
291 |
} |
292 |
#endif
|
293 |
|
294 |
#endif /*__STM32F4xx_DAC_H */ |
295 |
|
296 |
/**
|
297 |
* @}
|
298 |
*/
|
299 |
|
300 |
/**
|
301 |
* @}
|
302 |
*/
|
303 |
|
304 |
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
|