inport from local

Dependents:   Hobbyking_Cheetah_0511

Committer:
NYX
Date:
Mon Mar 16 06:35:48 2020 +0000
Revision:
0:85b3fd62ea1a
reinport to mbed;

Who changed what in which revision?

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