mbed library sources

Dependents:   Encrypted my_mbed lklk CyaSSL_DTLS_Cellular ... more

Superseded

This library was superseded by mbed-dev - https://os.mbed.com/users/mbed_official/code/mbed-dev/.

Development branch of the mbed library sources. This library is kept in synch with the latest changes from the mbed SDK and it is not guaranteed to work.

If you are looking for a stable and tested release, please import one of the official mbed library releases:

Import librarymbed

The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Committer:
mbed_official
Date:
Fri Aug 14 13:15:17 2015 +0100
Revision:
610:813dcc80987e
Parent:
573:ad23fe03a082
Synchronized with git revision 6d84db41c6833e0b9b024741eb0616a5f62d5599

Full URL: https://github.com/mbedmicro/mbed/commit/6d84db41c6833e0b9b024741eb0616a5f62d5599/

DISCO_F746NG - Improvements

Who changed what in which revision?

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