]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/CORTEX_M7_STM32F7_STM32756G-EVAL_IAR_Keil/ST_Library/include/stm32f7xx_hal_dac_ex.h
Final V8.2.1 release ready for tagging:
[freertos] / FreeRTOS / Demo / CORTEX_M7_STM32F7_STM32756G-EVAL_IAR_Keil / ST_Library / include / stm32f7xx_hal_dac_ex.h
1 /**\r
2   ******************************************************************************\r
3   * @file    stm32f7xx_hal_dac.h\r
4   * @author  MCD Application Team\r
5   * @version V1.0.0RC1\r
6   * @date    24-March-2015\r
7   * @brief   Header file of DAC HAL Extension module.\r
8   ******************************************************************************\r
9   * @attention\r
10   *\r
11   * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>\r
12   *\r
13   * Redistribution and use in source and binary forms, with or without modification,\r
14   * are permitted provided that the following conditions are met:\r
15   *   1. Redistributions of source code must retain the above copyright notice,\r
16   *      this list of conditions and the following disclaimer.\r
17   *   2. Redistributions in binary form must reproduce the above copyright notice,\r
18   *      this list of conditions and the following disclaimer in the documentation\r
19   *      and/or other materials provided with the distribution.\r
20   *   3. Neither the name of STMicroelectronics nor the names of its contributors\r
21   *      may be used to endorse or promote products derived from this software\r
22   *      without specific prior written permission.\r
23   *\r
24   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"\r
25   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
26   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\r
27   * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\r
28   * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
29   * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\r
30   * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\r
31   * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\r
32   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\r
33   * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
34   *\r
35   ******************************************************************************\r
36   */\r
37 \r
38 /* Define to prevent recursive inclusion -------------------------------------*/\r
39 #ifndef __STM32F7xx_HAL_DAC_EX_H\r
40 #define __STM32F7xx_HAL_DAC_EX_H\r
41 \r
42 #ifdef __cplusplus\r
43  extern "C" {\r
44 #endif\r
45 \r
46 #if defined(STM32F756xx) || defined(STM32F746xx)\r
47 \r
48 /* Includes ------------------------------------------------------------------*/\r
49 #include "stm32f7xx_hal_def.h"\r
50 \r
51 /** @addtogroup STM32F7xx_HAL_Driver\r
52   * @{\r
53   */\r
54 \r
55 /** @addtogroup DACEx\r
56   * @{\r
57   */\r
58 \r
59 /* Exported types ------------------------------------------------------------*/\r
60 /* Exported constants --------------------------------------------------------*/\r
61 /** @defgroup DACEx_Exported_Constants DAC Exported Constants\r
62   * @{\r
63   */\r
64    \r
65 /** @defgroup DACEx_lfsrunmask_triangleamplitude DAC LFS Run Mask Triangle Amplitude\r
66   * @{\r
67   */\r
68 #define DAC_LFSRUNMASK_BIT0                ((uint32_t)0x00000000) /*!< Unmask DAC channel LFSR bit0 for noise wave generation */\r
69 #define DAC_LFSRUNMASK_BITS1_0             ((uint32_t)DAC_CR_MAMP1_0) /*!< Unmask DAC channel LFSR bit[1:0] for noise wave generation */\r
70 #define DAC_LFSRUNMASK_BITS2_0             ((uint32_t)DAC_CR_MAMP1_1) /*!< Unmask DAC channel LFSR bit[2:0] for noise wave generation */\r
71 #define DAC_LFSRUNMASK_BITS3_0             ((uint32_t)DAC_CR_MAMP1_1 | DAC_CR_MAMP1_0)/*!< Unmask DAC channel LFSR bit[3:0] for noise wave generation */\r
72 #define DAC_LFSRUNMASK_BITS4_0             ((uint32_t)DAC_CR_MAMP1_2) /*!< Unmask DAC channel LFSR bit[4:0] for noise wave generation */\r
73 #define DAC_LFSRUNMASK_BITS5_0             ((uint32_t)DAC_CR_MAMP1_2 | DAC_CR_MAMP1_0) /*!< Unmask DAC channel LFSR bit[5:0] for noise wave generation */\r
74 #define DAC_LFSRUNMASK_BITS6_0             ((uint32_t)DAC_CR_MAMP1_2 | DAC_CR_MAMP1_1) /*!< Unmask DAC channel LFSR bit[6:0] for noise wave generation */\r
75 #define DAC_LFSRUNMASK_BITS7_0             ((uint32_t)DAC_CR_MAMP1_2 | DAC_CR_MAMP1_1 | DAC_CR_MAMP1_0) /*!< Unmask DAC channel LFSR bit[7:0] for noise wave generation */\r
76 #define DAC_LFSRUNMASK_BITS8_0             ((uint32_t)DAC_CR_MAMP1_3) /*!< Unmask DAC channel LFSR bit[8:0] for noise wave generation */\r
77 #define DAC_LFSRUNMASK_BITS9_0             ((uint32_t)DAC_CR_MAMP1_3 | DAC_CR_MAMP1_0) /*!< Unmask DAC channel LFSR bit[9:0] for noise wave generation */\r
78 #define DAC_LFSRUNMASK_BITS10_0            ((uint32_t)DAC_CR_MAMP1_3 | DAC_CR_MAMP1_1) /*!< Unmask DAC channel LFSR bit[10:0] for noise wave generation */\r
79 #define DAC_LFSRUNMASK_BITS11_0            ((uint32_t)DAC_CR_MAMP1_3 | DAC_CR_MAMP1_1 | DAC_CR_MAMP1_0) /*!< Unmask DAC channel LFSR bit[11:0] for noise wave generation */\r
80 #define DAC_TRIANGLEAMPLITUDE_1            ((uint32_t)0x00000000) /*!< Select max triangle amplitude of 1 */\r
81 #define DAC_TRIANGLEAMPLITUDE_3            ((uint32_t)DAC_CR_MAMP1_0) /*!< Select max triangle amplitude of 3 */\r
82 #define DAC_TRIANGLEAMPLITUDE_7            ((uint32_t)DAC_CR_MAMP1_1) /*!< Select max triangle amplitude of 7 */\r
83 #define DAC_TRIANGLEAMPLITUDE_15           ((uint32_t)DAC_CR_MAMP1_1 | DAC_CR_MAMP1_0) /*!< Select max triangle amplitude of 15 */\r
84 #define DAC_TRIANGLEAMPLITUDE_31           ((uint32_t)DAC_CR_MAMP1_2) /*!< Select max triangle amplitude of 31 */\r
85 #define DAC_TRIANGLEAMPLITUDE_63           ((uint32_t)DAC_CR_MAMP1_2 | DAC_CR_MAMP1_0) /*!< Select max triangle amplitude of 63 */\r
86 #define DAC_TRIANGLEAMPLITUDE_127          ((uint32_t)DAC_CR_MAMP1_2 | DAC_CR_MAMP1_1) /*!< Select max triangle amplitude of 127 */\r
87 #define DAC_TRIANGLEAMPLITUDE_255          ((uint32_t)DAC_CR_MAMP1_2 | DAC_CR_MAMP1_1 | DAC_CR_MAMP1_0) /*!< Select max triangle amplitude of 255 */\r
88 #define DAC_TRIANGLEAMPLITUDE_511          ((uint32_t)DAC_CR_MAMP1_3) /*!< Select max triangle amplitude of 511 */\r
89 #define DAC_TRIANGLEAMPLITUDE_1023         ((uint32_t)DAC_CR_MAMP1_3 | DAC_CR_MAMP1_0) /*!< Select max triangle amplitude of 1023 */\r
90 #define DAC_TRIANGLEAMPLITUDE_2047         ((uint32_t)DAC_CR_MAMP1_3 | DAC_CR_MAMP1_1) /*!< Select max triangle amplitude of 2047 */\r
91 #define DAC_TRIANGLEAMPLITUDE_4095         ((uint32_t)DAC_CR_MAMP1_3 | DAC_CR_MAMP1_1 | DAC_CR_MAMP1_0) /*!< Select max triangle amplitude of 4095 */\r
92 /**\r
93   * @}\r
94   */\r
95 \r
96 /**\r
97   * @}\r
98   */\r
99 /* Exported macro ------------------------------------------------------------*/\r
100 /* Exported functions --------------------------------------------------------*/\r
101 /** @addtogroup DACEx_Exported_Functions\r
102   * @{\r
103   */\r
104 \r
105 /** @addtogroup DACEx_Exported_Functions_Group1\r
106   * @{\r
107   */\r
108 /* Extension features functions ***********************************************/\r
109 uint32_t HAL_DACEx_DualGetValue(DAC_HandleTypeDef* hdac);\r
110 HAL_StatusTypeDef HAL_DACEx_TriangleWaveGenerate(DAC_HandleTypeDef* hdac, uint32_t Channel, uint32_t Amplitude);\r
111 HAL_StatusTypeDef HAL_DACEx_NoiseWaveGenerate(DAC_HandleTypeDef* hdac, uint32_t Channel, uint32_t Amplitude);\r
112 HAL_StatusTypeDef HAL_DACEx_DualSetValue(DAC_HandleTypeDef* hdac, uint32_t Alignment, uint32_t Data1, uint32_t Data2);\r
113 \r
114 void HAL_DACEx_ConvCpltCallbackCh2(DAC_HandleTypeDef* hdac);\r
115 void HAL_DACEx_ConvHalfCpltCallbackCh2(DAC_HandleTypeDef* hdac);\r
116 void HAL_DACEx_ErrorCallbackCh2(DAC_HandleTypeDef* hdac);\r
117 void HAL_DACEx_DMAUnderrunCallbackCh2(DAC_HandleTypeDef* hdac);\r
118 /**\r
119   * @}\r
120   */\r
121 \r
122 /**\r
123   * @}\r
124   */\r
125 /* Private types -------------------------------------------------------------*/\r
126 /* Private variables ---------------------------------------------------------*/\r
127 /* Private constants ---------------------------------------------------------*/\r
128 /** @defgroup DACEx_Private_Constants DAC Private Constants\r
129   * @{\r
130   */\r
131 \r
132 /**\r
133   * @}\r
134   */\r
135 \r
136 /* Private macros ------------------------------------------------------------*/\r
137 /** @defgroup DACEx_Private_Macros DAC Private Macros\r
138   * @{\r
139   */\r
140 #define IS_DAC_LFSR_UNMASK_TRIANGLE_AMPLITUDE(VALUE) (((VALUE) == DAC_LFSRUNMASK_BIT0) || \\r
141                                                       ((VALUE) == DAC_LFSRUNMASK_BITS1_0) || \\r
142                                                       ((VALUE) == DAC_LFSRUNMASK_BITS2_0) || \\r
143                                                       ((VALUE) == DAC_LFSRUNMASK_BITS3_0) || \\r
144                                                       ((VALUE) == DAC_LFSRUNMASK_BITS4_0) || \\r
145                                                       ((VALUE) == DAC_LFSRUNMASK_BITS5_0) || \\r
146                                                       ((VALUE) == DAC_LFSRUNMASK_BITS6_0) || \\r
147                                                       ((VALUE) == DAC_LFSRUNMASK_BITS7_0) || \\r
148                                                       ((VALUE) == DAC_LFSRUNMASK_BITS8_0) || \\r
149                                                       ((VALUE) == DAC_LFSRUNMASK_BITS9_0) || \\r
150                                                       ((VALUE) == DAC_LFSRUNMASK_BITS10_0) || \\r
151                                                       ((VALUE) == DAC_LFSRUNMASK_BITS11_0) || \\r
152                                                       ((VALUE) == DAC_TRIANGLEAMPLITUDE_1) || \\r
153                                                       ((VALUE) == DAC_TRIANGLEAMPLITUDE_3) || \\r
154                                                       ((VALUE) == DAC_TRIANGLEAMPLITUDE_7) || \\r
155                                                       ((VALUE) == DAC_TRIANGLEAMPLITUDE_15) || \\r
156                                                       ((VALUE) == DAC_TRIANGLEAMPLITUDE_31) || \\r
157                                                       ((VALUE) == DAC_TRIANGLEAMPLITUDE_63) || \\r
158                                                       ((VALUE) == DAC_TRIANGLEAMPLITUDE_127) || \\r
159                                                       ((VALUE) == DAC_TRIANGLEAMPLITUDE_255) || \\r
160                                                       ((VALUE) == DAC_TRIANGLEAMPLITUDE_511) || \\r
161                                                       ((VALUE) == DAC_TRIANGLEAMPLITUDE_1023) || \\r
162                                                       ((VALUE) == DAC_TRIANGLEAMPLITUDE_2047) || \\r
163                                                       ((VALUE) == DAC_TRIANGLEAMPLITUDE_4095))\r
164 /**\r
165   * @}\r
166   */\r
167 \r
168 /* Private functions ---------------------------------------------------------*/\r
169 /** @defgroup DACEx_Private_Functions DAC Private Functions\r
170   * @{\r
171   */\r
172 void DAC_DMAConvCpltCh2(DMA_HandleTypeDef *hdma);\r
173 void DAC_DMAErrorCh2(DMA_HandleTypeDef *hdma);\r
174 void DAC_DMAHalfConvCpltCh2(DMA_HandleTypeDef *hdma); \r
175 /**\r
176   * @}\r
177   */\r
178 #endif /* STM32F756xx || STM32F746xx */\r
179 \r
180 /**\r
181   * @}\r
182   */\r
183 \r
184 /**\r
185   * @}\r
186   */\r
187   \r
188 #ifdef __cplusplus\r
189 }\r
190 #endif\r
191 \r
192 #endif /*__STM32F7xx_HAL_DAC_EX_H */\r
193 \r
194 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/\r