STM32L486xx HAL User Manual
|
00001 /** 00002 ****************************************************************************** 00003 * @file stm32l4xx_hal_dac_ex.h 00004 * @author MCD Application Team 00005 * @brief Header file of DAC HAL Extended module. 00006 ****************************************************************************** 00007 * @attention 00008 * 00009 * <h2><center>© COPYRIGHT(c) 2017 STMicroelectronics</center></h2> 00010 * 00011 * Redistribution and use in source and binary forms, with or without modification, 00012 * are permitted provided that the following conditions are met: 00013 * 1. Redistributions of source code must retain the above copyright notice, 00014 * this list of conditions and the following disclaimer. 00015 * 2. Redistributions in binary form must reproduce the above copyright notice, 00016 * this list of conditions and the following disclaimer in the documentation 00017 * and/or other materials provided with the distribution. 00018 * 3. Neither the name of STMicroelectronics nor the names of its contributors 00019 * may be used to endorse or promote products derived from this software 00020 * without specific prior written permission. 00021 * 00022 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 00023 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 00024 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 00025 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 00026 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 00027 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 00028 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 00029 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 00030 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 00031 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00032 * 00033 ****************************************************************************** 00034 */ 00035 00036 /* Define to prevent recursive inclusion -------------------------------------*/ 00037 #ifndef __STM32L4xx_HAL_DAC_EX_H 00038 #define __STM32L4xx_HAL_DAC_EX_H 00039 00040 #ifdef __cplusplus 00041 extern "C" { 00042 #endif 00043 00044 /* Includes ------------------------------------------------------------------*/ 00045 #include "stm32l4xx_hal_def.h" 00046 00047 /** @addtogroup STM32L4xx_HAL_Driver 00048 * @{ 00049 */ 00050 00051 /** @addtogroup DACEx 00052 * @{ 00053 */ 00054 00055 /* Exported types ------------------------------------------------------------*/ 00056 00057 /** 00058 * @brief HAL State structures definition 00059 */ 00060 00061 /* Exported constants --------------------------------------------------------*/ 00062 00063 /** @defgroup DACEx_Exported_Constants DACEx Exported Constants 00064 * @{ 00065 */ 00066 00067 /** @defgroup DACEx_lfsrunmask_triangleamplitude DACEx lfsrunmask triangle amplitude 00068 * @{ 00069 */ 00070 #define DAC_LFSRUNMASK_BIT0 ((uint32_t)0x00000000) /*!< Unmask DAC channel LFSR bit0 for noise wave generation */ 00071 #define DAC_LFSRUNMASK_BITS1_0 ((uint32_t)DAC_CR_MAMP1_0) /*!< Unmask DAC channel LFSR bit[1:0] for noise wave generation */ 00072 #define DAC_LFSRUNMASK_BITS2_0 ((uint32_t)DAC_CR_MAMP1_1) /*!< Unmask DAC channel LFSR bit[2:0] for noise wave generation */ 00073 #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 */ 00074 #define DAC_LFSRUNMASK_BITS4_0 ((uint32_t)DAC_CR_MAMP1_2) /*!< Unmask DAC channel LFSR bit[4:0] for noise wave generation */ 00075 #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 */ 00076 #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 */ 00077 #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 */ 00078 #define DAC_LFSRUNMASK_BITS8_0 ((uint32_t)DAC_CR_MAMP1_3) /*!< Unmask DAC channel LFSR bit[8:0] for noise wave generation */ 00079 #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 */ 00080 #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 */ 00081 #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 */ 00082 #define DAC_TRIANGLEAMPLITUDE_1 ((uint32_t)0x00000000) /*!< Select max triangle amplitude of 1 */ 00083 #define DAC_TRIANGLEAMPLITUDE_3 ((uint32_t)DAC_CR_MAMP1_0) /*!< Select max triangle amplitude of 3 */ 00084 #define DAC_TRIANGLEAMPLITUDE_7 ((uint32_t)DAC_CR_MAMP1_1) /*!< Select max triangle amplitude of 7 */ 00085 #define DAC_TRIANGLEAMPLITUDE_15 ((uint32_t)DAC_CR_MAMP1_1 | DAC_CR_MAMP1_0) /*!< Select max triangle amplitude of 15 */ 00086 #define DAC_TRIANGLEAMPLITUDE_31 ((uint32_t)DAC_CR_MAMP1_2) /*!< Select max triangle amplitude of 31 */ 00087 #define DAC_TRIANGLEAMPLITUDE_63 ((uint32_t)DAC_CR_MAMP1_2 | DAC_CR_MAMP1_0) /*!< Select max triangle amplitude of 63 */ 00088 #define DAC_TRIANGLEAMPLITUDE_127 ((uint32_t)DAC_CR_MAMP1_2 | DAC_CR_MAMP1_1) /*!< Select max triangle amplitude of 127 */ 00089 #define DAC_TRIANGLEAMPLITUDE_255 ((uint32_t)DAC_CR_MAMP1_2 | DAC_CR_MAMP1_1 | DAC_CR_MAMP1_0) /*!< Select max triangle amplitude of 255 */ 00090 #define DAC_TRIANGLEAMPLITUDE_511 ((uint32_t)DAC_CR_MAMP1_3) /*!< Select max triangle amplitude of 511 */ 00091 #define DAC_TRIANGLEAMPLITUDE_1023 ((uint32_t)DAC_CR_MAMP1_3 | DAC_CR_MAMP1_0) /*!< Select max triangle amplitude of 1023 */ 00092 #define DAC_TRIANGLEAMPLITUDE_2047 ((uint32_t)DAC_CR_MAMP1_3 | DAC_CR_MAMP1_1) /*!< Select max triangle amplitude of 2047 */ 00093 #define DAC_TRIANGLEAMPLITUDE_4095 ((uint32_t)DAC_CR_MAMP1_3 | DAC_CR_MAMP1_1 | DAC_CR_MAMP1_0) /*!< Select max triangle amplitude of 4095 */ 00094 00095 /** 00096 * @} 00097 */ 00098 00099 /** 00100 * @} 00101 */ 00102 00103 /* Exported macro ------------------------------------------------------------*/ 00104 00105 00106 /* Private macro -------------------------------------------------------------*/ 00107 00108 /** @defgroup DACEx_Private_Macros DACEx Private Macros 00109 * @{ 00110 */ 00111 #if defined (STM32L431xx) || defined (STM32L432xx) || defined (STM32L433xx) || defined (STM32L442xx) || defined (STM32L443xx) 00112 #define IS_DAC_TRIGGER(TRIGGER) (((TRIGGER) == DAC_TRIGGER_NONE) || \ 00113 ((TRIGGER) == DAC_TRIGGER_T2_TRGO) || \ 00114 ((TRIGGER) == DAC_TRIGGER_T6_TRGO) || \ 00115 ((TRIGGER) == DAC_TRIGGER_T7_TRGO) || \ 00116 ((TRIGGER) == DAC_TRIGGER_EXT_IT9) || \ 00117 ((TRIGGER) == DAC_TRIGGER_SOFTWARE)) 00118 #endif /* STM32L431xx STM32L432xx STM32L433xx STM32L442xx STM32L443xx */ 00119 00120 #if defined (STM32L451xx) || defined (STM32L452xx) || defined (STM32L462xx) 00121 #define IS_DAC_TRIGGER(TRIGGER) (((TRIGGER) == DAC_TRIGGER_NONE) || \ 00122 ((TRIGGER) == DAC_TRIGGER_T2_TRGO) || \ 00123 ((TRIGGER) == DAC_TRIGGER_T6_TRGO) || \ 00124 ((TRIGGER) == DAC_TRIGGER_EXT_IT9) || \ 00125 ((TRIGGER) == DAC_TRIGGER_SOFTWARE)) 00126 #endif /* STM32L451xx STM32L452xx STM32L462xx */ 00127 00128 #if defined (STM32L471xx) || defined (STM32L475xx) || defined (STM32L476xx) || defined (STM32L485xx) || defined (STM32L486xx) || defined (STM32L496xx) || defined (STM32L4A6xx) 00129 #define IS_DAC_TRIGGER(TRIGGER) (((TRIGGER) == DAC_TRIGGER_NONE) || \ 00130 ((TRIGGER) == DAC_TRIGGER_T2_TRGO) || \ 00131 ((TRIGGER) == DAC_TRIGGER_T4_TRGO) || \ 00132 ((TRIGGER) == DAC_TRIGGER_T5_TRGO) || \ 00133 ((TRIGGER) == DAC_TRIGGER_T6_TRGO) || \ 00134 ((TRIGGER) == DAC_TRIGGER_T7_TRGO) || \ 00135 ((TRIGGER) == DAC_TRIGGER_T8_TRGO) || \ 00136 ((TRIGGER) == DAC_TRIGGER_EXT_IT9) || \ 00137 ((TRIGGER) == DAC_TRIGGER_SOFTWARE)) 00138 #endif /* STM32L471xx STM32L475xx STM32L476xx STM32L485xx STM32L486xx STM32L496xx STM32L4A6xx */ 00139 00140 #if defined (STM32L4R5xx) || defined (STM32L4R7xx) || defined (STM32L4R9xx) || defined (STM32L4S5xx) || defined (STM32L4S7xx) || defined(STM32L4S9xx) 00141 #define IS_DAC_TRIGGER(TRIGGER) (((TRIGGER) == DAC_TRIGGER_NONE) || \ 00142 ((TRIGGER) == DAC_TRIGGER_T1_TRGO) || \ 00143 ((TRIGGER) == DAC_TRIGGER_T2_TRGO) || \ 00144 ((TRIGGER) == DAC_TRIGGER_T4_TRGO) || \ 00145 ((TRIGGER) == DAC_TRIGGER_T5_TRGO) || \ 00146 ((TRIGGER) == DAC_TRIGGER_T6_TRGO) || \ 00147 ((TRIGGER) == DAC_TRIGGER_T7_TRGO) || \ 00148 ((TRIGGER) == DAC_TRIGGER_T8_TRGO) || \ 00149 ((TRIGGER) == DAC_TRIGGER_T15_TRGO) || \ 00150 ((TRIGGER) == DAC_TRIGGER_LPTIM1_OUT) || \ 00151 ((TRIGGER) == DAC_TRIGGER_LPTIM2_OUT) || \ 00152 ((TRIGGER) == DAC_TRIGGER_EXT_IT9) || \ 00153 ((TRIGGER) == DAC_TRIGGER_SOFTWARE)) 00154 00155 #define IS_DAC_HIGH_FREQUENCY_MODE(MODE) (((MODE) == DAC_HIGH_FREQUENCY_INTERFACE_MODE_DISABLE) || \ 00156 ((MODE) == DAC_HIGH_FREQUENCY_INTERFACE_MODE_ABOVE_80MHZ) || \ 00157 ((MODE) == DAC_HIGH_FREQUENCY_INTERFACE_MODE_AUTOMATIC)) 00158 00159 #endif /* STM32L4R5xx STM32L4R7xx STM32L4R9xx STM32L4S5xx STM32L4S7xx STM32L4S9xx */ 00160 00161 #define IS_DAC_SAMPLETIME(TIME) ((TIME) <= 0x000003FF) 00162 00163 #define IS_DAC_HOLDTIME(TIME) ((TIME) <= 0x000003FF) 00164 00165 #define IS_DAC_SAMPLEANDHOLD(MODE) (((MODE) == DAC_SAMPLEANDHOLD_DISABLE) || \ 00166 ((MODE) == DAC_SAMPLEANDHOLD_ENABLE)) 00167 00168 00169 #define IS_DAC_TRIMMINGVALUE(TRIMMINGVALUE) ((TRIMMINGVALUE) <= 0x1F) 00170 00171 #define IS_DAC_NEWTRIMMINGVALUE(TRIMMINGVALUE) ((TRIMMINGVALUE) <= 0x1F) 00172 00173 #define IS_DAC_CHIP_CONNECTION(CONNECT) (((CONNECT) == DAC_CHIPCONNECT_DISABLE) || \ 00174 ((CONNECT) == DAC_CHIPCONNECT_ENABLE)) 00175 00176 #define IS_DAC_TRIMMING(TRIMMING) (((TRIMMING) == DAC_TRIMMING_FACTORY) || \ 00177 ((TRIMMING) == DAC_TRIMMING_USER)) 00178 00179 #define IS_DAC_LFSR_UNMASK_TRIANGLE_AMPLITUDE(VALUE) (((VALUE) == DAC_LFSRUNMASK_BIT0) || \ 00180 ((VALUE) == DAC_LFSRUNMASK_BITS1_0) || \ 00181 ((VALUE) == DAC_LFSRUNMASK_BITS2_0) || \ 00182 ((VALUE) == DAC_LFSRUNMASK_BITS3_0) || \ 00183 ((VALUE) == DAC_LFSRUNMASK_BITS4_0) || \ 00184 ((VALUE) == DAC_LFSRUNMASK_BITS5_0) || \ 00185 ((VALUE) == DAC_LFSRUNMASK_BITS6_0) || \ 00186 ((VALUE) == DAC_LFSRUNMASK_BITS7_0) || \ 00187 ((VALUE) == DAC_LFSRUNMASK_BITS8_0) || \ 00188 ((VALUE) == DAC_LFSRUNMASK_BITS9_0) || \ 00189 ((VALUE) == DAC_LFSRUNMASK_BITS10_0) || \ 00190 ((VALUE) == DAC_LFSRUNMASK_BITS11_0) || \ 00191 ((VALUE) == DAC_TRIANGLEAMPLITUDE_1) || \ 00192 ((VALUE) == DAC_TRIANGLEAMPLITUDE_3) || \ 00193 ((VALUE) == DAC_TRIANGLEAMPLITUDE_7) || \ 00194 ((VALUE) == DAC_TRIANGLEAMPLITUDE_15) || \ 00195 ((VALUE) == DAC_TRIANGLEAMPLITUDE_31) || \ 00196 ((VALUE) == DAC_TRIANGLEAMPLITUDE_63) || \ 00197 ((VALUE) == DAC_TRIANGLEAMPLITUDE_127) || \ 00198 ((VALUE) == DAC_TRIANGLEAMPLITUDE_255) || \ 00199 ((VALUE) == DAC_TRIANGLEAMPLITUDE_511) || \ 00200 ((VALUE) == DAC_TRIANGLEAMPLITUDE_1023) || \ 00201 ((VALUE) == DAC_TRIANGLEAMPLITUDE_2047) || \ 00202 ((VALUE) == DAC_TRIANGLEAMPLITUDE_4095)) 00203 00204 00205 00206 /** 00207 * @} 00208 */ 00209 00210 /* Exported functions --------------------------------------------------------*/ 00211 /* Extended features functions ***********************************************/ 00212 00213 /** @addtogroup DACEx_Exported_Functions 00214 * @{ 00215 */ 00216 00217 /** @addtogroup DACEx_Exported_Functions_Group2 00218 * @{ 00219 */ 00220 /* IO operation functions *****************************************************/ 00221 00222 HAL_StatusTypeDef HAL_DACEx_TriangleWaveGenerate(DAC_HandleTypeDef* hdac, uint32_t Channel, uint32_t Amplitude); 00223 HAL_StatusTypeDef HAL_DACEx_NoiseWaveGenerate(DAC_HandleTypeDef* hdac, uint32_t Channel, uint32_t Amplitude); 00224 00225 #if defined (STM32L431xx) || defined (STM32L432xx) || defined (STM32L433xx) || defined (STM32L442xx) || defined (STM32L443xx) || \ 00226 defined (STM32L471xx) || defined (STM32L475xx) || defined (STM32L476xx) || defined (STM32L485xx) || defined (STM32L486xx) || defined (STM32L496xx) || defined (STM32L4A6xx) || \ 00227 defined (STM32L4R5xx) || defined (STM32L4R7xx) || defined (STM32L4R9xx) || defined (STM32L4S5xx) || defined (STM32L4S7xx) || defined(STM32L4S9xx) 00228 HAL_StatusTypeDef HAL_DACEx_DualSetValue(DAC_HandleTypeDef* hdac, uint32_t Alignment, uint32_t Data1, uint32_t Data2); 00229 #endif /* STM32L431xx STM32L432xx STM32L433xx STM32L442xx STM32L443xx */ 00230 /* STM32L471xx STM32L475xx STM32L476xx STM32L485xx STM32L486xx STM32L496xx STM32L4A6xx */ 00231 /* STM32L4R5xx STM32L4R7xx STM32L4R9xx STM32L4S5xx STM32L4S7xx STM32L4S9xx */ 00232 #if defined (STM32L431xx) || defined (STM32L432xx) || defined (STM32L433xx) || defined (STM32L442xx) || defined (STM32L443xx) || \ 00233 defined (STM32L471xx) || defined (STM32L475xx) || defined (STM32L476xx) || defined (STM32L485xx) || defined (STM32L486xx) || defined (STM32L496xx) || defined (STM32L4A6xx) || \ 00234 defined (STM32L4R5xx) || defined (STM32L4R7xx) || defined (STM32L4R9xx) || defined (STM32L4S5xx) || defined (STM32L4S7xx) || defined(STM32L4S9xx) 00235 void HAL_DACEx_ConvCpltCallbackCh2(DAC_HandleTypeDef* hdac); 00236 void HAL_DACEx_ConvHalfCpltCallbackCh2(DAC_HandleTypeDef* hdac); 00237 void HAL_DACEx_ErrorCallbackCh2(DAC_HandleTypeDef* hdac); 00238 void HAL_DACEx_DMAUnderrunCallbackCh2(DAC_HandleTypeDef* hdac); 00239 #endif /* STM32L431xx STM32L432xx STM32L433xx STM32L442xx STM32L443xx */ 00240 /* STM32L471xx STM32L475xx STM32L476xx STM32L485xx STM32L486xx STM32L496xx STM32L4A6xx */ 00241 /* STM32L4R5xx STM32L4R7xx STM32L4R9xx STM32L4S5xx STM32L4S7xx STM32L4S9xx */ 00242 00243 HAL_StatusTypeDef HAL_DACEx_SelfCalibrate (DAC_HandleTypeDef* hdac, DAC_ChannelConfTypeDef* sConfig, uint32_t Channel); 00244 HAL_StatusTypeDef HAL_DACEx_SetUserTrimming (DAC_HandleTypeDef* hdac, DAC_ChannelConfTypeDef* sConfig, uint32_t Channel, uint32_t NewTrimmingValue); 00245 00246 /** 00247 * @} 00248 */ 00249 00250 /** @addtogroup DACEx_Exported_Functions_Group3 00251 * @{ 00252 */ 00253 /* Peripheral Control functions ***********************************************/ 00254 00255 #if defined (STM32L431xx) || defined (STM32L432xx) || defined (STM32L433xx) || defined (STM32L442xx) || defined (STM32L443xx) || \ 00256 defined (STM32L471xx) || defined (STM32L475xx) || defined (STM32L476xx) || defined (STM32L485xx) || defined (STM32L486xx) || defined (STM32L496xx) || defined (STM32L4A6xx) || \ 00257 defined (STM32L4R5xx) || defined (STM32L4R7xx) || defined (STM32L4R9xx) || defined (STM32L4S5xx) || defined (STM32L4S7xx) || defined(STM32L4S9xx) 00258 uint32_t HAL_DACEx_DualGetValue(DAC_HandleTypeDef* hdac); 00259 #endif /* STM32L431xx STM32L432xx STM32L433xx STM32L442xx STM32L443xx */ 00260 /* STM32L471xx STM32L475xx STM32L476xx STM32L485xx STM32L486xx STM32L496xx STM32L4A6xx */ 00261 /* STM32L4R5xx STM32L4R7xx STM32L4R9xx STM32L4S5xx STM32L4S7xx STM32L4S9xx */ 00262 00263 uint32_t HAL_DACEx_GetTrimOffset (DAC_HandleTypeDef *hdac, uint32_t Channel); 00264 00265 /** 00266 * @} 00267 */ 00268 00269 /** 00270 * @} 00271 */ 00272 00273 #if defined (STM32L431xx) || defined (STM32L432xx) || defined (STM32L433xx) || defined (STM32L442xx) || defined (STM32L443xx) || \ 00274 defined (STM32L471xx) || defined (STM32L475xx) || defined (STM32L476xx) || defined (STM32L485xx) || defined (STM32L486xx) || defined (STM32L496xx) || defined (STM32L4A6xx) || \ 00275 defined (STM32L4R5xx) || defined (STM32L4R7xx) || defined (STM32L4R9xx) || defined (STM32L4S5xx) || defined (STM32L4S7xx) || defined(STM32L4S9xx) 00276 00277 /** @addtogroup DACEx_Private_Functions 00278 * @{ 00279 */ 00280 00281 /* DAC_DMAConvCpltCh2 / DAC_DMAErrorCh2 / DAC_DMAHalfConvCpltCh2 */ 00282 /* are called by HAL_DAC_Start_DMA */ 00283 void DAC_DMAConvCpltCh2(DMA_HandleTypeDef *hdma); 00284 void DAC_DMAErrorCh2(DMA_HandleTypeDef *hdma); 00285 void DAC_DMAHalfConvCpltCh2(DMA_HandleTypeDef *hdma); 00286 00287 /** 00288 * @} 00289 */ 00290 #endif /* STM32L431xx STM32L432xx STM32L433xx STM32L442xx STM32L443xx */ 00291 /* STM32L471xx STM32L475xx STM32L476xx STM32L485xx STM32L486xx STM32L496xx STM32L4A6xx */ 00292 /* STM32L4R5xx STM32L4R7xx STM32L4R9xx STM32L4S5xx STM32L4S7xx STM32L4S9xx */ 00293 /** 00294 * @} 00295 */ 00296 00297 /** 00298 * @} 00299 */ 00300 00301 #ifdef __cplusplus 00302 } 00303 #endif 00304 00305 #endif /*__STM32L4xx_HAL_DAC_EX_H */ 00306 00307 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/