philippe s. / mbed-dev

Fork of mbed-dev by mbed official

Committer:
neurofun
Date:
Tue Feb 23 21:59:35 2016 +0000
Revision:
70:b3a5af880266
Parent:
0:9b334a45a8ff
Edited DAC routines to allow for the simultaneous use of three channels from two DACs as seen on the STM32F334R8 and STM32F303K8. Edited ADC routines to allow for the simultaneous use of more than one ADC.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bogdanm 0:9b334a45a8ff 1 /**
bogdanm 0:9b334a45a8ff 2 ******************************************************************************
bogdanm 0:9b334a45a8ff 3 * @file stm32f30x_dac.h
bogdanm 0:9b334a45a8ff 4 * @author MCD Application Team
bogdanm 0:9b334a45a8ff 5 * @version V1.1.0
bogdanm 0:9b334a45a8ff 6 * @date 27-February-2014
bogdanm 0:9b334a45a8ff 7 * @brief This file contains all the functions prototypes for the DAC firmware
bogdanm 0:9b334a45a8ff 8 * library.
bogdanm 0:9b334a45a8ff 9 ******************************************************************************
bogdanm 0:9b334a45a8ff 10 * @attention
bogdanm 0:9b334a45a8ff 11 *
bogdanm 0:9b334a45a8ff 12 * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
bogdanm 0:9b334a45a8ff 13 *
bogdanm 0:9b334a45a8ff 14 * Redistribution and use in source and binary forms, with or without modification,
bogdanm 0:9b334a45a8ff 15 * are permitted provided that the following conditions are met:
bogdanm 0:9b334a45a8ff 16 * 1. Redistributions of source code must retain the above copyright notice,
bogdanm 0:9b334a45a8ff 17 * this list of conditions and the following disclaimer.
bogdanm 0:9b334a45a8ff 18 * 2. Redistributions in binary form must reproduce the above copyright notice,
bogdanm 0:9b334a45a8ff 19 * this list of conditions and the following disclaimer in the documentation
bogdanm 0:9b334a45a8ff 20 * and/or other materials provided with the distribution.
bogdanm 0:9b334a45a8ff 21 * 3. Neither the name of STMicroelectronics nor the names of its contributors
bogdanm 0:9b334a45a8ff 22 * may be used to endorse or promote products derived from this software
bogdanm 0:9b334a45a8ff 23 * without specific prior written permission.
bogdanm 0:9b334a45a8ff 24 *
bogdanm 0:9b334a45a8ff 25 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
bogdanm 0:9b334a45a8ff 26 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
bogdanm 0:9b334a45a8ff 27 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
bogdanm 0:9b334a45a8ff 28 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
bogdanm 0:9b334a45a8ff 29 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
bogdanm 0:9b334a45a8ff 30 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
bogdanm 0:9b334a45a8ff 31 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
bogdanm 0:9b334a45a8ff 32 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
bogdanm 0:9b334a45a8ff 33 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
bogdanm 0:9b334a45a8ff 34 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
bogdanm 0:9b334a45a8ff 35 *
bogdanm 0:9b334a45a8ff 36 ******************************************************************************
bogdanm 0:9b334a45a8ff 37 */
bogdanm 0:9b334a45a8ff 38
bogdanm 0:9b334a45a8ff 39 /* Define to prevent recursive inclusion -------------------------------------*/
bogdanm 0:9b334a45a8ff 40 #ifndef __STM32F30x_DAC_H
bogdanm 0:9b334a45a8ff 41 #define __STM32F30x_DAC_H
bogdanm 0:9b334a45a8ff 42
bogdanm 0:9b334a45a8ff 43 #ifdef __cplusplus
bogdanm 0:9b334a45a8ff 44 extern "C" {
bogdanm 0:9b334a45a8ff 45 #endif
bogdanm 0:9b334a45a8ff 46
bogdanm 0:9b334a45a8ff 47 /* Includes ------------------------------------------------------------------*/
bogdanm 0:9b334a45a8ff 48 #include "stm32f30x.h"
bogdanm 0:9b334a45a8ff 49
bogdanm 0:9b334a45a8ff 50 /** @addtogroup STM32F30x_StdPeriph_Driver
bogdanm 0:9b334a45a8ff 51 * @{
bogdanm 0:9b334a45a8ff 52 */
bogdanm 0:9b334a45a8ff 53
bogdanm 0:9b334a45a8ff 54 /** @addtogroup DAC
bogdanm 0:9b334a45a8ff 55 * @{
bogdanm 0:9b334a45a8ff 56 */
bogdanm 0:9b334a45a8ff 57
bogdanm 0:9b334a45a8ff 58 /* Exported types ------------------------------------------------------------*/
bogdanm 0:9b334a45a8ff 59 #define DAC_CR_DMAUDRIE ((uint32_t)0x00002000) /*!< DAC channel DMA underrun interrupt enable */
bogdanm 0:9b334a45a8ff 60
bogdanm 0:9b334a45a8ff 61 /**
bogdanm 0:9b334a45a8ff 62 * @brief DAC Init structure definition
bogdanm 0:9b334a45a8ff 63 */
bogdanm 0:9b334a45a8ff 64
bogdanm 0:9b334a45a8ff 65 typedef struct
bogdanm 0:9b334a45a8ff 66 {
bogdanm 0:9b334a45a8ff 67 uint32_t DAC_Trigger; /*!< Specifies the external trigger for the selected DAC channel.
bogdanm 0:9b334a45a8ff 68 This parameter can be a value of @ref DAC_trigger_selection */
bogdanm 0:9b334a45a8ff 69
bogdanm 0:9b334a45a8ff 70 uint32_t DAC_WaveGeneration; /*!< Specifies whether DAC channel noise waves or triangle waves
bogdanm 0:9b334a45a8ff 71 are generated, or whether no wave is generated.
bogdanm 0:9b334a45a8ff 72 This parameter can be a value of @ref DAC_wave_generation */
bogdanm 0:9b334a45a8ff 73
bogdanm 0:9b334a45a8ff 74 uint32_t DAC_LFSRUnmask_TriangleAmplitude; /*!< Specifies the LFSR mask for noise wave generation or
bogdanm 0:9b334a45a8ff 75 the maximum amplitude triangle generation for the DAC channel.
bogdanm 0:9b334a45a8ff 76 This parameter can be a value of @ref DAC_lfsrunmask_triangleamplitude */
bogdanm 0:9b334a45a8ff 77
bogdanm 0:9b334a45a8ff 78 uint32_t DAC_Buffer_Switch; /*!< Specifies whether the DAC channel output buffer is enabled or disabled or
bogdanm 0:9b334a45a8ff 79 the DAC channel output switch is enabled or disabled.
bogdanm 0:9b334a45a8ff 80 This parameter can be a value of @ref DAC_buffer_switch */
bogdanm 0:9b334a45a8ff 81 }DAC_InitTypeDef;
bogdanm 0:9b334a45a8ff 82
bogdanm 0:9b334a45a8ff 83 /* Exported constants --------------------------------------------------------*/
bogdanm 0:9b334a45a8ff 84
bogdanm 0:9b334a45a8ff 85 /** @defgroup DAC_Exported_Constants
bogdanm 0:9b334a45a8ff 86 * @{
bogdanm 0:9b334a45a8ff 87 */
bogdanm 0:9b334a45a8ff 88
bogdanm 0:9b334a45a8ff 89 #define IS_DAC_ALL_PERIPH(PERIPH) (((PERIPH) == DAC1) || \
bogdanm 0:9b334a45a8ff 90 ((PERIPH) == DAC2))
bogdanm 0:9b334a45a8ff 91
bogdanm 0:9b334a45a8ff 92 #define IS_DAC_LIST1_PERIPH(PERIPH) (((PERIPH) == DAC1))
bogdanm 0:9b334a45a8ff 93
bogdanm 0:9b334a45a8ff 94 /** @defgroup DAC_trigger_selection
bogdanm 0:9b334a45a8ff 95 * @{
bogdanm 0:9b334a45a8ff 96 */
bogdanm 0:9b334a45a8ff 97
bogdanm 0:9b334a45a8ff 98 #define DAC_Trigger_None ((uint32_t)0x00000000) /*!< Conversion is automatic once the DAC1_DHRxxxx register
bogdanm 0:9b334a45a8ff 99 has been loaded, and not by external trigger */
bogdanm 0:9b334a45a8ff 100 #define DAC_Trigger_T6_TRGO ((uint32_t)0x00000004) /*!< TIM6 TRGO selected as external conversion trigger for DAC1/2 channel1/2 */
bogdanm 0:9b334a45a8ff 101 #define DAC_Trigger_T3_TRGO ((uint32_t)0x0000000C) /*!< TIM3 TRGO selected as external conversion trigger for DAC1/2 channel1/2 */
bogdanm 0:9b334a45a8ff 102 #define DAC_Trigger_T8_TRGO ((uint32_t)0x0000000C) /*!< TIM8 TRGO selected as external conversion trigger for DAC1 channel1/2 */
bogdanm 0:9b334a45a8ff 103 #define DAC_Trigger_T7_TRGO ((uint32_t)0x00000014) /*!< TIM7 TRGO selected as external conversion trigger for DAC1/2 channel1/2 */
bogdanm 0:9b334a45a8ff 104 #define DAC_Trigger_T15_TRGO ((uint32_t)0x0000001C) /*!< TIM15 TRGO selected as external conversion trigger for DAC1/2 channel1/2 */
bogdanm 0:9b334a45a8ff 105 #define DAC_Trigger_HRTIM1_DACTRG1 ((uint32_t)0x0000001C) /*!< HRTIM1 DACTRG1 selected as external conversion trigger for DAC1 channel1/2 */
bogdanm 0:9b334a45a8ff 106 #define DAC_Trigger_T2_TRGO ((uint32_t)0x00000024) /*!< TIM2 TRGO selected as external conversion trigger for DAC1/2 channel1/2 */
bogdanm 0:9b334a45a8ff 107 #define DAC_Trigger_T4_TRGO ((uint32_t)0x0000002C) /*!< TIM4 TRGO selected as external conversion trigger for DAC channel */
bogdanm 0:9b334a45a8ff 108 #define DAC_Trigger_HRTIM1_DACTRG2 ((uint32_t)0x0000002C) /*!< HRTIM1 DACTRG2 selected as external conversion trigger for DAC1 channel1/2 */
bogdanm 0:9b334a45a8ff 109 #define DAC_Trigger_HRTIM1_DACTRG3 ((uint32_t)0x0000002C) /*!< HRTIM1 DACTRG3 selected as external conversion trigger for DAC2 channel1 */
bogdanm 0:9b334a45a8ff 110 #define DAC_Trigger_Ext_IT9 ((uint32_t)0x00000034) /*!< EXTI Line9 event selected as external conversion trigger for DAC1/2 channel1/2 */
bogdanm 0:9b334a45a8ff 111 #define DAC_Trigger_Software ((uint32_t)0x0000003C) /*!< Conversion started by software trigger for DAC1/2 channel1/2 */
bogdanm 0:9b334a45a8ff 112
bogdanm 0:9b334a45a8ff 113 #define IS_DAC_TRIGGER(TRIGGER) (((TRIGGER) == DAC_Trigger_None) || \
bogdanm 0:9b334a45a8ff 114 ((TRIGGER) == DAC_Trigger_T6_TRGO) || \
bogdanm 0:9b334a45a8ff 115 ((TRIGGER) == DAC_Trigger_T3_TRGO) || \
bogdanm 0:9b334a45a8ff 116 ((TRIGGER) == DAC_Trigger_T8_TRGO) || \
bogdanm 0:9b334a45a8ff 117 ((TRIGGER) == DAC_Trigger_T7_TRGO) || \
bogdanm 0:9b334a45a8ff 118 ((TRIGGER) == DAC_Trigger_T15_TRGO) || \
bogdanm 0:9b334a45a8ff 119 ((TRIGGER) == DAC_Trigger_HRTIM1_DACTRG1)|| \
bogdanm 0:9b334a45a8ff 120 ((TRIGGER) == DAC_Trigger_T2_TRGO) || \
bogdanm 0:9b334a45a8ff 121 ((TRIGGER) == DAC_Trigger_T4_TRGO) || \
bogdanm 0:9b334a45a8ff 122 ((TRIGGER) == DAC_Trigger_HRTIM1_DACTRG2)|| \
bogdanm 0:9b334a45a8ff 123 ((TRIGGER) == DAC_Trigger_HRTIM1_DACTRG3)|| \
bogdanm 0:9b334a45a8ff 124 ((TRIGGER) == DAC_Trigger_Ext_IT9) || \
bogdanm 0:9b334a45a8ff 125 ((TRIGGER) == DAC_Trigger_Software))
bogdanm 0:9b334a45a8ff 126
bogdanm 0:9b334a45a8ff 127 /**
bogdanm 0:9b334a45a8ff 128 * @}
bogdanm 0:9b334a45a8ff 129 */
bogdanm 0:9b334a45a8ff 130
bogdanm 0:9b334a45a8ff 131 /** @defgroup DAC_wave_generation
bogdanm 0:9b334a45a8ff 132 * @{
bogdanm 0:9b334a45a8ff 133 */
bogdanm 0:9b334a45a8ff 134
bogdanm 0:9b334a45a8ff 135 #define DAC_WaveGeneration_None ((uint32_t)0x00000000)
bogdanm 0:9b334a45a8ff 136 #define DAC_WaveGeneration_Noise ((uint32_t)0x00000040)
bogdanm 0:9b334a45a8ff 137 #define DAC_WaveGeneration_Triangle ((uint32_t)0x00000080)
bogdanm 0:9b334a45a8ff 138
bogdanm 0:9b334a45a8ff 139 #define IS_DAC_GENERATE_WAVE(WAVE) (((WAVE) == DAC_WaveGeneration_None) || \
bogdanm 0:9b334a45a8ff 140 ((WAVE) == DAC_WaveGeneration_Noise) || \
bogdanm 0:9b334a45a8ff 141 ((WAVE) == DAC_WaveGeneration_Triangle))
bogdanm 0:9b334a45a8ff 142 /**
bogdanm 0:9b334a45a8ff 143 * @}
bogdanm 0:9b334a45a8ff 144 */
bogdanm 0:9b334a45a8ff 145
bogdanm 0:9b334a45a8ff 146 /** @defgroup DAC_lfsrunmask_triangleamplitude
bogdanm 0:9b334a45a8ff 147 * @{
bogdanm 0:9b334a45a8ff 148 */
bogdanm 0:9b334a45a8ff 149
bogdanm 0:9b334a45a8ff 150 #define DAC_LFSRUnmask_Bit0 ((uint32_t)0x00000000) /*!< Unmask DAC channel LFSR bit0 for noise wave generation */
bogdanm 0:9b334a45a8ff 151 #define DAC_LFSRUnmask_Bits1_0 ((uint32_t)0x00000100) /*!< Unmask DAC channel LFSR bit[1:0] for noise wave generation */
bogdanm 0:9b334a45a8ff 152 #define DAC_LFSRUnmask_Bits2_0 ((uint32_t)0x00000200) /*!< Unmask DAC channel LFSR bit[2:0] for noise wave generation */
bogdanm 0:9b334a45a8ff 153 #define DAC_LFSRUnmask_Bits3_0 ((uint32_t)0x00000300) /*!< Unmask DAC channel LFSR bit[3:0] for noise wave generation */
bogdanm 0:9b334a45a8ff 154 #define DAC_LFSRUnmask_Bits4_0 ((uint32_t)0x00000400) /*!< Unmask DAC channel LFSR bit[4:0] for noise wave generation */
bogdanm 0:9b334a45a8ff 155 #define DAC_LFSRUnmask_Bits5_0 ((uint32_t)0x00000500) /*!< Unmask DAC channel LFSR bit[5:0] for noise wave generation */
bogdanm 0:9b334a45a8ff 156 #define DAC_LFSRUnmask_Bits6_0 ((uint32_t)0x00000600) /*!< Unmask DAC channel LFSR bit[6:0] for noise wave generation */
bogdanm 0:9b334a45a8ff 157 #define DAC_LFSRUnmask_Bits7_0 ((uint32_t)0x00000700) /*!< Unmask DAC channel LFSR bit[7:0] for noise wave generation */
bogdanm 0:9b334a45a8ff 158 #define DAC_LFSRUnmask_Bits8_0 ((uint32_t)0x00000800) /*!< Unmask DAC channel LFSR bit[8:0] for noise wave generation */
bogdanm 0:9b334a45a8ff 159 #define DAC_LFSRUnmask_Bits9_0 ((uint32_t)0x00000900) /*!< Unmask DAC channel LFSR bit[9:0] for noise wave generation */
bogdanm 0:9b334a45a8ff 160 #define DAC_LFSRUnmask_Bits10_0 ((uint32_t)0x00000A00) /*!< Unmask DAC channel LFSR bit[10:0] for noise wave generation */
bogdanm 0:9b334a45a8ff 161 #define DAC_LFSRUnmask_Bits11_0 ((uint32_t)0x00000B00) /*!< Unmask DAC channel LFSR bit[11:0] for noise wave generation */
bogdanm 0:9b334a45a8ff 162 #define DAC_TriangleAmplitude_1 ((uint32_t)0x00000000) /*!< Select max triangle amplitude of 1 */
bogdanm 0:9b334a45a8ff 163 #define DAC_TriangleAmplitude_3 ((uint32_t)0x00000100) /*!< Select max triangle amplitude of 3 */
bogdanm 0:9b334a45a8ff 164 #define DAC_TriangleAmplitude_7 ((uint32_t)0x00000200) /*!< Select max triangle amplitude of 7 */
bogdanm 0:9b334a45a8ff 165 #define DAC_TriangleAmplitude_15 ((uint32_t)0x00000300) /*!< Select max triangle amplitude of 15 */
bogdanm 0:9b334a45a8ff 166 #define DAC_TriangleAmplitude_31 ((uint32_t)0x00000400) /*!< Select max triangle amplitude of 31 */
bogdanm 0:9b334a45a8ff 167 #define DAC_TriangleAmplitude_63 ((uint32_t)0x00000500) /*!< Select max triangle amplitude of 63 */
bogdanm 0:9b334a45a8ff 168 #define DAC_TriangleAmplitude_127 ((uint32_t)0x00000600) /*!< Select max triangle amplitude of 127 */
bogdanm 0:9b334a45a8ff 169 #define DAC_TriangleAmplitude_255 ((uint32_t)0x00000700) /*!< Select max triangle amplitude of 255 */
bogdanm 0:9b334a45a8ff 170 #define DAC_TriangleAmplitude_511 ((uint32_t)0x00000800) /*!< Select max triangle amplitude of 511 */
bogdanm 0:9b334a45a8ff 171 #define DAC_TriangleAmplitude_1023 ((uint32_t)0x00000900) /*!< Select max triangle amplitude of 1023 */
bogdanm 0:9b334a45a8ff 172 #define DAC_TriangleAmplitude_2047 ((uint32_t)0x00000A00) /*!< Select max triangle amplitude of 2047 */
bogdanm 0:9b334a45a8ff 173 #define DAC_TriangleAmplitude_4095 ((uint32_t)0x00000B00) /*!< Select max triangle amplitude of 4095 */
bogdanm 0:9b334a45a8ff 174
bogdanm 0:9b334a45a8ff 175 #define IS_DAC_LFSR_UNMASK_TRIANGLE_AMPLITUDE(VALUE) (((VALUE) == DAC_LFSRUnmask_Bit0) || \
bogdanm 0:9b334a45a8ff 176 ((VALUE) == DAC_LFSRUnmask_Bits1_0) || \
bogdanm 0:9b334a45a8ff 177 ((VALUE) == DAC_LFSRUnmask_Bits2_0) || \
bogdanm 0:9b334a45a8ff 178 ((VALUE) == DAC_LFSRUnmask_Bits3_0) || \
bogdanm 0:9b334a45a8ff 179 ((VALUE) == DAC_LFSRUnmask_Bits4_0) || \
bogdanm 0:9b334a45a8ff 180 ((VALUE) == DAC_LFSRUnmask_Bits5_0) || \
bogdanm 0:9b334a45a8ff 181 ((VALUE) == DAC_LFSRUnmask_Bits6_0) || \
bogdanm 0:9b334a45a8ff 182 ((VALUE) == DAC_LFSRUnmask_Bits7_0) || \
bogdanm 0:9b334a45a8ff 183 ((VALUE) == DAC_LFSRUnmask_Bits8_0) || \
bogdanm 0:9b334a45a8ff 184 ((VALUE) == DAC_LFSRUnmask_Bits9_0) || \
bogdanm 0:9b334a45a8ff 185 ((VALUE) == DAC_LFSRUnmask_Bits10_0) || \
bogdanm 0:9b334a45a8ff 186 ((VALUE) == DAC_LFSRUnmask_Bits11_0) || \
bogdanm 0:9b334a45a8ff 187 ((VALUE) == DAC_TriangleAmplitude_1) || \
bogdanm 0:9b334a45a8ff 188 ((VALUE) == DAC_TriangleAmplitude_3) || \
bogdanm 0:9b334a45a8ff 189 ((VALUE) == DAC_TriangleAmplitude_7) || \
bogdanm 0:9b334a45a8ff 190 ((VALUE) == DAC_TriangleAmplitude_15) || \
bogdanm 0:9b334a45a8ff 191 ((VALUE) == DAC_TriangleAmplitude_31) || \
bogdanm 0:9b334a45a8ff 192 ((VALUE) == DAC_TriangleAmplitude_63) || \
bogdanm 0:9b334a45a8ff 193 ((VALUE) == DAC_TriangleAmplitude_127) || \
bogdanm 0:9b334a45a8ff 194 ((VALUE) == DAC_TriangleAmplitude_255) || \
bogdanm 0:9b334a45a8ff 195 ((VALUE) == DAC_TriangleAmplitude_511) || \
bogdanm 0:9b334a45a8ff 196 ((VALUE) == DAC_TriangleAmplitude_1023) || \
bogdanm 0:9b334a45a8ff 197 ((VALUE) == DAC_TriangleAmplitude_2047) || \
bogdanm 0:9b334a45a8ff 198 ((VALUE) == DAC_TriangleAmplitude_4095))
bogdanm 0:9b334a45a8ff 199 /**
bogdanm 0:9b334a45a8ff 200 * @}
bogdanm 0:9b334a45a8ff 201 */
bogdanm 0:9b334a45a8ff 202
bogdanm 0:9b334a45a8ff 203 /** @defgroup DAC_buffer_switch
bogdanm 0:9b334a45a8ff 204 * @{
bogdanm 0:9b334a45a8ff 205 */
bogdanm 0:9b334a45a8ff 206
bogdanm 0:9b334a45a8ff 207 #define DAC_BufferSwitch_Disable ((uint32_t)0x00000000)
bogdanm 0:9b334a45a8ff 208 #define DAC_BufferSwitch_Enable ((uint32_t)0x00000002)
bogdanm 0:9b334a45a8ff 209
bogdanm 0:9b334a45a8ff 210 #define IS_DAC_BUFFER_SWITCH_STATE(STATE) (((STATE) == DAC_BufferSwitch_Enable) || \
bogdanm 0:9b334a45a8ff 211 ((STATE) == DAC_BufferSwitch_Disable))
bogdanm 0:9b334a45a8ff 212 /**
bogdanm 0:9b334a45a8ff 213 * @}
bogdanm 0:9b334a45a8ff 214 */
bogdanm 0:9b334a45a8ff 215
bogdanm 0:9b334a45a8ff 216 /** @defgroup DAC_Channel_selection
bogdanm 0:9b334a45a8ff 217 * @{
bogdanm 0:9b334a45a8ff 218 */
bogdanm 0:9b334a45a8ff 219 #define DAC_Channel_1 ((uint32_t)0x00000000)
bogdanm 0:9b334a45a8ff 220 #define DAC_Channel_2 ((uint32_t)0x00000010)
bogdanm 0:9b334a45a8ff 221
bogdanm 0:9b334a45a8ff 222 #define IS_DAC_CHANNEL(CHANNEL) (((CHANNEL) == DAC_Channel_1) || \
bogdanm 0:9b334a45a8ff 223 ((CHANNEL) == DAC_Channel_2))
bogdanm 0:9b334a45a8ff 224 /**
bogdanm 0:9b334a45a8ff 225 * @}
bogdanm 0:9b334a45a8ff 226 */
bogdanm 0:9b334a45a8ff 227
bogdanm 0:9b334a45a8ff 228 /** @defgroup DAC_data_alignement
bogdanm 0:9b334a45a8ff 229 * @{
bogdanm 0:9b334a45a8ff 230 */
bogdanm 0:9b334a45a8ff 231
bogdanm 0:9b334a45a8ff 232 #define DAC_Align_12b_R ((uint32_t)0x00000000)
bogdanm 0:9b334a45a8ff 233 #define DAC_Align_12b_L ((uint32_t)0x00000004)
bogdanm 0:9b334a45a8ff 234 #define DAC_Align_8b_R ((uint32_t)0x00000008)
bogdanm 0:9b334a45a8ff 235
bogdanm 0:9b334a45a8ff 236 #define IS_DAC_ALIGN(ALIGN) (((ALIGN) == DAC_Align_12b_R) || \
bogdanm 0:9b334a45a8ff 237 ((ALIGN) == DAC_Align_12b_L) || \
bogdanm 0:9b334a45a8ff 238 ((ALIGN) == DAC_Align_8b_R))
bogdanm 0:9b334a45a8ff 239 /**
bogdanm 0:9b334a45a8ff 240 * @}
bogdanm 0:9b334a45a8ff 241 */
bogdanm 0:9b334a45a8ff 242
bogdanm 0:9b334a45a8ff 243 /** @defgroup DAC_wave_generation
bogdanm 0:9b334a45a8ff 244 * @{
bogdanm 0:9b334a45a8ff 245 */
bogdanm 0:9b334a45a8ff 246
bogdanm 0:9b334a45a8ff 247 #define DAC_Wave_Noise ((uint32_t)0x00000040)
bogdanm 0:9b334a45a8ff 248 #define DAC_Wave_Triangle ((uint32_t)0x00000080)
bogdanm 0:9b334a45a8ff 249
bogdanm 0:9b334a45a8ff 250 #define IS_DAC_WAVE(WAVE) (((WAVE) == DAC_Wave_Noise) || \
bogdanm 0:9b334a45a8ff 251 ((WAVE) == DAC_Wave_Triangle))
bogdanm 0:9b334a45a8ff 252 /**
bogdanm 0:9b334a45a8ff 253 * @}
bogdanm 0:9b334a45a8ff 254 */
bogdanm 0:9b334a45a8ff 255
bogdanm 0:9b334a45a8ff 256 /** @defgroup DAC_data
bogdanm 0:9b334a45a8ff 257 * @{
bogdanm 0:9b334a45a8ff 258 */
bogdanm 0:9b334a45a8ff 259
bogdanm 0:9b334a45a8ff 260 #define IS_DAC_DATA(DATA) ((DATA) <= 0xFFF0)
bogdanm 0:9b334a45a8ff 261 /**
bogdanm 0:9b334a45a8ff 262 * @}
bogdanm 0:9b334a45a8ff 263 */
bogdanm 0:9b334a45a8ff 264
bogdanm 0:9b334a45a8ff 265 /** @defgroup DAC_interrupts_definition
bogdanm 0:9b334a45a8ff 266 * @{
bogdanm 0:9b334a45a8ff 267 */
bogdanm 0:9b334a45a8ff 268 #define DAC_IT_DMAUDR ((uint32_t)0x00002000)
bogdanm 0:9b334a45a8ff 269 #define IS_DAC_IT(IT) (((IT) == DAC_IT_DMAUDR))
bogdanm 0:9b334a45a8ff 270
bogdanm 0:9b334a45a8ff 271 /**
bogdanm 0:9b334a45a8ff 272 * @}
bogdanm 0:9b334a45a8ff 273 */
bogdanm 0:9b334a45a8ff 274
bogdanm 0:9b334a45a8ff 275 /** @defgroup DAC_flags_definition
bogdanm 0:9b334a45a8ff 276 * @{
bogdanm 0:9b334a45a8ff 277 */
bogdanm 0:9b334a45a8ff 278
bogdanm 0:9b334a45a8ff 279 #define DAC_FLAG_DMAUDR ((uint32_t)0x00002000)
bogdanm 0:9b334a45a8ff 280 #define IS_DAC_FLAG(FLAG) (((FLAG) == DAC_FLAG_DMAUDR))
bogdanm 0:9b334a45a8ff 281
bogdanm 0:9b334a45a8ff 282 /**
bogdanm 0:9b334a45a8ff 283 * @}
bogdanm 0:9b334a45a8ff 284 */
bogdanm 0:9b334a45a8ff 285
bogdanm 0:9b334a45a8ff 286 /**
bogdanm 0:9b334a45a8ff 287 * @}
bogdanm 0:9b334a45a8ff 288 */
bogdanm 0:9b334a45a8ff 289
bogdanm 0:9b334a45a8ff 290 /* Exported macro ------------------------------------------------------------*/
bogdanm 0:9b334a45a8ff 291 /* Exported functions --------------------------------------------------------*/
bogdanm 0:9b334a45a8ff 292
bogdanm 0:9b334a45a8ff 293 /* Function used to set the DAC configuration to the default reset state *****/
bogdanm 0:9b334a45a8ff 294 void DAC_DeInit(DAC_TypeDef* DACx);
bogdanm 0:9b334a45a8ff 295
bogdanm 0:9b334a45a8ff 296 /* DAC channels configuration: trigger, output buffer, data format functions */
bogdanm 0:9b334a45a8ff 297 void DAC_Init(DAC_TypeDef* DACx, uint32_t DAC_Channel, DAC_InitTypeDef* DAC_InitStruct);
bogdanm 0:9b334a45a8ff 298 void DAC_StructInit(DAC_InitTypeDef* DAC_InitStruct);
bogdanm 0:9b334a45a8ff 299 void DAC_Cmd(DAC_TypeDef* DACx, uint32_t DAC_Channel, FunctionalState NewState);
bogdanm 0:9b334a45a8ff 300 void DAC_SoftwareTriggerCmd(DAC_TypeDef* DACx, uint32_t DAC_Channel, FunctionalState NewState);
bogdanm 0:9b334a45a8ff 301 void DAC_DualSoftwareTriggerCmd(DAC_TypeDef* DACx, FunctionalState NewState);
bogdanm 0:9b334a45a8ff 302 void DAC_WaveGenerationCmd(DAC_TypeDef* DACx, uint32_t DAC_Channel, uint32_t DAC_Wave, FunctionalState NewState);
bogdanm 0:9b334a45a8ff 303 void DAC_SetChannel1Data(DAC_TypeDef* DACx, uint32_t DAC_Align, uint16_t Data);
bogdanm 0:9b334a45a8ff 304 void DAC_SetChannel2Data(DAC_TypeDef* DACx, uint32_t DAC_Align, uint16_t Data);
bogdanm 0:9b334a45a8ff 305 void DAC_SetDualChannelData(DAC_TypeDef* DACx, uint32_t DAC_Align, uint16_t Data2, uint16_t Data1);
bogdanm 0:9b334a45a8ff 306 uint16_t DAC_GetDataOutputValue(DAC_TypeDef* DACx, uint32_t DAC_Channel);
bogdanm 0:9b334a45a8ff 307
bogdanm 0:9b334a45a8ff 308 /* DMA management functions ***************************************************/
bogdanm 0:9b334a45a8ff 309 void DAC_DMACmd(DAC_TypeDef* DACx, uint32_t DAC_Channel, FunctionalState NewState);
bogdanm 0:9b334a45a8ff 310
bogdanm 0:9b334a45a8ff 311 /* Interrupts and flags management functions **********************************/
bogdanm 0:9b334a45a8ff 312 void DAC_ITConfig(DAC_TypeDef* DACx, uint32_t DAC_Channel, uint32_t DAC_IT, FunctionalState NewState);
bogdanm 0:9b334a45a8ff 313 FlagStatus DAC_GetFlagStatus(DAC_TypeDef* DACx, uint32_t DAC_Channel, uint32_t DAC_FLAG);
bogdanm 0:9b334a45a8ff 314 void DAC_ClearFlag(DAC_TypeDef* DACx, uint32_t DAC_Channel, uint32_t DAC_FLAG);
bogdanm 0:9b334a45a8ff 315 ITStatus DAC_GetITStatus(DAC_TypeDef* DACx, uint32_t DAC_Channel, uint32_t DAC_IT);
bogdanm 0:9b334a45a8ff 316 void DAC_ClearITPendingBit(DAC_TypeDef* DACx, uint32_t DAC_Channel, uint32_t DAC_IT);
bogdanm 0:9b334a45a8ff 317
bogdanm 0:9b334a45a8ff 318 #ifdef __cplusplus
bogdanm 0:9b334a45a8ff 319 }
bogdanm 0:9b334a45a8ff 320 #endif
bogdanm 0:9b334a45a8ff 321
bogdanm 0:9b334a45a8ff 322 #endif /*__STM32F30x_DAC_H */
bogdanm 0:9b334a45a8ff 323
bogdanm 0:9b334a45a8ff 324 /**
bogdanm 0:9b334a45a8ff 325 * @}
bogdanm 0:9b334a45a8ff 326 */
bogdanm 0:9b334a45a8ff 327
bogdanm 0:9b334a45a8ff 328 /**
bogdanm 0:9b334a45a8ff 329 * @}
bogdanm 0:9b334a45a8ff 330 */
bogdanm 0:9b334a45a8ff 331
bogdanm 0:9b334a45a8ff 332 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/