mbed library sources

Dependents:   Marvino mbot

Fork of mbed-src by mbed official

Committer:
jaerts
Date:
Tue Dec 22 13:22:16 2015 +0000
Revision:
637:ed69428d4850
Parent:
610:813dcc80987e
Add very shady LPC1768 CAN Filter implementation

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