tdse-tp0_02-hw_sw_test

FIUBA - Electrónica - Taller de Sistemas Embebidos - Trabajo Práctico N°: 0 - Proyecto N°: 02
Index Commits Files Refs
Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h (12309B)
   1 /**
   2  ******************************************************************************
   3  * @file    stm32f1xx_hal_dma_ex.h
   4  * @author  MCD Application Team
   5  * @brief   Header file of DMA HAL extension 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 in
  13  * 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 __STM32F1xx_HAL_DMA_EX_H
  21 #define __STM32F1xx_HAL_DMA_EX_H
  22 
  23 #ifdef __cplusplus
  24  extern "C" {
  25 #endif
  26 
  27 /* Includes ------------------------------------------------------------------*/
  28 #include "stm32f1xx_hal_def.h"
  29 
  30 /** @addtogroup STM32F1xx_HAL_Driver
  31  * @{
  32  */
  33 
  34 /** @defgroup DMAEx DMAEx
  35  * @{
  36  */
  37 
  38 /* Exported types ------------------------------------------------------------*/
  39 /* Exported constants --------------------------------------------------------*/
  40 /* Exported macro ------------------------------------------------------------*/
  41 /** @defgroup DMAEx_Exported_Macros DMA Extended Exported Macros
  42  * @{
  43  */
  44 /* Interrupt & Flag management */
  45 #if defined (STM32F100xE) || defined (STM32F101xE) || defined (STM32F101xG) || defined (STM32F103xE) || \
  46     defined (STM32F103xG) || defined (STM32F105xC) || defined (STM32F107xC)
  47 /** @defgroup DMAEx_High_density_XL_density_Product_devices DMAEx High density and XL density product devices
  48   * @{
  49   */
  50 
  51 /**
  52   * @brief  Returns the current DMA Channel transfer complete flag.
  53   * @param  __HANDLE__: DMA handle
  54   * @retval The specified transfer complete flag index.
  55   */
  56 #define __HAL_DMA_GET_TC_FLAG_INDEX(__HANDLE__) \
  57 (((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel1))? DMA_FLAG_TC1 :\
  58  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel2))? DMA_FLAG_TC2 :\
  59  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel3))? DMA_FLAG_TC3 :\
  60  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel4))? DMA_FLAG_TC4 :\
  61  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel5))? DMA_FLAG_TC5 :\
  62  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel6))? DMA_FLAG_TC6 :\
  63  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel7))? DMA_FLAG_TC7 :\
  64  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel1))? DMA_FLAG_TC1 :\
  65  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel2))? DMA_FLAG_TC2 :\
  66  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel3))? DMA_FLAG_TC3 :\
  67  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel4))? DMA_FLAG_TC4 :\
  68    DMA_FLAG_TC5)
  69 
  70 /**
  71   * @brief  Returns the current DMA Channel half transfer complete flag.
  72   * @param  __HANDLE__: DMA handle
  73   * @retval The specified half transfer complete flag index.
  74   */      
  75 #define __HAL_DMA_GET_HT_FLAG_INDEX(__HANDLE__)\
  76 (((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel1))? DMA_FLAG_HT1 :\
  77  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel2))? DMA_FLAG_HT2 :\
  78  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel3))? DMA_FLAG_HT3 :\
  79  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel4))? DMA_FLAG_HT4 :\
  80  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel5))? DMA_FLAG_HT5 :\
  81  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel6))? DMA_FLAG_HT6 :\
  82  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel7))? DMA_FLAG_HT7 :\
  83  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel1))? DMA_FLAG_HT1 :\
  84  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel2))? DMA_FLAG_HT2 :\
  85  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel3))? DMA_FLAG_HT3 :\
  86  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel4))? DMA_FLAG_HT4 :\
  87    DMA_FLAG_HT5)
  88 
  89 /**
  90   * @brief  Returns the current DMA Channel transfer error flag.
  91   * @param  __HANDLE__: DMA handle
  92   * @retval The specified transfer error flag index.
  93   */
  94 #define __HAL_DMA_GET_TE_FLAG_INDEX(__HANDLE__)\
  95 (((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel1))? DMA_FLAG_TE1 :\
  96  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel2))? DMA_FLAG_TE2 :\
  97  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel3))? DMA_FLAG_TE3 :\
  98  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel4))? DMA_FLAG_TE4 :\
  99  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel5))? DMA_FLAG_TE5 :\
 100  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel6))? DMA_FLAG_TE6 :\
 101  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel7))? DMA_FLAG_TE7 :\
 102  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel1))? DMA_FLAG_TE1 :\
 103  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel2))? DMA_FLAG_TE2 :\
 104  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel3))? DMA_FLAG_TE3 :\
 105  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel4))? DMA_FLAG_TE4 :\
 106    DMA_FLAG_TE5)
 107 
 108 /**
 109   * @brief  Return the current DMA Channel Global interrupt flag.
 110   * @param  __HANDLE__: DMA handle
 111   * @retval The specified transfer error flag index.
 112   */
 113 #define __HAL_DMA_GET_GI_FLAG_INDEX(__HANDLE__)\
 114 (((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel1))? DMA_FLAG_GL1 :\
 115  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel2))? DMA_FLAG_GL2 :\
 116  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel3))? DMA_FLAG_GL3 :\
 117  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel4))? DMA_FLAG_GL4 :\
 118  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel5))? DMA_FLAG_GL5 :\
 119  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel6))? DMA_FLAG_GL6 :\
 120  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel7))? DMA_FLAG_GL7 :\
 121  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel1))? DMA_FLAG_GL1 :\
 122  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel2))? DMA_FLAG_GL2 :\
 123  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel3))? DMA_FLAG_GL3 :\
 124  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA2_Channel4))? DMA_FLAG_GL4 :\
 125    DMA_FLAG_GL5)
 126    
 127 /**
 128   * @brief  Get the DMA Channel pending flags.
 129   * @param  __HANDLE__: DMA handle
 130   * @param  __FLAG__: Get the specified flag.
 131   *          This parameter can be any combination of the following values:
 132   *            @arg DMA_FLAG_TCx:  Transfer complete flag
 133   *            @arg DMA_FLAG_HTx:  Half transfer complete flag
 134   *            @arg DMA_FLAG_TEx:  Transfer error flag
 135   *         Where x can be 1_7 or 1_5 (depending on DMA1 or DMA2) to select the DMA Channel flag.   
 136   * @retval The state of FLAG (SET or RESET).
 137   */
 138 #define __HAL_DMA_GET_FLAG(__HANDLE__, __FLAG__)\
 139 (((uint32_t)((__HANDLE__)->Instance) > (uint32_t)DMA1_Channel7)? (DMA2->ISR & (__FLAG__)) :\
 140   (DMA1->ISR & (__FLAG__)))
 141 
 142 /**
 143   * @brief  Clears the DMA Channel pending flags.
 144   * @param  __HANDLE__: DMA handle
 145   * @param  __FLAG__: specifies the flag to clear.
 146   *          This parameter can be any combination of the following values:
 147   *            @arg DMA_FLAG_TCx:  Transfer complete flag
 148   *            @arg DMA_FLAG_HTx:  Half transfer complete flag
 149   *            @arg DMA_FLAG_TEx:  Transfer error flag
 150   *         Where x can be 1_7 or 1_5 (depending on DMA1 or DMA2) to select the DMA Channel flag.   
 151   * @retval None
 152   */
 153 #define __HAL_DMA_CLEAR_FLAG(__HANDLE__, __FLAG__) \
 154 (((uint32_t)((__HANDLE__)->Instance) > (uint32_t)DMA1_Channel7)? (DMA2->IFCR = (__FLAG__)) :\
 155   (DMA1->IFCR = (__FLAG__)))
 156 
 157 /**
 158   * @}
 159   */
 160 
 161 #else
 162 /** @defgroup DMA_Low_density_Medium_density_Product_devices DMA Low density and Medium density product devices
 163  * @{
 164  */
 165 
 166 /**
 167  * @brief  Returns the current DMA Channel transfer complete flag.
 168  * @param  __HANDLE__: DMA handle
 169  * @retval The specified transfer complete flag index.
 170  */
 171 #define __HAL_DMA_GET_TC_FLAG_INDEX(__HANDLE__) \
 172 (((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel1))? DMA_FLAG_TC1 :\
 173  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel2))? DMA_FLAG_TC2 :\
 174  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel3))? DMA_FLAG_TC3 :\
 175  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel4))? DMA_FLAG_TC4 :\
 176  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel5))? DMA_FLAG_TC5 :\
 177  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel6))? DMA_FLAG_TC6 :\
 178    DMA_FLAG_TC7)
 179 
 180 /**
 181  * @brief  Return the current DMA Channel half transfer complete flag.
 182  * @param  __HANDLE__: DMA handle
 183  * @retval The specified half transfer complete flag index.
 184  */
 185 #define __HAL_DMA_GET_HT_FLAG_INDEX(__HANDLE__)\
 186 (((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel1))? DMA_FLAG_HT1 :\
 187  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel2))? DMA_FLAG_HT2 :\
 188  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel3))? DMA_FLAG_HT3 :\
 189  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel4))? DMA_FLAG_HT4 :\
 190  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel5))? DMA_FLAG_HT5 :\
 191  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel6))? DMA_FLAG_HT6 :\
 192    DMA_FLAG_HT7)
 193 
 194 /**
 195  * @brief  Return the current DMA Channel transfer error flag.
 196  * @param  __HANDLE__: DMA handle
 197  * @retval The specified transfer error flag index.
 198  */
 199 #define __HAL_DMA_GET_TE_FLAG_INDEX(__HANDLE__)\
 200 (((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel1))? DMA_FLAG_TE1 :\
 201  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel2))? DMA_FLAG_TE2 :\
 202  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel3))? DMA_FLAG_TE3 :\
 203  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel4))? DMA_FLAG_TE4 :\
 204  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel5))? DMA_FLAG_TE5 :\
 205  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel6))? DMA_FLAG_TE6 :\
 206    DMA_FLAG_TE7)
 207 
 208 /**
 209  * @brief  Return the current DMA Channel Global interrupt flag.
 210  * @param  __HANDLE__: DMA handle
 211  * @retval The specified transfer error flag index.
 212  */
 213 #define __HAL_DMA_GET_GI_FLAG_INDEX(__HANDLE__)\
 214 (((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel1))? DMA_FLAG_GL1 :\
 215  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel2))? DMA_FLAG_GL2 :\
 216  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel3))? DMA_FLAG_GL3 :\
 217  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel4))? DMA_FLAG_GL4 :\
 218  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel5))? DMA_FLAG_GL5 :\
 219  ((uint32_t)((__HANDLE__)->Instance) == ((uint32_t)DMA1_Channel6))? DMA_FLAG_GL6 :\
 220    DMA_FLAG_GL7)
 221 
 222 /**
 223  * @brief  Get the DMA Channel pending flags.
 224  * @param  __HANDLE__: DMA handle
 225  * @param  __FLAG__: Get the specified flag.
 226  *          This parameter can be any combination of the following values:
 227  *            @arg DMA_FLAG_TCx:  Transfer complete flag
 228  *            @arg DMA_FLAG_HTx:  Half transfer complete flag
 229  *            @arg DMA_FLAG_TEx:  Transfer error flag
 230  *            @arg DMA_FLAG_GLx:  Global interrupt flag
 231  *         Where x can be 1_7 to select the DMA Channel flag.   
 232  * @retval The state of FLAG (SET or RESET).
 233  */
 234 
 235 #define __HAL_DMA_GET_FLAG(__HANDLE__, __FLAG__)   (DMA1->ISR & (__FLAG__))
 236 
 237 /**
 238  * @brief  Clear the DMA Channel pending flags.
 239  * @param  __HANDLE__: DMA handle
 240  * @param  __FLAG__: specifies the flag to clear.
 241  *          This parameter can be any combination of the following values:
 242  *            @arg DMA_FLAG_TCx:  Transfer complete flag
 243  *            @arg DMA_FLAG_HTx:  Half transfer complete flag
 244  *            @arg DMA_FLAG_TEx:  Transfer error flag
 245  *            @arg DMA_FLAG_GLx:  Global interrupt flag
 246  *         Where x can be 1_7 to select the DMA Channel flag.   
 247  * @retval None
 248  */
 249 #define __HAL_DMA_CLEAR_FLAG(__HANDLE__, __FLAG__) (DMA1->IFCR = (__FLAG__))
 250 
 251 /**
 252  * @}
 253  */
 254 
 255 #endif
 256 
 257 /**
 258  * @}
 259  */
 260 
 261 /**
 262  * @}
 263  */
 264 
 265 /**
 266  * @}
 267  */
 268 
 269 #ifdef __cplusplus
 270 }
 271 #endif /* STM32F100xE || STM32F101xE || STM32F101xG || STM32F103xE || */
 272 /* STM32F103xG || STM32F105xC || STM32F107xC */
 273 
 274 #endif /* __STM32F1xx_HAL_DMA_H */
 275