Subversion Repositories LedShow

Rev

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. /**
  2.   ******************************************************************************
  3.   * @file    stm32f1xx_hal_dac_ex.h
  4.   * @author  MCD Application Team
  5.   * @brief   Header file of DAC HAL Extension module.
  6.   ******************************************************************************
  7.   * @attention
  8.   *
  9.   * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
  10.   *
  11.   * Redistribution and use in source and binary forms, with or without modification,
  12.   * are permitted provided that the following conditions are met:
  13.   *   1. Redistributions of source code must retain the above copyright notice,
  14.   *      this list of conditions and the following disclaimer.
  15.   *   2. Redistributions in binary form must reproduce the above copyright notice,
  16.   *      this list of conditions and the following disclaimer in the documentation
  17.   *      and/or other materials provided with the distribution.
  18.   *   3. Neither the name of STMicroelectronics nor the names of its contributors
  19.   *      may be used to endorse or promote products derived from this software
  20.   *      without specific prior written permission.
  21.   *
  22.   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  23.   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  24.   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  25.   * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
  26.   * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  27.   * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
  28.   * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
  29.   * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  30.   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  31.   * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  32.   *
  33.   ******************************************************************************
  34.   */
  35.  
  36. /* Define to prevent recursive inclusion -------------------------------------*/
  37. #ifndef __STM32F1xx_HAL_DAC_EX_H
  38. #define __STM32F1xx_HAL_DAC_EX_H
  39.  
  40. #ifdef __cplusplus
  41.  extern "C" {
  42. #endif
  43.  
  44. #if defined (STM32F100xB) || defined (STM32F100xE) || defined (STM32F101xE) || defined (STM32F101xG) || defined (STM32F103xE) || defined (STM32F103xG) || defined (STM32F105xC) || defined (STM32F107xC)
  45.    
  46. /* Includes ------------------------------------------------------------------*/
  47. #include "stm32f1xx_hal_def.h"
  48.  
  49. /** @addtogroup STM32F1xx_HAL_Driver
  50.   * @{
  51.   */
  52.  
  53. /** @addtogroup DACEx
  54.   * @{
  55.   */
  56.  
  57. /* Exported types ------------------------------------------------------------*/
  58.  
  59. /* Exported constants --------------------------------------------------------*/
  60.  
  61. /** @defgroup DACEx_Exported_Constants DACEx Exported Constants
  62.   * @{
  63.   */
  64.  
  65. /** @defgroup DACEx_lfsrunmask_triangleamplitude DACEx lfsrunmask triangleamplitude
  66.   * @{
  67.   */
  68. #define DAC_LFSRUNMASK_BIT0                0x00000000U /*!< Unmask DAC channel LFSR bit0 for noise wave generation */
  69. #define DAC_LFSRUNMASK_BITS1_0             ((uint32_t)DAC_CR_MAMP1_0) /*!< Unmask DAC channel LFSR bit[1:0] for noise wave generation */
  70. #define DAC_LFSRUNMASK_BITS2_0             ((uint32_t)DAC_CR_MAMP1_1) /*!< Unmask DAC channel LFSR bit[2:0] for noise wave generation */
  71. #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 */
  72. #define DAC_LFSRUNMASK_BITS4_0             ((uint32_t)DAC_CR_MAMP1_2) /*!< Unmask DAC channel LFSR bit[4:0] for noise wave generation */
  73. #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 */
  74. #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 */
  75. #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 */
  76. #define DAC_LFSRUNMASK_BITS8_0             ((uint32_t)DAC_CR_MAMP1_3) /*!< Unmask DAC channel LFSR bit[8:0] for noise wave generation */
  77. #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 */
  78. #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 */
  79. #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 */
  80. #define DAC_TRIANGLEAMPLITUDE_1            0x00000000U /*!< Select max triangle amplitude of 1 */
  81. #define DAC_TRIANGLEAMPLITUDE_3            ((uint32_t)DAC_CR_MAMP1_0) /*!< Select max triangle amplitude of 3 */
  82. #define DAC_TRIANGLEAMPLITUDE_7            ((uint32_t)DAC_CR_MAMP1_1) /*!< Select max triangle amplitude of 7 */
  83. #define DAC_TRIANGLEAMPLITUDE_15           ((uint32_t)DAC_CR_MAMP1_1 | DAC_CR_MAMP1_0) /*!< Select max triangle amplitude of 15 */
  84. #define DAC_TRIANGLEAMPLITUDE_31           ((uint32_t)DAC_CR_MAMP1_2) /*!< Select max triangle amplitude of 31 */
  85. #define DAC_TRIANGLEAMPLITUDE_63           ((uint32_t)DAC_CR_MAMP1_2 | DAC_CR_MAMP1_0) /*!< Select max triangle amplitude of 63 */
  86. #define DAC_TRIANGLEAMPLITUDE_127          ((uint32_t)DAC_CR_MAMP1_2 | DAC_CR_MAMP1_1) /*!< Select max triangle amplitude of 127 */
  87. #define DAC_TRIANGLEAMPLITUDE_255          ((uint32_t)DAC_CR_MAMP1_2 | DAC_CR_MAMP1_1 | DAC_CR_MAMP1_0) /*!< Select max triangle amplitude of 255 */
  88. #define DAC_TRIANGLEAMPLITUDE_511          ((uint32_t)DAC_CR_MAMP1_3) /*!< Select max triangle amplitude of 511 */
  89. #define DAC_TRIANGLEAMPLITUDE_1023         ((uint32_t)DAC_CR_MAMP1_3 | DAC_CR_MAMP1_0) /*!< Select max triangle amplitude of 1023 */
  90. #define DAC_TRIANGLEAMPLITUDE_2047         ((uint32_t)DAC_CR_MAMP1_3 | DAC_CR_MAMP1_1) /*!< Select max triangle amplitude of 2047 */
  91. #define DAC_TRIANGLEAMPLITUDE_4095         ((uint32_t)DAC_CR_MAMP1_3 | DAC_CR_MAMP1_1 | DAC_CR_MAMP1_0) /*!< Select max triangle amplitude of 4095 */
  92.  
  93. /**
  94.   * @}
  95.   */
  96.  
  97. /** @defgroup DACEx_trigger_selection DAC trigger selection
  98.   * @{
  99.   */
  100. #define DAC_TRIGGER_NONE                   0x00000000U            /*!< Conversion is automatic once the DAC1_DHRxxxx register
  101.                                                                        has been loaded, and not by external trigger */
  102. #define DAC_TRIGGER_T6_TRGO                ((uint32_t)                                                    DAC_CR_TEN1)  /*!< TIM6 TRGO selected as external conversion trigger for DAC channel */
  103. #define DAC_TRIGGER_T7_TRGO                ((uint32_t)(                 DAC_CR_TSEL1_1                  | DAC_CR_TEN1)) /*!< TIM7 TRGO selected as external conversion trigger for DAC channel */
  104. #define DAC_TRIGGER_T2_TRGO                ((uint32_t)(DAC_CR_TSEL1_2                                   | DAC_CR_TEN1)) /*!< TIM2 TRGO selected as external conversion trigger for DAC channel */
  105. #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 */
  106. #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 */
  107. #define DAC_TRIGGER_SOFTWARE               ((uint32_t)(DAC_CR_TSEL1                                     | DAC_CR_TEN1)) /*!< Conversion started by software trigger for DAC channel */
  108.  
  109. #if defined (STM32F101xE) || defined (STM32F101xG) || defined (STM32F103xE) || defined (STM32F103xG)
  110. /* For STM32F10x high-density and XL-density devices: TIM8 */
  111. #define DAC_TRIGGER_T8_TRGO                ((uint32_t)                                   DAC_CR_TSEL1_0 | DAC_CR_TEN1)  /*!< TIM8 TRGO selected as external conversion trigger for DAC channel */
  112. #endif /* STM32F101xE || STM32F101xG || STM32F103xE || STM32F103xG */
  113.    
  114. #if defined (STM32F100xB) || defined (STM32F100xE) || defined (STM32F105xC) || defined (STM32F107xC)
  115. /* For STM32F10x connectivity line devices and STM32F100x devices: TIM3 */
  116. #define DAC_TRIGGER_T3_TRGO                ((uint32_t)                                   DAC_CR_TSEL1_0 | DAC_CR_TEN1)  /*!< TIM3 TRGO selected as external conversion trigger for DAC channel */
  117. #endif /* STM32F100xB || STM32F100xE || STM32F105xC || STM32F107xC */
  118.  
  119. /* Availability of trigger from TIM5 and TIM15:                               */
  120. /*  - For STM32F10x value line devices STM32F100xB:                           */
  121. /*    trigger from TIM15 is available, TIM5 not available.                    */
  122. /*  - For STM32F10x value line devices STM32F100xE:                           */
  123. /*    trigger from TIM15 and TIM5 are both available,                         */
  124. /*    selection depends on remap (with TIM5 as default configuration).        */
  125. /*  - Other STM32F1 devices:                                                  */
  126. /*    trigger from TIM5 is available, TIM15 not  available.                   */
  127. #if defined (STM32F100xB)
  128. #define DAC_TRIGGER_T15_TRGO               ((uint32_t)(                 DAC_CR_TSEL1_1 | DAC_CR_TSEL1_0 | DAC_CR_TEN1)) /*!< TIM15 TRGO selected as external conversion trigger for DAC channel */
  129. #else
  130.  
  131. #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 */
  132.  
  133. #if defined (STM32F100xE)
  134. /*!< DAC trigger availability depending on STM32F1 devices:
  135.      For STM32F100x high-density value line devices, the TIM15 TRGO event can be selected
  136.      as replacement of TIM5 TRGO if the MISC_REMAP bit in the AFIO_MAPR2 register is set.
  137.      Refer to macro "__HAL_AFIO_REMAP_MISC_ENABLE()/__HAL_AFIO_REMAP_MISC_DISABLE()".
  138.      Otherwise, TIM5 TRGO is used and TIM15 TRGO is not used (default case).
  139.      For more details please refer to the AFIO section. */
  140. #define DAC_TRIGGER_T15_TRGO    DAC_TRIGGER_T5_TRGO
  141. #endif /* STM32F100xE */
  142.    
  143. #endif /* STM32F100xB */
  144. /**
  145.   * @}
  146.   */
  147.  
  148. #if defined (STM32F100xB) || defined (STM32F100xE)
  149. /** @defgroup DAC_flags_definition DAC flags definition
  150.   * @{
  151.   */
  152. #define DAC_FLAG_DMAUDR1                   ((uint32_t)DAC_SR_DMAUDR1)
  153. #define DAC_FLAG_DMAUDR2                   ((uint32_t)DAC_SR_DMAUDR2)  
  154.  
  155. /**
  156.   * @}
  157.   */
  158.  
  159. /** @defgroup DAC_IT_definition DAC IT definition
  160.   * @{
  161.   */
  162. #define DAC_IT_DMAUDR1                   ((uint32_t)DAC_SR_DMAUDR1)
  163. #define DAC_IT_DMAUDR2                   ((uint32_t)DAC_SR_DMAUDR2)  
  164.  
  165. /**
  166.   * @}
  167.   */
  168. #endif /* STM32F100xB || STM32F100xE */
  169.  
  170. /**
  171.   * @}
  172.   */
  173.  
  174. /* Exported macro ------------------------------------------------------------*/
  175.  
  176. #if defined (STM32F100xB) || defined (STM32F100xE)
  177. /** @defgroup DACEx_Exported_Macros DACEx Exported Macros
  178.   * @{
  179.   */
  180.  
  181. /** @brief Enable the DAC interrupt
  182.   * @param  __HANDLE__: specifies the DAC handle
  183.   * @param  __INTERRUPT__: specifies the DAC interrupt.
  184.   *          This parameter can be any combination of the following values:
  185.   *            @arg DAC_IT_DMAUDR1: DAC channel 1 DMA underrun interrupt
  186.   *            @arg DAC_IT_DMAUDR2: DAC channel 2 DMA underrun interrupt
  187.   * @retval None
  188.   */
  189. #define __HAL_DAC_ENABLE_IT(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->CR) |= (__INTERRUPT__))
  190.  
  191. /** @brief Disable the DAC interrupt
  192.   * @param  __HANDLE__: specifies the DAC handle
  193.   * @param  __INTERRUPT__: specifies the DAC interrupt.
  194.   *          This parameter can be any combination of the following values:
  195.   *            @arg DAC_IT_DMAUDR1: DAC channel 1 DMA underrun interrupt
  196.   *            @arg DAC_IT_DMAUDR2: DAC channel 2 DMA underrun interrupt
  197.   * @retval None
  198.   */
  199. #define __HAL_DAC_DISABLE_IT(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->CR) &= ~(__INTERRUPT__))
  200.  
  201. /** @brief  Checks if the specified DAC interrupt source is enabled or disabled.
  202.   * @param __HANDLE__: DAC handle
  203.   * @param __INTERRUPT__: DAC interrupt source to check
  204.   *          This parameter can be any combination of the following values:
  205.   *            @arg DAC_IT_DMAUDR1: DAC channel 1 DMA underrun interrupt
  206.   *            @arg DAC_IT_DMAUDR2: DAC channel 2 DMA underrun interrupt
  207.   * @retval State of interruption (SET or RESET)
  208.   */
  209. #define __HAL_DAC_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->CR & (__INTERRUPT__)) == (__INTERRUPT__))
  210.    
  211. /** @brief  Get the selected DAC's flag status.
  212.   * @param  __HANDLE__: specifies the DAC handle.
  213.   * @param  __FLAG__: specifies the DAC flag to get.
  214.   *          This parameter can be any combination of the following values:
  215.   *            @arg DAC_FLAG_DMAUDR1: DAC channel 1 DMA underrun flag
  216.   *            @arg DAC_FLAG_DMAUDR2: DAC channel 2 DMA underrun flag
  217.   * @retval None
  218.   */
  219. #define __HAL_DAC_GET_FLAG(__HANDLE__, __FLAG__) ((((__HANDLE__)->Instance->SR) & (__FLAG__)) == (__FLAG__))
  220.  
  221. /** @brief  Clear the DAC's flag.
  222.   * @param  __HANDLE__: specifies the DAC handle.
  223.   * @param  __FLAG__: specifies the DAC flag to clear.
  224.   *          This parameter can be any combination of the following values:
  225.   *            @arg DAC_FLAG_DMAUDR1: DAC channel 1 DMA underrun flag
  226.   *            @arg DAC_FLAG_DMAUDR2: DAC channel 2 DMA underrun flag
  227.   * @retval None
  228.   */
  229. #define __HAL_DAC_CLEAR_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->SR) = (__FLAG__))
  230.  
  231.  
  232. /**
  233.   * @}
  234.   */
  235. #endif /* STM32F100xB || STM32F100xE */
  236.  
  237. /* Private macro -------------------------------------------------------------*/
  238.  
  239. /** @defgroup DACEx_Private_Macros DACEx Private Macros
  240.   * @{
  241.   */
  242. #if defined (STM32F101xE) || defined (STM32F101xG) || defined (STM32F103xE) || defined (STM32F103xG)
  243. #define IS_DAC_TRIGGER(TRIGGER) (((TRIGGER) == DAC_TRIGGER_NONE)    || \
  244.                                  ((TRIGGER) == DAC_TRIGGER_T6_TRGO) || \
  245.                                  ((TRIGGER) == DAC_TRIGGER_T8_TRGO) || \
  246.                                  ((TRIGGER) == DAC_TRIGGER_T7_TRGO) || \
  247.                                  ((TRIGGER) == DAC_TRIGGER_T5_TRGO) || \
  248.                                  ((TRIGGER) == DAC_TRIGGER_T2_TRGO) || \
  249.                                  ((TRIGGER) == DAC_TRIGGER_T4_TRGO) || \
  250.                                  ((TRIGGER) == DAC_TRIGGER_EXT_IT9) || \
  251.                                  ((TRIGGER) == DAC_TRIGGER_SOFTWARE))
  252. #endif /* STM32F101xE || STM32F101xG || STM32F103xE || STM32F103xG */
  253. #if defined (STM32F100xE) || defined (STM32F105xC) || defined (STM32F107xC)
  254. #define IS_DAC_TRIGGER(TRIGGER) (((TRIGGER) == DAC_TRIGGER_NONE)    || \
  255.                                  ((TRIGGER) == DAC_TRIGGER_T6_TRGO) || \
  256.                                  ((TRIGGER) == DAC_TRIGGER_T3_TRGO) || \
  257.                                  ((TRIGGER) == DAC_TRIGGER_T7_TRGO) || \
  258.                                  ((TRIGGER) == DAC_TRIGGER_T5_TRGO) || \
  259.                                  ((TRIGGER) == DAC_TRIGGER_T2_TRGO) || \
  260.                                  ((TRIGGER) == DAC_TRIGGER_T4_TRGO) || \
  261.                                  ((TRIGGER) == DAC_TRIGGER_EXT_IT9) || \
  262.                                  ((TRIGGER) == DAC_TRIGGER_SOFTWARE))
  263. #endif /* STM32F100xE || STM32F105xC || STM32F107xC */
  264. #if defined (STM32F100xB)
  265. #define IS_DAC_TRIGGER(TRIGGER) (((TRIGGER) == DAC_TRIGGER_NONE)     || \
  266.                                  ((TRIGGER) == DAC_TRIGGER_T6_TRGO)  || \
  267.                                  ((TRIGGER) == DAC_TRIGGER_T3_TRGO)  || \
  268.                                  ((TRIGGER) == DAC_TRIGGER_T7_TRGO)  || \
  269.                                  ((TRIGGER) == DAC_TRIGGER_T15_TRGO) || \
  270.                                  ((TRIGGER) == DAC_TRIGGER_T2_TRGO)  || \
  271.                                  ((TRIGGER) == DAC_TRIGGER_T4_TRGO)  || \
  272.                                  ((TRIGGER) == DAC_TRIGGER_EXT_IT9)  || \
  273.                                  ((TRIGGER) == DAC_TRIGGER_SOFTWARE))
  274. #endif /* STM32F100xB */
  275.  
  276. #define IS_DAC_LFSR_UNMASK_TRIANGLE_AMPLITUDE(VALUE) (((VALUE) == DAC_LFSRUNMASK_BIT0) || \
  277.                                                       ((VALUE) == DAC_LFSRUNMASK_BITS1_0) || \
  278.                                                       ((VALUE) == DAC_LFSRUNMASK_BITS2_0) || \
  279.                                                       ((VALUE) == DAC_LFSRUNMASK_BITS3_0) || \
  280.                                                       ((VALUE) == DAC_LFSRUNMASK_BITS4_0) || \
  281.                                                       ((VALUE) == DAC_LFSRUNMASK_BITS5_0) || \
  282.                                                       ((VALUE) == DAC_LFSRUNMASK_BITS6_0) || \
  283.                                                       ((VALUE) == DAC_LFSRUNMASK_BITS7_0) || \
  284.                                                       ((VALUE) == DAC_LFSRUNMASK_BITS8_0) || \
  285.                                                       ((VALUE) == DAC_LFSRUNMASK_BITS9_0) || \
  286.                                                       ((VALUE) == DAC_LFSRUNMASK_BITS10_0) || \
  287.                                                       ((VALUE) == DAC_LFSRUNMASK_BITS11_0) || \
  288.                                                       ((VALUE) == DAC_TRIANGLEAMPLITUDE_1) || \
  289.                                                       ((VALUE) == DAC_TRIANGLEAMPLITUDE_3) || \
  290.                                                       ((VALUE) == DAC_TRIANGLEAMPLITUDE_7) || \
  291.                                                       ((VALUE) == DAC_TRIANGLEAMPLITUDE_15) || \
  292.                                                       ((VALUE) == DAC_TRIANGLEAMPLITUDE_31) || \
  293.                                                       ((VALUE) == DAC_TRIANGLEAMPLITUDE_63) || \
  294.                                                       ((VALUE) == DAC_TRIANGLEAMPLITUDE_127) || \
  295.                                                       ((VALUE) == DAC_TRIANGLEAMPLITUDE_255) || \
  296.                                                       ((VALUE) == DAC_TRIANGLEAMPLITUDE_511) || \
  297.                                                       ((VALUE) == DAC_TRIANGLEAMPLITUDE_1023) || \
  298.                                                       ((VALUE) == DAC_TRIANGLEAMPLITUDE_2047) || \
  299.                                                       ((VALUE) == DAC_TRIANGLEAMPLITUDE_4095))
  300.  
  301. /**
  302.   * @}
  303.   */
  304.  
  305.  
  306. /* Exported functions --------------------------------------------------------*/  
  307.  
  308. /** @addtogroup DACEx_Exported_Functions
  309.   * @{
  310.   */
  311.  
  312. /** @addtogroup DACEx_Exported_Functions_Group1
  313.   * @{
  314.   */
  315. /* Extension features functions ***********************************************/
  316.  
  317. uint32_t HAL_DACEx_DualGetValue(DAC_HandleTypeDef* hdac);
  318. HAL_StatusTypeDef HAL_DACEx_TriangleWaveGenerate(DAC_HandleTypeDef* hdac, uint32_t Channel, uint32_t Amplitude);
  319. HAL_StatusTypeDef HAL_DACEx_NoiseWaveGenerate(DAC_HandleTypeDef* hdac, uint32_t Channel, uint32_t Amplitude);
  320. HAL_StatusTypeDef HAL_DACEx_DualSetValue(DAC_HandleTypeDef* hdac, uint32_t Alignment, uint32_t Data1, uint32_t Data2);
  321.  
  322. void HAL_DACEx_ConvCpltCallbackCh2(DAC_HandleTypeDef* hdac);
  323. void HAL_DACEx_ConvHalfCpltCallbackCh2(DAC_HandleTypeDef* hdac);
  324. void HAL_DACEx_ErrorCallbackCh2(DAC_HandleTypeDef* hdac);
  325.  
  326. #if defined (STM32F100xB) || defined (STM32F100xE)
  327. void HAL_DAC_IRQHandler(DAC_HandleTypeDef* hdac);
  328. void HAL_DAC_DMAUnderrunCallbackCh1(DAC_HandleTypeDef *hdac);
  329. void HAL_DACEx_DMAUnderrunCallbackCh2(DAC_HandleTypeDef* hdac);
  330. #endif /* STM32F100xB) || defined (STM32F100xE) */
  331.  
  332. /**
  333.   * @}
  334.   */
  335.  
  336.  
  337.  
  338.    
  339. /**
  340.   * @}
  341.   */
  342.  
  343. /** @addtogroup DACEx_Private_Functions
  344.   * @{
  345.   */
  346. void DAC_DMAConvCpltCh2(DMA_HandleTypeDef *hdma);
  347. void DAC_DMAHalfConvCpltCh2(DMA_HandleTypeDef *hdma);
  348. void DAC_DMAErrorCh2(DMA_HandleTypeDef *hdma);
  349.  
  350. /**
  351.   * @}
  352.   */
  353.  
  354. /**
  355.   * @}
  356.   */
  357.  
  358. /**
  359.   * @}
  360.   */
  361.  
  362. #endif /* STM32F100xB || STM32F100xE || STM32F101xE || STM32F101xG || STM32F103xE || STM32F103xG || STM32F105xC || STM32F107xC */
  363.  
  364. #ifdef __cplusplus
  365. }
  366. #endif
  367.  
  368. #endif /*__STM32F1xx_HAL_DAC_EX_H */
  369.  
  370. /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
  371.