source: rtems/c/src/lib/libbsp/arm/stm32f7x/hal/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_dac.h @ c20847a5

5
Last change on this file since c20847a5 was c20847a5, checked in by Isaac Gutekunst <isaac.gutekunst@…>, on 09/16/15 at 13:16:02

Add STM32F7 HAL Files

These files originated as:

+ STC32CubeF7 V1.1.0 from http://www.st.com/web/en/catalog/tools/PF261909

  • Property mode set to 100644
File size: 15.0 KB
Line 
1/**
2  ******************************************************************************
3  * @file    stm32f7xx_hal_dac.h
4  * @author  MCD Application Team
5  * @version V1.0.1
6  * @date    25-June-2015
7  * @brief   Header file of DAC HAL module.
8  ******************************************************************************
9  * @attention
10  *
11  * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
12  *
13  * Redistribution and use in source and binary forms, with or without modification,
14  * are permitted provided that the following conditions are met:
15  *   1. Redistributions of source code must retain the above copyright notice,
16  *      this list of conditions and the following disclaimer.
17  *   2. Redistributions in binary form must reproduce the above copyright notice,
18  *      this list of conditions and the following disclaimer in the documentation
19  *      and/or other materials provided with the distribution.
20  *   3. Neither the name of STMicroelectronics nor the names of its contributors
21  *      may be used to endorse or promote products derived from this software
22  *      without specific prior written permission.
23  *
24  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
25  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
27  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
28  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
29  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
30  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
31  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
32  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
33  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34  *
35  ******************************************************************************
36  */
37
38/* Define to prevent recursive inclusion -------------------------------------*/
39#ifndef __STM32F7xx_HAL_DAC_H
40#define __STM32F7xx_HAL_DAC_H
41
42#ifdef __cplusplus
43 extern "C" {
44#endif
45
46/* Includes ------------------------------------------------------------------*/
47#include "stm32f7xx_hal_def.h"
48
49/** @addtogroup STM32F7xx_HAL_Driver
50  * @{
51  */
52
53/** @addtogroup DAC
54  * @{
55  */
56
57/* Exported types ------------------------------------------------------------*/
58/** @defgroup DAC_Exported_Types DAC Exported Types
59  * @{
60  */
61
62/**
63  * @brief HAL State structures definition
64  */
65typedef enum
66{
67  HAL_DAC_STATE_RESET             = 0x00,  /*!< DAC not yet initialized or disabled  */
68  HAL_DAC_STATE_READY             = 0x01,  /*!< DAC initialized and ready for use    */
69  HAL_DAC_STATE_BUSY              = 0x02,  /*!< DAC internal processing is ongoing   */
70  HAL_DAC_STATE_TIMEOUT           = 0x03,  /*!< DAC timeout state                    */
71  HAL_DAC_STATE_ERROR             = 0x04   /*!< DAC error state                      */
72}HAL_DAC_StateTypeDef;
73
74/**
75  * @brief DAC handle Structure definition
76  */
77typedef struct
78{
79  DAC_TypeDef                 *Instance;     /*!< Register base address             */
80
81  __IO HAL_DAC_StateTypeDef   State;         /*!< DAC communication state           */
82
83  HAL_LockTypeDef             Lock;          /*!< DAC locking object                */
84
85  DMA_HandleTypeDef           *DMA_Handle1;  /*!< Pointer DMA handler for channel 1 */
86
87  DMA_HandleTypeDef           *DMA_Handle2;  /*!< Pointer DMA handler for channel 2 */
88
89  __IO uint32_t               ErrorCode;     /*!< DAC Error code                    */
90
91}DAC_HandleTypeDef;
92
93/**
94  * @brief DAC Configuration regular Channel structure definition
95  */
96typedef struct
97{
98  uint32_t DAC_Trigger;       /*!< Specifies the external trigger for the selected DAC channel.
99                                   This parameter can be a value of @ref DAC_trigger_selection */
100
101  uint32_t DAC_OutputBuffer;  /*!< Specifies whether the DAC channel output buffer is enabled or disabled.
102                                   This parameter can be a value of @ref DAC_output_buffer */
103}DAC_ChannelConfTypeDef;
104/**
105  * @}
106  */
107
108/* Exported constants --------------------------------------------------------*/
109/** @defgroup DAC_Exported_Constants DAC Exported Constants
110  * @{
111  */
112
113/** @defgroup DAC_Error_Code DAC Error Code
114  * @{
115  */
116#define  HAL_DAC_ERROR_NONE              0x00    /*!< No error                          */
117#define  HAL_DAC_ERROR_DMAUNDERRUNCH1    0x01    /*!< DAC channel1 DAM underrun error   */
118#define  HAL_DAC_ERROR_DMAUNDERRUNCH2    0x02    /*!< DAC channel2 DAM underrun error   */
119#define  HAL_DAC_ERROR_DMA               0x04    /*!< DMA error                         */
120/**
121  * @}
122  */
123
124/** @defgroup DAC_trigger_selection DAC Trigger Selection
125  * @{
126  */
127
128#define DAC_TRIGGER_NONE                   ((uint32_t)0x00000000) /*!< Conversion is automatic once the DAC1_DHRxxxx register
129                                                                       has been loaded, and not by external trigger */
130#define DAC_TRIGGER_T2_TRGO                ((uint32_t)(DAC_CR_TSEL1_2 | DAC_CR_TEN1)) /*!< TIM2 TRGO selected as external conversion trigger for DAC channel */
131#define DAC_TRIGGER_T4_TRGO                ((uint32_t)(DAC_CR_TSEL1_2 | DAC_CR_TSEL1_0 | DAC_CR_TEN1)) /*!< TIM4 TRGO selected as external conversion trigger for DAC channel */
132#define DAC_TRIGGER_T5_TRGO                ((uint32_t)(DAC_CR_TSEL1_1 | DAC_CR_TSEL1_0 | DAC_CR_TEN1)) /*!< TIM5 TRGO selected as external conversion trigger for DAC channel */
133#define DAC_TRIGGER_T6_TRGO                ((uint32_t)DAC_CR_TEN1) /*!< TIM6 TRGO selected as external conversion trigger for DAC channel */
134#define DAC_TRIGGER_T7_TRGO                ((uint32_t)(DAC_CR_TSEL1_1 | DAC_CR_TEN1)) /*!< TIM7 TRGO selected as external conversion trigger for DAC channel */
135#define DAC_TRIGGER_T8_TRGO                ((uint32_t)(DAC_CR_TSEL1_0 | DAC_CR_TEN1)) /*!< TIM8 TRGO selected as external conversion trigger for DAC channel */
136
137#define DAC_TRIGGER_EXT_IT9                ((uint32_t)(DAC_CR_TSEL1_2 | DAC_CR_TSEL1_1 | DAC_CR_TEN1)) /*!< EXTI Line9 event selected as external conversion trigger for DAC channel */
138#define DAC_TRIGGER_SOFTWARE               ((uint32_t)(DAC_CR_TSEL1 | DAC_CR_TEN1)) /*!< Conversion started by software trigger for DAC channel */
139/**
140  * @}
141  */
142
143/** @defgroup DAC_output_buffer  DAC Output Buffer
144  * @{
145  */
146#define DAC_OUTPUTBUFFER_ENABLE            ((uint32_t)0x00000000)
147#define DAC_OUTPUTBUFFER_DISABLE           ((uint32_t)DAC_CR_BOFF1)
148/**
149  * @}
150  */
151
152/** @defgroup DAC_Channel_selection DAC Channel Selection
153  * @{
154  */
155#define DAC_CHANNEL_1                      ((uint32_t)0x00000000)
156#define DAC_CHANNEL_2                      ((uint32_t)0x00000010)
157/**
158  * @}
159  */
160
161/** @defgroup DAC_data_alignment DAC Data Alignment
162  * @{
163  */
164#define DAC_ALIGN_12B_R                    ((uint32_t)0x00000000)
165#define DAC_ALIGN_12B_L                    ((uint32_t)0x00000004)
166#define DAC_ALIGN_8B_R                     ((uint32_t)0x00000008)
167/**
168  * @}
169  */
170
171/** @defgroup DAC_flags_definition DAC Flags Definition
172  * @{
173  */
174#define DAC_FLAG_DMAUDR1                   ((uint32_t)DAC_SR_DMAUDR1)
175#define DAC_FLAG_DMAUDR2                   ((uint32_t)DAC_SR_DMAUDR2)
176/**
177  * @}
178  */
179
180/** @defgroup DAC_IT_definition DAC IT Definition
181  * @{
182  */
183#define DAC_IT_DMAUDR1                   ((uint32_t)DAC_SR_DMAUDR1)
184#define DAC_IT_DMAUDR2                   ((uint32_t)DAC_SR_DMAUDR2)
185/**
186  * @}
187  */
188
189/**
190  * @}
191  */
192
193/* Exported macro ------------------------------------------------------------*/
194/** @defgroup DAC_Exported_Macros DAC Exported Macros
195  * @{
196  */
197
198/** @brief Reset DAC handle state
199  * @param  __HANDLE__: specifies the DAC handle.
200  * @retval None
201  */
202#define __HAL_DAC_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_DAC_STATE_RESET)
203
204/** @brief Enable the DAC channel
205  * @param  __HANDLE__: specifies the DAC handle.
206  * @param  __DAC_CHANNEL__: specifies the DAC channel
207  * @retval None
208  */
209#define __HAL_DAC_ENABLE(__HANDLE__, __DAC_CHANNEL__) \
210((__HANDLE__)->Instance->CR |=  (DAC_CR_EN1 << (__DAC_CHANNEL__)))
211
212/** @brief Disable the DAC channel
213  * @param  __HANDLE__: specifies the DAC handle
214  * @param  __DAC_CHANNEL__: specifies the DAC channel.
215  * @retval None
216  */
217#define __HAL_DAC_DISABLE(__HANDLE__, __DAC_CHANNEL__) \
218((__HANDLE__)->Instance->CR &=  ~(DAC_CR_EN1 << (__DAC_CHANNEL__)))
219
220
221/** @brief Enable the DAC interrupt
222  * @param  __HANDLE__: specifies the DAC handle
223  * @param  __INTERRUPT__: specifies the DAC interrupt.
224  * @retval None
225  */
226#define __HAL_DAC_ENABLE_IT(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->CR) |= (__INTERRUPT__))
227
228/** @brief Disable the DAC interrupt
229  * @param  __HANDLE__: specifies the DAC handle
230  * @param  __INTERRUPT__: specifies the DAC interrupt.
231  * @retval None
232  */
233#define __HAL_DAC_DISABLE_IT(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->CR) &= ~(__INTERRUPT__))
234
235/** @brief  Checks if the specified DAC interrupt source is enabled or disabled.
236  * @param __HANDLE__: DAC handle
237  * @param __INTERRUPT__: DAC interrupt source to check
238  *          This parameter can be any combination of the following values:
239  *            @arg DAC_IT_DMAUDR1: DAC channel 1 DMA underrun interrupt
240  *            @arg DAC_IT_DMAUDR2: DAC channel 2 DMA underrun interrupt
241  * @retval State of interruption (SET or RESET)
242  */
243#define __HAL_DAC_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->CR & (__INTERRUPT__)) == (__INTERRUPT__))
244
245/** @brief  Get the selected DAC's flag status.
246  * @param  __HANDLE__: specifies the DAC handle.
247  * @param  __FLAG__: specifies the flag to clear.
248  *         This parameter can be any combination of the following values:
249  *            @arg DAC_FLAG_DMAUDR1: DMA underrun 1 flag
250  *            @arg DAC_FLAG_DMAUDR2: DMA underrun 2 flag
251  * @retval None
252  */
253#define __HAL_DAC_GET_FLAG(__HANDLE__, __FLAG__) ((((__HANDLE__)->Instance->SR) & (__FLAG__)) == (__FLAG__))
254
255/** @brief  Clear the DAC's flag.
256  * @param  __HANDLE__: specifies the DAC handle.
257  * @param  __FLAG__: specifies the flag to clear.
258  *         This parameter can be any combination of the following values:
259  *            @arg DAC_FLAG_DMAUDR1: DMA underrun 1 flag
260  *            @arg DAC_FLAG_DMAUDR2: DMA underrun 2 flag
261  * @retval None
262  */
263#define __HAL_DAC_CLEAR_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->SR) = (__FLAG__))
264/**
265  * @}
266  */
267
268/* Include DAC HAL Extension module */
269#include "stm32f7xx_hal_dac_ex.h"
270
271/* Exported functions --------------------------------------------------------*/
272/** @addtogroup DAC_Exported_Functions
273  * @{
274  */
275
276/** @addtogroup DAC_Exported_Functions_Group1
277  * @{
278  */
279/* Initialization/de-initialization functions *********************************/
280HAL_StatusTypeDef HAL_DAC_Init(DAC_HandleTypeDef* hdac);
281HAL_StatusTypeDef HAL_DAC_DeInit(DAC_HandleTypeDef* hdac);
282void HAL_DAC_MspInit(DAC_HandleTypeDef* hdac);
283void HAL_DAC_MspDeInit(DAC_HandleTypeDef* hdac);
284/**
285  * @}
286  */
287
288/** @addtogroup DAC_Exported_Functions_Group2
289  * @{
290  */
291/* I/O operation functions ****************************************************/
292HAL_StatusTypeDef HAL_DAC_Start(DAC_HandleTypeDef* hdac, uint32_t Channel);
293HAL_StatusTypeDef HAL_DAC_Stop(DAC_HandleTypeDef* hdac, uint32_t Channel);
294HAL_StatusTypeDef HAL_DAC_Start_DMA(DAC_HandleTypeDef* hdac, uint32_t Channel, uint32_t* pData, uint32_t Length, uint32_t Alignment);
295HAL_StatusTypeDef HAL_DAC_Stop_DMA(DAC_HandleTypeDef* hdac, uint32_t Channel);
296uint32_t HAL_DAC_GetValue(DAC_HandleTypeDef* hdac, uint32_t Channel);
297/**
298  * @}
299  */
300
301/** @addtogroup DAC_Exported_Functions_Group3
302  * @{
303  */
304/* Peripheral Control functions ***********************************************/
305HAL_StatusTypeDef HAL_DAC_ConfigChannel(DAC_HandleTypeDef* hdac, DAC_ChannelConfTypeDef* sConfig, uint32_t Channel);
306HAL_StatusTypeDef HAL_DAC_SetValue(DAC_HandleTypeDef* hdac, uint32_t Channel, uint32_t Alignment, uint32_t Data);
307/**
308  * @}
309  */
310
311/** @addtogroup DAC_Exported_Functions_Group4
312  * @{
313  */
314/* Peripheral State functions *************************************************/
315HAL_DAC_StateTypeDef HAL_DAC_GetState(DAC_HandleTypeDef* hdac);
316void HAL_DAC_IRQHandler(DAC_HandleTypeDef* hdac);
317uint32_t HAL_DAC_GetError(DAC_HandleTypeDef *hdac);
318
319void HAL_DAC_ConvCpltCallbackCh1(DAC_HandleTypeDef* hdac);
320void HAL_DAC_ConvHalfCpltCallbackCh1(DAC_HandleTypeDef* hdac);
321void HAL_DAC_ErrorCallbackCh1(DAC_HandleTypeDef *hdac);
322void HAL_DAC_DMAUnderrunCallbackCh1(DAC_HandleTypeDef *hdac);
323/**
324  * @}
325  */
326
327/**
328  * @}
329  */
330/* Private types -------------------------------------------------------------*/
331/* Private variables ---------------------------------------------------------*/
332/* Private constants ---------------------------------------------------------*/
333/** @defgroup DAC_Private_Constants DAC Private Constants
334  * @{
335  */
336
337/**
338  * @}
339  */
340
341/* Private macros ------------------------------------------------------------*/
342/** @defgroup DAC_Private_Macros DAC Private Macros
343  * @{
344  */
345#define IS_DAC_DATA(DATA) ((DATA) <= 0xFFF0)
346#define IS_DAC_ALIGN(ALIGN) (((ALIGN) == DAC_ALIGN_12B_R) || \
347                             ((ALIGN) == DAC_ALIGN_12B_L) || \
348                             ((ALIGN) == DAC_ALIGN_8B_R))
349#define IS_DAC_CHANNEL(CHANNEL) (((CHANNEL) == DAC_CHANNEL_1) || \
350                                 ((CHANNEL) == DAC_CHANNEL_2))
351#define IS_DAC_OUTPUT_BUFFER_STATE(STATE) (((STATE) == DAC_OUTPUTBUFFER_ENABLE) || \
352                                           ((STATE) == DAC_OUTPUTBUFFER_DISABLE))
353
354#define IS_DAC_TRIGGER(TRIGGER) (((TRIGGER) == DAC_TRIGGER_NONE) || \
355                                 ((TRIGGER) == DAC_TRIGGER_T2_TRGO) || \
356                                 ((TRIGGER) == DAC_TRIGGER_T8_TRGO) || \
357                                 ((TRIGGER) == DAC_TRIGGER_T7_TRGO) || \
358                                 ((TRIGGER) == DAC_TRIGGER_T5_TRGO) || \
359                                 ((TRIGGER) == DAC_TRIGGER_T6_TRGO) || \
360                                 ((TRIGGER) == DAC_TRIGGER_T4_TRGO) || \
361                                 ((TRIGGER) == DAC_TRIGGER_EXT_IT9) || \
362                                 ((TRIGGER) == DAC_TRIGGER_SOFTWARE))
363
364/** @brief Set DHR12R1 alignment
365  * @param  __ALIGNMENT__: specifies the DAC alignment
366  * @retval None
367  */
368#define DAC_DHR12R1_ALIGNMENT(__ALIGNMENT__) (((uint32_t)0x00000008) + (__ALIGNMENT__))
369
370/** @brief  Set DHR12R2 alignment
371  * @param  __ALIGNMENT__: specifies the DAC alignment
372  * @retval None
373  */
374#define DAC_DHR12R2_ALIGNMENT(__ALIGNMENT__) (((uint32_t)0x00000014) + (__ALIGNMENT__))
375
376/** @brief  Set DHR12RD alignment
377  * @param  __ALIGNMENT__: specifies the DAC alignment
378  * @retval None
379  */
380#define DAC_DHR12RD_ALIGNMENT(__ALIGNMENT__) (((uint32_t)0x00000020) + (__ALIGNMENT__))
381
382/**
383  * @}
384  */
385
386/* Private functions ---------------------------------------------------------*/
387/** @defgroup DAC_Private_Functions DAC Private Functions
388  * @{
389  */
390/**
391  * @}
392  */
393
394/**
395  * @}
396  */
397
398/**
399  * @}
400  */
401
402#ifdef __cplusplus
403}
404#endif
405
406#endif /*__STM32F7xx_HAL_DAC_H */
407
408/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
Note: See TracBrowser for help on using the repository browser.