STM32F439xx HAL User Manual
|
00001 /** 00002 ****************************************************************************** 00003 * @file stm32f4xx_hal_dac.h 00004 * @author MCD Application Team 00005 * @brief Header file of DAC HAL Extension 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 __STM32F4xx_HAL_DAC_EX_H 00038 #define __STM32F4xx_HAL_DAC_EX_H 00039 00040 #ifdef __cplusplus 00041 extern "C" { 00042 #endif 00043 00044 #if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx) ||\ 00045 defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) ||\ 00046 defined(STM32F410Tx) || defined(STM32F410Cx) || defined(STM32F410Rx) || defined(STM32F446xx) ||\ 00047 defined(STM32F469xx) || defined(STM32F479xx) || defined(STM32F413xx) || defined(STM32F423xx) 00048 00049 /* Includes ------------------------------------------------------------------*/ 00050 #include "stm32f4xx_hal_def.h" 00051 00052 /** @addtogroup STM32F4xx_HAL_Driver 00053 * @{ 00054 */ 00055 00056 /** @addtogroup DACEx 00057 * @{ 00058 */ 00059 00060 /* Exported types ------------------------------------------------------------*/ 00061 /* Exported constants --------------------------------------------------------*/ 00062 /** @defgroup DACEx_Exported_Constants DAC Exported Constants 00063 * @{ 00064 */ 00065 00066 /** @defgroup DACEx_lfsrunmask_triangleamplitude DAC LFS Run Mask Triangle Amplitude 00067 * @{ 00068 */ 00069 #define DAC_LFSRUNMASK_BIT0 0x00000000U /*!< Unmask DAC channel LFSR bit0 for noise wave generation */ 00070 #define DAC_LFSRUNMASK_BITS1_0 ((uint32_t)DAC_CR_MAMP1_0) /*!< Unmask DAC channel LFSR bit[1:0] for noise wave generation */ 00071 #define DAC_LFSRUNMASK_BITS2_0 ((uint32_t)DAC_CR_MAMP1_1) /*!< Unmask DAC channel LFSR bit[2:0] for noise wave generation */ 00072 #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 */ 00073 #define DAC_LFSRUNMASK_BITS4_0 ((uint32_t)DAC_CR_MAMP1_2) /*!< Unmask DAC channel LFSR bit[4:0] for noise wave generation */ 00074 #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 */ 00075 #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 */ 00076 #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 */ 00077 #define DAC_LFSRUNMASK_BITS8_0 ((uint32_t)DAC_CR_MAMP1_3) /*!< Unmask DAC channel LFSR bit[8:0] for noise wave generation */ 00078 #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 */ 00079 #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 */ 00080 #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 */ 00081 #define DAC_TRIANGLEAMPLITUDE_1 0x00000000U /*!< Select max triangle amplitude of 1 */ 00082 #define DAC_TRIANGLEAMPLITUDE_3 ((uint32_t)DAC_CR_MAMP1_0) /*!< Select max triangle amplitude of 3 */ 00083 #define DAC_TRIANGLEAMPLITUDE_7 ((uint32_t)DAC_CR_MAMP1_1) /*!< Select max triangle amplitude of 7 */ 00084 #define DAC_TRIANGLEAMPLITUDE_15 ((uint32_t)DAC_CR_MAMP1_1 | DAC_CR_MAMP1_0) /*!< Select max triangle amplitude of 15 */ 00085 #define DAC_TRIANGLEAMPLITUDE_31 ((uint32_t)DAC_CR_MAMP1_2) /*!< Select max triangle amplitude of 31 */ 00086 #define DAC_TRIANGLEAMPLITUDE_63 ((uint32_t)DAC_CR_MAMP1_2 | DAC_CR_MAMP1_0) /*!< Select max triangle amplitude of 63 */ 00087 #define DAC_TRIANGLEAMPLITUDE_127 ((uint32_t)DAC_CR_MAMP1_2 | DAC_CR_MAMP1_1) /*!< Select max triangle amplitude of 127 */ 00088 #define DAC_TRIANGLEAMPLITUDE_255 ((uint32_t)DAC_CR_MAMP1_2 | DAC_CR_MAMP1_1 | DAC_CR_MAMP1_0) /*!< Select max triangle amplitude of 255 */ 00089 #define DAC_TRIANGLEAMPLITUDE_511 ((uint32_t)DAC_CR_MAMP1_3) /*!< Select max triangle amplitude of 511 */ 00090 #define DAC_TRIANGLEAMPLITUDE_1023 ((uint32_t)DAC_CR_MAMP1_3 | DAC_CR_MAMP1_0) /*!< Select max triangle amplitude of 1023 */ 00091 #define DAC_TRIANGLEAMPLITUDE_2047 ((uint32_t)DAC_CR_MAMP1_3 | DAC_CR_MAMP1_1) /*!< Select max triangle amplitude of 2047 */ 00092 #define DAC_TRIANGLEAMPLITUDE_4095 ((uint32_t)DAC_CR_MAMP1_3 | DAC_CR_MAMP1_1 | DAC_CR_MAMP1_0) /*!< Select max triangle amplitude of 4095 */ 00093 /** 00094 * @} 00095 */ 00096 00097 /** 00098 * @} 00099 */ 00100 00101 /* Exported macro ------------------------------------------------------------*/ 00102 /* Exported functions --------------------------------------------------------*/ 00103 /** @addtogroup DACEx_Exported_Functions 00104 * @{ 00105 */ 00106 00107 /** @addtogroup DACEx_Exported_Functions_Group1 00108 * @{ 00109 */ 00110 /* Extension features functions ***********************************************/ 00111 uint32_t HAL_DACEx_DualGetValue(DAC_HandleTypeDef* hdac); 00112 HAL_StatusTypeDef HAL_DACEx_TriangleWaveGenerate(DAC_HandleTypeDef* hdac, uint32_t Channel, uint32_t Amplitude); 00113 HAL_StatusTypeDef HAL_DACEx_NoiseWaveGenerate(DAC_HandleTypeDef* hdac, uint32_t Channel, uint32_t Amplitude); 00114 HAL_StatusTypeDef HAL_DACEx_DualSetValue(DAC_HandleTypeDef* hdac, uint32_t Alignment, uint32_t Data1, uint32_t Data2); 00115 00116 void HAL_DACEx_ConvCpltCallbackCh2(DAC_HandleTypeDef* hdac); 00117 void HAL_DACEx_ConvHalfCpltCallbackCh2(DAC_HandleTypeDef* hdac); 00118 void HAL_DACEx_ErrorCallbackCh2(DAC_HandleTypeDef* hdac); 00119 void HAL_DACEx_DMAUnderrunCallbackCh2(DAC_HandleTypeDef* hdac); 00120 /** 00121 * @} 00122 */ 00123 00124 /** 00125 * @} 00126 */ 00127 /* Private types -------------------------------------------------------------*/ 00128 /* Private variables ---------------------------------------------------------*/ 00129 /* Private constants ---------------------------------------------------------*/ 00130 /** @defgroup DACEx_Private_Constants DAC Private Constants 00131 * @{ 00132 */ 00133 00134 /** 00135 * @} 00136 */ 00137 00138 /* Private macros ------------------------------------------------------------*/ 00139 /** @defgroup DACEx_Private_Macros DAC Private Macros 00140 * @{ 00141 */ 00142 #define IS_DAC_LFSR_UNMASK_TRIANGLE_AMPLITUDE(VALUE) (((VALUE) == DAC_LFSRUNMASK_BIT0) || \ 00143 ((VALUE) == DAC_LFSRUNMASK_BITS1_0) || \ 00144 ((VALUE) == DAC_LFSRUNMASK_BITS2_0) || \ 00145 ((VALUE) == DAC_LFSRUNMASK_BITS3_0) || \ 00146 ((VALUE) == DAC_LFSRUNMASK_BITS4_0) || \ 00147 ((VALUE) == DAC_LFSRUNMASK_BITS5_0) || \ 00148 ((VALUE) == DAC_LFSRUNMASK_BITS6_0) || \ 00149 ((VALUE) == DAC_LFSRUNMASK_BITS7_0) || \ 00150 ((VALUE) == DAC_LFSRUNMASK_BITS8_0) || \ 00151 ((VALUE) == DAC_LFSRUNMASK_BITS9_0) || \ 00152 ((VALUE) == DAC_LFSRUNMASK_BITS10_0) || \ 00153 ((VALUE) == DAC_LFSRUNMASK_BITS11_0) || \ 00154 ((VALUE) == DAC_TRIANGLEAMPLITUDE_1) || \ 00155 ((VALUE) == DAC_TRIANGLEAMPLITUDE_3) || \ 00156 ((VALUE) == DAC_TRIANGLEAMPLITUDE_7) || \ 00157 ((VALUE) == DAC_TRIANGLEAMPLITUDE_15) || \ 00158 ((VALUE) == DAC_TRIANGLEAMPLITUDE_31) || \ 00159 ((VALUE) == DAC_TRIANGLEAMPLITUDE_63) || \ 00160 ((VALUE) == DAC_TRIANGLEAMPLITUDE_127) || \ 00161 ((VALUE) == DAC_TRIANGLEAMPLITUDE_255) || \ 00162 ((VALUE) == DAC_TRIANGLEAMPLITUDE_511) || \ 00163 ((VALUE) == DAC_TRIANGLEAMPLITUDE_1023) || \ 00164 ((VALUE) == DAC_TRIANGLEAMPLITUDE_2047) || \ 00165 ((VALUE) == DAC_TRIANGLEAMPLITUDE_4095)) 00166 /** 00167 * @} 00168 */ 00169 00170 /* Private functions ---------------------------------------------------------*/ 00171 /** @defgroup DACEx_Private_Functions DAC Private Functions 00172 * @{ 00173 */ 00174 void DAC_DMAConvCpltCh2(DMA_HandleTypeDef *hdma); 00175 void DAC_DMAErrorCh2(DMA_HandleTypeDef *hdma); 00176 void DAC_DMAHalfConvCpltCh2(DMA_HandleTypeDef *hdma); 00177 /** 00178 * @} 00179 */ 00180 #endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx ||\ 00181 STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx ||\ 00182 STM32F410xx || STM32F446xx || STM32F469xx || STM32F479xx ||\ 00183 STM32F413xx || STM32F423xx */ 00184 00185 /** 00186 * @} 00187 */ 00188 00189 /** 00190 * @} 00191 */ 00192 00193 #ifdef __cplusplus 00194 } 00195 #endif 00196 00197 #endif /*__STM32F4xx_HAL_DAC_EX_H */ 00198 00199 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/