1 /** 2 ****************************************************************************** 3 * @file stm32f3xx_hal_dac_ex.h 4 * @author MCD Application Team 5 * @brief Header file of DAC HAL Extended module. 6 ****************************************************************************** 7 * @attention 8 * 9 * Copyright (c) 2016 STMicroelectronics. 10 * All rights reserved. 11 * 12 * This software is licensed under terms that can be found in the LICENSE file 13 * in the root directory of this software component. 14 * If no LICENSE file comes with this software, it is provided AS-IS. 15 * 16 ****************************************************************************** 17 */ 18 19 /* Define to prevent recursive inclusion -------------------------------------*/ 20 #ifndef STM32F3xx_HAL_DAC_EX_H 21 #define STM32F3xx_HAL_DAC_EX_H 22 23 #ifdef __cplusplus 24 extern "C" { 25 #endif 26 27 /* Includes ------------------------------------------------------------------*/ 28 #include "stm32f3xx_hal_def.h" 29 30 /** @addtogroup STM32F3xx_HAL_Driver 31 * @{ 32 */ 33 34 /** @addtogroup DACEx 35 * @{ 36 */ 37 38 /* Exported types ------------------------------------------------------------*/ 39 /* Exported constants --------------------------------------------------------*/ 40 /** @defgroup DACEx_Exported_Constants DACEx Exported Constants 41 * @{ 42 */ 43 44 /** @defgroup DACEx_trigger_selection DACEx trigger selection 45 * @{ 46 */ 47 48 #if defined(STM32F301x8) || defined(STM32F318xx) 49 #define DAC_TRIGGER_NONE (0x00000000U) /*!< Conversion is automatic once the DAC1_DHRxxxx register 50 has been loaded, and not by external trigger */ 51 #define DAC_TRIGGER_T6_TRGO ((uint32_t)DAC_CR_TEN1) /*!< TIM6 TRGO selected as external conversion trigger for DAC channel */ 52 #define DAC_TRIGGER_T2_TRGO ((uint32_t)(DAC_CR_TSEL1_2 | DAC_CR_TEN1)) /*!< TIM2 TRGO selected as external conversion trigger for DAC channel */ 53 #define DAC_TRIGGER_T15_TRGO ((uint32_t)(DAC_CR_TSEL1_1 | DAC_CR_TSEL1_0 | DAC_CR_TEN1)) /*!< TIM5 TRGO selected as external conversion trigger for DAC channel */ 54 #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 */ 55 #define DAC_TRIGGER_SOFTWARE ((uint32_t)(DAC_CR_TSEL1 | DAC_CR_TEN1)) /*!< Conversion started by software trigger for DAC channel */ 56 57 #define IS_DAC_TRIGGER(TRIGGER) (((TRIGGER) == DAC_TRIGGER_NONE) || \ 58 ((TRIGGER) == DAC_TRIGGER_T2_TRGO) || \ 59 ((TRIGGER) == DAC_TRIGGER_T6_TRGO) || \ 60 ((TRIGGER) == DAC_TRIGGER_T15_TRGO) || \ 61 ((TRIGGER) == DAC_TRIGGER_EXT_IT9) || \ 62 ((TRIGGER) == DAC_TRIGGER_SOFTWARE)) 63 #endif /* STM32F301x8 || STM32F318xx */ 64 65 #if defined(STM32F302xE) || \ 66 defined(STM32F302xC) || \ 67 defined(STM32F302x8) 68 69 #define DAC_TRIGGER_NONE (0x00000000U) /*!< Conversion is automatic once the DAC1_DHRxxxx register 70 has been loaded, and not by external trigger */ 71 #define DAC_TRIGGER_T6_TRGO ((uint32_t)DAC_CR_TEN1) /*!< TIM6 TRGO selected as external conversion trigger for DAC channel */ 72 #define DAC_TRIGGER_T3_TRGO ((uint32_t)(DAC_CR_TSEL1_0 | DAC_CR_TEN1)) /*!< TIM3 TRGO selected as external conversion trigger for DAC channel */ 73 #define DAC_TRIGGER_T15_TRGO ((uint32_t)(DAC_CR_TSEL1_1 | DAC_CR_TSEL1_0 | DAC_CR_TEN1)) /*!< TIM5 TRGO selected as external conversion trigger for DAC channel */ 74 #define DAC_TRIGGER_T2_TRGO ((uint32_t)(DAC_CR_TSEL1_2 | DAC_CR_TEN1)) /*!< TIM2 TRGO selected as external conversion trigger for DAC channel */ 75 #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 */ 76 #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 */ 77 #define DAC_TRIGGER_SOFTWARE ((uint32_t)(DAC_CR_TSEL1 | DAC_CR_TEN1)) /*!< Conversion started by software trigger for DAC channel */ 78 79 #define IS_DAC_TRIGGER(TRIGGER) (((TRIGGER) == DAC_TRIGGER_NONE) || \ 80 ((TRIGGER) == DAC_TRIGGER_T2_TRGO) || \ 81 ((TRIGGER) == DAC_TRIGGER_T3_TRGO) || \ 82 ((TRIGGER) == DAC_TRIGGER_T4_TRGO) || \ 83 ((TRIGGER) == DAC_TRIGGER_T15_TRGO) || \ 84 ((TRIGGER) == DAC_TRIGGER_T6_TRGO) || \ 85 ((TRIGGER) == DAC_TRIGGER_EXT_IT9) || \ 86 ((TRIGGER) == DAC_TRIGGER_SOFTWARE)) 87 88 #endif /* STM32F302xE || */ 89 /* STM32F302xC || */ 90 /* STM32F302x8 */ 91 92 #if defined(STM32F303xE) || defined(STM32F398xx) || \ 93 defined(STM32F303xC) || defined(STM32F358xx) 94 95 #define DAC_TRIGGER_NONE (0x00000000U) /*!< Conversion is automatic once the DAC1_DHRxxxx register 96 has been loaded, and not by external trigger */ 97 #define DAC_TRIGGER_T2_TRGO ((uint32_t)(DAC_CR_TSEL1_2 | DAC_CR_TEN1)) /*!< TIM2 TRGO selected as external conversion trigger for DAC channel */ 98 #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 */ 99 #define DAC_TRIGGER_T15_TRGO ((uint32_t)(DAC_CR_TSEL1_1 | DAC_CR_TSEL1_0 | DAC_CR_TEN1)) /*!< TIM5 TRGO selected as external conversion trigger for DAC channel */ 100 #define DAC_TRIGGER_T6_TRGO ((uint32_t)DAC_CR_TEN1) /*!< TIM6 TRGO selected as external conversion trigger for DAC channel */ 101 #define DAC_TRIGGER_T7_TRGO ((uint32_t)(DAC_CR_TSEL1_1 | DAC_CR_TEN1)) /*!< TIM7 TRGO selected as external conversion trigger for DAC channel */ 102 #define DAC_TRIGGER_T3_TRGO ((uint32_t)(DAC_CR_TSEL1_0 | DAC_CR_TEN1)) /*!< TIM3 TRGO selected as external conversion trigger for DAC channel 103 Use __HAL_REMAPTRIGGER_ENABLE(HAL_REMAPTRIGGER_DAC1_TRIG) for TIM3 selection */ 104 #define DAC_TRIGGER_T8_TRGO DAC_TRIGGER_T3_TRGO /*!< TIM8 TRGO selected as external conversion trigger for DAC channel 105 Use __HAL_REMAPTRIGGER_DISABLE(HAL_REMAPTRIGGER_DAC1_TRIG) for TIM8 selection */ 106 107 #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 */ 108 #define DAC_TRIGGER_SOFTWARE ((uint32_t)(DAC_CR_TSEL1 | DAC_CR_TEN1)) /*!< Conversion started by software trigger for DAC channel */ 109 110 #define IS_DAC_TRIGGER(TRIGGER) (((TRIGGER) == DAC_TRIGGER_NONE) || \ 111 ((TRIGGER) == DAC_TRIGGER_T2_TRGO) || \ 112 ((TRIGGER) == DAC_TRIGGER_T3_TRGO) || \ 113 ((TRIGGER) == DAC_TRIGGER_T4_TRGO) || \ 114 ((TRIGGER) == DAC_TRIGGER_T15_TRGO) || \ 115 ((TRIGGER) == DAC_TRIGGER_T6_TRGO) || \ 116 ((TRIGGER) == DAC_TRIGGER_T7_TRGO) || \ 117 ((TRIGGER) == DAC_TRIGGER_EXT_IT9) || \ 118 ((TRIGGER) == DAC_TRIGGER_SOFTWARE)) 119 #endif /* STM32F303xE || STM32F398xx || */ 120 /* STM32F303xC || STM32F358xx */ 121 122 123 #if defined(STM32F303x8) || defined(STM32F328xx) 124 125 #define DAC_TRIGGER_NONE (0x00000000U) /*!< Conversion is automatic once the DAC1_DHRxxxx register 126 has been loaded, and not by external trigger */ 127 #define DAC_TRIGGER_T2_TRGO ((uint32_t)(DAC_CR_TSEL1_2 | DAC_CR_TEN1)) /*!< TIM2 TRGO selected as external conversion trigger for DAC channel */ 128 #define DAC_TRIGGER_T15_TRGO ((uint32_t)(DAC_CR_TSEL1_1 | DAC_CR_TSEL1_0 | DAC_CR_TEN1)) /*!< TIM5 TRGO selected as external conversion trigger for DAC channel */ 129 #define DAC_TRIGGER_T6_TRGO ((uint32_t)DAC_CR_TEN1) /*!< TIM6 TRGO selected as external conversion trigger for DAC channel */ 130 #define DAC_TRIGGER_T7_TRGO ((uint32_t)(DAC_CR_TSEL1_1 | DAC_CR_TEN1)) /*!< TIM7 TRGO selected as external conversion trigger for DAC channel */ 131 #define DAC_TRIGGER_T3_TRGO ((uint32_t)(DAC_CR_TSEL1_0 | DAC_CR_TEN1)) /*!< TIM3 TRGO selected as external conversion trigger for DAC channel */ 132 133 #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 */ 134 #define DAC_TRIGGER_SOFTWARE ((uint32_t)(DAC_CR_TSEL1 | DAC_CR_TEN1)) /*!< Conversion started by software trigger for DAC channel */ 135 136 #define IS_DAC_TRIGGER(TRIGGER) (((TRIGGER) == DAC_TRIGGER_NONE) || \ 137 ((TRIGGER) == DAC_TRIGGER_T2_TRGO) || \ 138 ((TRIGGER) == DAC_TRIGGER_T3_TRGO) || \ 139 ((TRIGGER) == DAC_TRIGGER_T15_TRGO) || \ 140 ((TRIGGER) == DAC_TRIGGER_T6_TRGO) || \ 141 ((TRIGGER) == DAC_TRIGGER_T7_TRGO) || \ 142 ((TRIGGER) == DAC_TRIGGER_EXT_IT9) || \ 143 ((TRIGGER) == DAC_TRIGGER_SOFTWARE)) 144 145 #endif /* STM32F303x8 || STM32F328xx */ 146 147 148 #if defined(STM32F373xC) || defined(STM32F378xx) 149 150 #define DAC_TRIGGER_NONE (0x00000000U) /*!< Conversion is automatic once the DAC1_DHRxxxx register 151 has been loaded, and not by external trigger */ 152 153 #define DAC_TRIGGER_T2_TRGO ((uint32_t)(DAC_CR_TSEL1_2 | DAC_CR_TEN1)) /*!< TIM2 TRGO selected as external conversion trigger for DAC channel */ 154 #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 */ 155 #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 (DAC1) */ 156 #define DAC_TRIGGER_T18_TRGO DAC_TRIGGER_T5_TRGO /*!< TIM18 TRGO selected as external conversion trigger for DAC channel (DAC2) */ 157 #define DAC_TRIGGER_T6_TRGO ((uint32_t)DAC_CR_TEN1) /*!< TIM6 TRGO selected as external conversion trigger for DAC channel */ 158 #define DAC_TRIGGER_T7_TRGO ((uint32_t)(DAC_CR_TSEL1_1 | DAC_CR_TEN1)) /*!< TIM7 TRGO selected as external conversion trigger for DAC channel */ 159 #define DAC_TRIGGER_T3_TRGO ((uint32_t)(DAC_CR_TSEL1_0 | DAC_CR_TEN1)) /*!< TIM3 TRGO selected as external conversion trigger for DAC channel */ 160 161 #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 */ 162 #define DAC_TRIGGER_SOFTWARE ((uint32_t)(DAC_CR_TSEL1 | DAC_CR_TEN1)) /*!< Conversion started by software trigger for DAC channel */ 163 164 165 #define IS_DAC_TRIGGER(TRIGGER) (((TRIGGER) == DAC_TRIGGER_NONE) || \ 166 ((TRIGGER) == DAC_TRIGGER_T2_TRGO) || \ 167 ((TRIGGER) == DAC_TRIGGER_T3_TRGO) || \ 168 ((TRIGGER) == DAC_TRIGGER_T4_TRGO) || \ 169 ((TRIGGER) == DAC_TRIGGER_T5_TRGO) || \ 170 ((TRIGGER) == DAC_TRIGGER_T6_TRGO) || \ 171 ((TRIGGER) == DAC_TRIGGER_T7_TRGO) || \ 172 ((TRIGGER) == DAC_TRIGGER_EXT_IT9) || \ 173 ((TRIGGER) == DAC_TRIGGER_SOFTWARE)) 174 #endif /* STM32F373xC || STM32F378xx */ 175 176 #if defined(STM32F334x8) 177 178 #define DAC_TRIGGER_NONE (0x00000000U) /*!< Conversion is automatic once the DAC1_DHRxxxx register 179 has been loaded, and not by external trigger */ 180 #define DAC_TRIGGER_T6_TRGO ((uint32_t)DAC_CR_TEN1) /*!< TIM6 TRGO selected as external conversion trigger for DAC channel */ 181 #define DAC_TRIGGER_T3_TRGO ((uint32_t)(DAC_CR_TSEL1_0 | DAC_CR_TEN1)) /*!< TIM3 TRGO selected as external conversion trigger for DAC channel 182 Use __HAL_REMAPTRIGGER_ENABLE(HAL_REMAPTRIGGER_DAC1_TRIG) for TIM3 remap */ 183 184 #define DAC_TRIGGER_T7_TRGO ((uint32_t)(DAC_CR_TSEL1_1 | DAC_CR_TEN1)) /*!< TIM7 TRGO selected as external conversion trigger for DAC channel */ 185 #define DAC_TRIGGER_T2_TRGO ((uint32_t)(DAC_CR_TSEL1_2 | DAC_CR_TEN1)) /*!< TIM2 TRGO selected as external conversion trigger for DAC channel */ 186 #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 187 Use __HAL_REMAPTRIGGER_DISABLE(HAL_REMAPTRIGGER_DAC1_TRIG3) for TIM15 selection */ 188 #define DAC_TRIGGER_HRTIM1_DACTRG1 DAC_TRIGGER_T15_TRGO /*!< HRTIM1 DACTRG1 selected as external conversion trigger for DAC 189 Use __HAL_REMAPTRIGGER_ENABLE(HAL_REMAPTRIGGER_DAC1_TRIG3) for HRTIM1 DACTRG1 selection */ 190 191 #define DAC_TRIGGER_HRTIM1_DACTRG2 ((uint32_t)(DAC_CR_TSEL1_2 | DAC_CR_TSEL1_0 | DAC_CR_TEN1)) /*!< HRTIM1 DACTRG2 selected as external conversion trigger for DAC channel (DAC1) 192 Use __HAL_REMAPTRIGGER_ENABLE(HAL_REMAPTRIGGER_DAC1_TRIG5) for HRTIM1 DACTRG2 remap */ 193 #define DAC_TRIGGER_HRTIM1_DACTRG3 DAC_TRIGGER_HRTIM1_DACTRG2 /*!< HRTIM1 DACTRG3 selected as external conversion trigger for DAC channel (DAC2)*/ 194 195 #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 */ 196 #define DAC_TRIGGER_SOFTWARE ((uint32_t)(DAC_CR_TSEL1 | DAC_CR_TEN1)) /*!< Conversion started by software trigger for DAC channel */ 197 198 #define IS_DAC_TRIGGER(TRIGGER) (((TRIGGER) == DAC_TRIGGER_NONE) || \ 199 ((TRIGGER) == DAC_TRIGGER_T6_TRGO) || \ 200 ((TRIGGER) == DAC_TRIGGER_T3_TRGO) || \ 201 ((TRIGGER) == DAC_TRIGGER_T7_TRGO) || \ 202 ((TRIGGER) == DAC_TRIGGER_T15_TRGO) || \ 203 ((TRIGGER) == DAC_TRIGGER_T2_TRGO) || \ 204 ((TRIGGER) == DAC_TRIGGER_HRTIM1_DACTRG2) || \ 205 ((TRIGGER) == DAC_TRIGGER_EXT_IT9) || \ 206 ((TRIGGER) == DAC_TRIGGER_SOFTWARE)) 207 208 #endif /* STM32F334x8 */ 209 210 /** 211 * @} 212 */ 213 214 /** @defgroup DACEx_Channel_selection DACEx Channel selection 215 * @{ 216 */ 217 218 #if defined(STM32F302xE) || \ 219 defined(STM32F302xC) || \ 220 defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx) 221 #define DAC_CHANNEL_1 (0x00000000U) /*!< DAC Channel 1U */ 222 223 #endif /* STM32F302xE || */ 224 /* STM32F302xC || */ 225 /* STM32F301x8 || STM32F302x8 || STM32F318xx */ 226 227 228 #if defined(STM32F303xE) || defined(STM32F398xx) || \ 229 defined(STM32F303xC) || defined(STM32F358xx) 230 #define DAC_CHANNEL_1 (0x00000000U) /*!< DAC Channel 1U */ 231 #define DAC_CHANNEL_2 (0x00000010U) /*!< DAC Channel 2U */ 232 233 #endif /* STM32F303xE || STM32F398xx || */ 234 /* STM32F303xC || STM32F358xx */ 235 236 #if defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx) || \ 237 defined(STM32F373xC) || defined(STM32F378xx) 238 239 #define DAC_CHANNEL_1 (0x00000000U) /*!< DAC Channel 1U */ 240 #define DAC_CHANNEL_2 (0x00000010U) /*!< DAC Channel 2U */ 241 242 #endif /* STM32F303x8 || STM32F334x8 || STM32F328xx || */ 243 /* STM32F373xC || STM32F378xx */ 244 245 /** 246 * @} 247 */ 248 249 /** 250 * @} 251 */ 252 253 /* Private macro -------------------------------------------------------------*/ 254 255 /** @defgroup DACEx_Private_Macros DACEx Private Macros 256 * @{ 257 */ 258 259 #if defined(STM32F302xE) || \ 260 defined(STM32F302xC) || \ 261 defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx) 262 263 #define IS_DAC_CHANNEL(CHANNEL) ((CHANNEL) == DAC_CHANNEL_1) 264 #endif /* STM32F302xE || */ 265 /* STM32F302xC || */ 266 /* STM32F301x8 || STM32F302x8 || STM32F318xx */ 267 268 269 #if defined(STM32F303xE) || defined(STM32F398xx) || \ 270 defined(STM32F303xC) || defined(STM32F358xx) 271 272 #define IS_DAC_CHANNEL(CHANNEL) (((CHANNEL) == DAC_CHANNEL_1) || \ 273 ((CHANNEL) == DAC_CHANNEL_2)) 274 #endif /* STM32F303xE || STM32F398xx || */ 275 /* STM32F303xC || STM32F358xx */ 276 277 #if defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx) || \ 278 defined(STM32F373xC) || defined(STM32F378xx) 279 280 #define IS_DAC_CHANNEL(CHANNEL) (((CHANNEL) == DAC_CHANNEL_1) || \ 281 ((CHANNEL) == DAC_CHANNEL_2)) 282 #endif /* STM32F303x8 || STM32F334x8 || STM32F328xx || */ 283 /* STM32F373xC || STM32F378xx */ 284 285 286 287 /** 288 * @} 289 */ 290 291 /* Exported functions --------------------------------------------------------*/ 292 293 /** @addtogroup DACEx_Exported_Functions 294 * @{ 295 */ 296 297 /** @addtogroup DACEx_Exported_Functions_Group2 298 * @{ 299 */ 300 /* IO operation functions *****************************************************/ 301 302 uint32_t HAL_DACEx_DualGetValue(DAC_HandleTypeDef* hdac); 303 HAL_StatusTypeDef HAL_DACEx_DualSetValue(DAC_HandleTypeDef* hdac, uint32_t Alignment, uint32_t Data1, uint32_t Data2); 304 HAL_StatusTypeDef HAL_DACEx_TriangleWaveGenerate(DAC_HandleTypeDef* hdac, uint32_t Channel, uint32_t Amplitude); 305 HAL_StatusTypeDef HAL_DACEx_NoiseWaveGenerate(DAC_HandleTypeDef* hdac, uint32_t Channel, uint32_t Amplitude); 306 307 #if defined(STM32F303xE) || defined(STM32F398xx) || \ 308 defined(STM32F303xC) || defined(STM32F358xx) || \ 309 defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx) || \ 310 defined(STM32F373xC) || defined(STM32F378xx) 311 void HAL_DACEx_ConvCpltCallbackCh2(DAC_HandleTypeDef* hdac); 312 void HAL_DACEx_ConvHalfCpltCallbackCh2(DAC_HandleTypeDef* hdac); 313 void HAL_DACEx_ErrorCallbackCh2(DAC_HandleTypeDef *hdac); 314 void HAL_DACEx_DMAUnderrunCallbackCh2(DAC_HandleTypeDef *hdac); 315 #endif /* STM32F303xE || STM32F398xx || */ 316 /* STM32F303xC || STM32F358xx || */ 317 /* STM32F303x8 || STM32F334x8 || STM32F328xx || */ 318 /* STM32F373xC || STM32F378xx */ 319 320 /** 321 * @} 322 */ 323 324 /** 325 * @} 326 */ 327 328 /** 329 * @} 330 */ 331 332 /** 333 * @} 334 */ 335 336 #ifdef __cplusplus 337 } 338 #endif 339 340 #endif /* STM32F3xx_HAL_HAL_EX_H */ 341 342