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