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