1 /** 2 ****************************************************************************** 3 * @file stm32f4xx_hal_dac.h 4 * @author MCD Application Team 5 * @brief Header file of DAC HAL Extension module. 6 ****************************************************************************** 7 * @attention 8 * 9 * <h2><center>© Copyright (c) 2017 STMicroelectronics. 10 * All rights reserved.</center></h2> 11 * 12 * This software component is licensed by ST under BSD 3-Clause license, 13 * the "License"; You may not use this file except in compliance with the 14 * License. You may obtain a copy of the License at: 15 * opensource.org/licenses/BSD-3-Clause 16 * 17 ****************************************************************************** 18 */ 19 20 /* Define to prevent recursive inclusion -------------------------------------*/ 21 #ifndef __STM32F4xx_HAL_DAC_EX_H 22 #define __STM32F4xx_HAL_DAC_EX_H 23 24 #ifdef __cplusplus 25 extern "C" { 26 #endif 27 28 #if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx) ||\ 29 defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) ||\ 30 defined(STM32F410Tx) || defined(STM32F410Cx) || defined(STM32F410Rx) || defined(STM32F446xx) ||\ 31 defined(STM32F469xx) || defined(STM32F479xx) || defined(STM32F413xx) || defined(STM32F423xx) 32 33 /* Includes ------------------------------------------------------------------*/ 34 #include "stm32f4xx_hal_def.h" 35 36 /** @addtogroup STM32F4xx_HAL_Driver 37 * @{ 38 */ 39 40 /** @addtogroup DACEx 41 * @{ 42 */ 43 44 /* Exported types ------------------------------------------------------------*/ 45 /* Exported constants --------------------------------------------------------*/ 46 /** @defgroup DACEx_Exported_Constants DAC Exported Constants 47 * @{ 48 */ 49 50 /** @defgroup DACEx_lfsrunmask_triangleamplitude DAC LFS Run Mask Triangle Amplitude 51 * @{ 52 */ 53 #define DAC_LFSRUNMASK_BIT0 0x00000000U /*!< Unmask DAC channel LFSR bit0 for noise wave generation */ 54 #define DAC_LFSRUNMASK_BITS1_0 ((uint32_t)DAC_CR_MAMP1_0) /*!< Unmask DAC channel LFSR bit[1:0] for noise wave generation */ 55 #define DAC_LFSRUNMASK_BITS2_0 ((uint32_t)DAC_CR_MAMP1_1) /*!< Unmask DAC channel LFSR bit[2:0] for noise wave generation */ 56 #define DAC_LFSRUNMASK_BITS3_0 ((uint32_t)DAC_CR_MAMP1_1 | DAC_CR_MAMP1_0)/*!< Unmask DAC channel LFSR bit[3:0] for noise wave generation */ 57 #define DAC_LFSRUNMASK_BITS4_0 ((uint32_t)DAC_CR_MAMP1_2) /*!< Unmask DAC channel LFSR bit[4:0] for noise wave generation */ 58 #define DAC_LFSRUNMASK_BITS5_0 ((uint32_t)DAC_CR_MAMP1_2 | DAC_CR_MAMP1_0) /*!< Unmask DAC channel LFSR bit[5:0] for noise wave generation */ 59 #define DAC_LFSRUNMASK_BITS6_0 ((uint32_t)DAC_CR_MAMP1_2 | DAC_CR_MAMP1_1) /*!< Unmask DAC channel LFSR bit[6:0] for noise wave generation */ 60 #define DAC_LFSRUNMASK_BITS7_0 ((uint32_t)DAC_CR_MAMP1_2 | DAC_CR_MAMP1_1 | DAC_CR_MAMP1_0) /*!< Unmask DAC channel LFSR bit[7:0] for noise wave generation */ 61 #define DAC_LFSRUNMASK_BITS8_0 ((uint32_t)DAC_CR_MAMP1_3) /*!< Unmask DAC channel LFSR bit[8:0] for noise wave generation */ 62 #define DAC_LFSRUNMASK_BITS9_0 ((uint32_t)DAC_CR_MAMP1_3 | DAC_CR_MAMP1_0) /*!< Unmask DAC channel LFSR bit[9:0] for noise wave generation */ 63 #define DAC_LFSRUNMASK_BITS10_0 ((uint32_t)DAC_CR_MAMP1_3 | DAC_CR_MAMP1_1) /*!< Unmask DAC channel LFSR bit[10:0] for noise wave generation */ 64 #define DAC_LFSRUNMASK_BITS11_0 ((uint32_t)DAC_CR_MAMP1_3 | DAC_CR_MAMP1_1 | DAC_CR_MAMP1_0) /*!< Unmask DAC channel LFSR bit[11:0] for noise wave generation */ 65 #define DAC_TRIANGLEAMPLITUDE_1 0x00000000U /*!< Select max triangle amplitude of 1 */ 66 #define DAC_TRIANGLEAMPLITUDE_3 ((uint32_t)DAC_CR_MAMP1_0) /*!< Select max triangle amplitude of 3 */ 67 #define DAC_TRIANGLEAMPLITUDE_7 ((uint32_t)DAC_CR_MAMP1_1) /*!< Select max triangle amplitude of 7 */ 68 #define DAC_TRIANGLEAMPLITUDE_15 ((uint32_t)DAC_CR_MAMP1_1 | DAC_CR_MAMP1_0) /*!< Select max triangle amplitude of 15 */ 69 #define DAC_TRIANGLEAMPLITUDE_31 ((uint32_t)DAC_CR_MAMP1_2) /*!< Select max triangle amplitude of 31 */ 70 #define DAC_TRIANGLEAMPLITUDE_63 ((uint32_t)DAC_CR_MAMP1_2 | DAC_CR_MAMP1_0) /*!< Select max triangle amplitude of 63 */ 71 #define DAC_TRIANGLEAMPLITUDE_127 ((uint32_t)DAC_CR_MAMP1_2 | DAC_CR_MAMP1_1) /*!< Select max triangle amplitude of 127 */ 72 #define DAC_TRIANGLEAMPLITUDE_255 ((uint32_t)DAC_CR_MAMP1_2 | DAC_CR_MAMP1_1 | DAC_CR_MAMP1_0) /*!< Select max triangle amplitude of 255 */ 73 #define DAC_TRIANGLEAMPLITUDE_511 ((uint32_t)DAC_CR_MAMP1_3) /*!< Select max triangle amplitude of 511 */ 74 #define DAC_TRIANGLEAMPLITUDE_1023 ((uint32_t)DAC_CR_MAMP1_3 | DAC_CR_MAMP1_0) /*!< Select max triangle amplitude of 1023 */ 75 #define DAC_TRIANGLEAMPLITUDE_2047 ((uint32_t)DAC_CR_MAMP1_3 | DAC_CR_MAMP1_1) /*!< Select max triangle amplitude of 2047 */ 76 #define DAC_TRIANGLEAMPLITUDE_4095 ((uint32_t)DAC_CR_MAMP1_3 | DAC_CR_MAMP1_1 | DAC_CR_MAMP1_0) /*!< Select max triangle amplitude of 4095 */ 77 /** 78 * @} 79 */ 80 81 /** 82 * @} 83 */ 84 85 /* Exported macro ------------------------------------------------------------*/ 86 /* Exported functions --------------------------------------------------------*/ 87 /** @addtogroup DACEx_Exported_Functions 88 * @{ 89 */ 90 91 /** @addtogroup DACEx_Exported_Functions_Group1 92 * @{ 93 */ 94 /* Extension features functions ***********************************************/ 95 uint32_t HAL_DACEx_DualGetValue(DAC_HandleTypeDef* hdac); 96 HAL_StatusTypeDef HAL_DACEx_TriangleWaveGenerate(DAC_HandleTypeDef* hdac, uint32_t Channel, uint32_t Amplitude); 97 HAL_StatusTypeDef HAL_DACEx_NoiseWaveGenerate(DAC_HandleTypeDef* hdac, uint32_t Channel, uint32_t Amplitude); 98 HAL_StatusTypeDef HAL_DACEx_DualSetValue(DAC_HandleTypeDef* hdac, uint32_t Alignment, uint32_t Data1, uint32_t Data2); 99 100 void HAL_DACEx_ConvCpltCallbackCh2(DAC_HandleTypeDef* hdac); 101 void HAL_DACEx_ConvHalfCpltCallbackCh2(DAC_HandleTypeDef* hdac); 102 void HAL_DACEx_ErrorCallbackCh2(DAC_HandleTypeDef* hdac); 103 void HAL_DACEx_DMAUnderrunCallbackCh2(DAC_HandleTypeDef* hdac); 104 /** 105 * @} 106 */ 107 108 /** 109 * @} 110 */ 111 /* Private types -------------------------------------------------------------*/ 112 /* Private variables ---------------------------------------------------------*/ 113 /* Private constants ---------------------------------------------------------*/ 114 /** @defgroup DACEx_Private_Constants DAC Private Constants 115 * @{ 116 */ 117 118 /** 119 * @} 120 */ 121 122 /* Private macros ------------------------------------------------------------*/ 123 /** @defgroup DACEx_Private_Macros DAC Private Macros 124 * @{ 125 */ 126 #define IS_DAC_LFSR_UNMASK_TRIANGLE_AMPLITUDE(VALUE) (((VALUE) == DAC_LFSRUNMASK_BIT0) || \ 127 ((VALUE) == DAC_LFSRUNMASK_BITS1_0) || \ 128 ((VALUE) == DAC_LFSRUNMASK_BITS2_0) || \ 129 ((VALUE) == DAC_LFSRUNMASK_BITS3_0) || \ 130 ((VALUE) == DAC_LFSRUNMASK_BITS4_0) || \ 131 ((VALUE) == DAC_LFSRUNMASK_BITS5_0) || \ 132 ((VALUE) == DAC_LFSRUNMASK_BITS6_0) || \ 133 ((VALUE) == DAC_LFSRUNMASK_BITS7_0) || \ 134 ((VALUE) == DAC_LFSRUNMASK_BITS8_0) || \ 135 ((VALUE) == DAC_LFSRUNMASK_BITS9_0) || \ 136 ((VALUE) == DAC_LFSRUNMASK_BITS10_0) || \ 137 ((VALUE) == DAC_LFSRUNMASK_BITS11_0) || \ 138 ((VALUE) == DAC_TRIANGLEAMPLITUDE_1) || \ 139 ((VALUE) == DAC_TRIANGLEAMPLITUDE_3) || \ 140 ((VALUE) == DAC_TRIANGLEAMPLITUDE_7) || \ 141 ((VALUE) == DAC_TRIANGLEAMPLITUDE_15) || \ 142 ((VALUE) == DAC_TRIANGLEAMPLITUDE_31) || \ 143 ((VALUE) == DAC_TRIANGLEAMPLITUDE_63) || \ 144 ((VALUE) == DAC_TRIANGLEAMPLITUDE_127) || \ 145 ((VALUE) == DAC_TRIANGLEAMPLITUDE_255) || \ 146 ((VALUE) == DAC_TRIANGLEAMPLITUDE_511) || \ 147 ((VALUE) == DAC_TRIANGLEAMPLITUDE_1023) || \ 148 ((VALUE) == DAC_TRIANGLEAMPLITUDE_2047) || \ 149 ((VALUE) == DAC_TRIANGLEAMPLITUDE_4095)) 150 /** 151 * @} 152 */ 153 154 /* Private functions ---------------------------------------------------------*/ 155 /** @defgroup DACEx_Private_Functions DAC Private Functions 156 * @{ 157 */ 158 void DAC_DMAConvCpltCh2(DMA_HandleTypeDef *hdma); 159 void DAC_DMAErrorCh2(DMA_HandleTypeDef *hdma); 160 void DAC_DMAHalfConvCpltCh2(DMA_HandleTypeDef *hdma); 161 /** 162 * @} 163 */ 164 #endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx ||\ 165 STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx ||\ 166 STM32F410xx || STM32F446xx || STM32F469xx || STM32F479xx ||\ 167 STM32F413xx || STM32F423xx */ 168 169 /** 170 * @} 171 */ 172 173 /** 174 * @} 175 */ 176 177 #ifdef __cplusplus 178 } 179 #endif 180 181 #endif /*__STM32F4xx_HAL_DAC_EX_H */ 182 183 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 184