STM32H735xx HAL User Manual
stm32h7xx_ll_bdma.h
Go to the documentation of this file.
00001 /**
00002   ******************************************************************************
00003   * @file    stm32h7xx_ll_bdma.h
00004   * @author  MCD Application Team
00005   * @brief   Header file of BDMA LL module.
00006   ******************************************************************************
00007   * @attention
00008   *
00009   * Copyright (c) 2017 STMicroelectronics.
00010   * All rights reserved.
00011   *
00012   * This software is licensed under terms that can be found in the LICENSE file
00013   * in the root directory of this software component.
00014   * If no LICENSE file comes with this software, it is provided AS-IS.
00015   *
00016   ******************************************************************************
00017   */
00018 
00019 /* Define to prevent recursive inclusion -------------------------------------*/
00020 #ifndef STM32H7xx_LL_BDMA_H
00021 #define STM32H7xx_LL_BDMA_H
00022 
00023 #ifdef __cplusplus
00024 extern "C" {
00025 #endif
00026 
00027 /* Includes ------------------------------------------------------------------*/
00028 #include "stm32h7xx.h"
00029 #include "stm32h7xx_ll_dmamux.h"
00030 
00031 /** @addtogroup STM32H7xx_LL_Driver
00032   * @{
00033   */
00034 
00035 #if defined (BDMA) || defined (BDMA1) || defined (BDMA2)
00036 
00037 /** @defgroup BDMA_LL BDMA
00038   * @{
00039   */
00040 
00041 /* Private types -------------------------------------------------------------*/
00042 /* Private variables ---------------------------------------------------------*/
00043 /** @defgroup BDMA_LL_Private_Variables BDMA Private Variables
00044   * @{
00045   */
00046 /* Array used to get the BDMA channel register offset versus channel index LL_BDMA_CHANNEL_x */
00047 static const uint8_t LL_BDMA_CH_OFFSET_TAB[] =
00048 {
00049   (uint8_t)(BDMA_Channel0_BASE - BDMA_BASE),
00050   (uint8_t)(BDMA_Channel1_BASE - BDMA_BASE),
00051   (uint8_t)(BDMA_Channel2_BASE - BDMA_BASE),
00052   (uint8_t)(BDMA_Channel3_BASE - BDMA_BASE),
00053   (uint8_t)(BDMA_Channel4_BASE - BDMA_BASE),
00054   (uint8_t)(BDMA_Channel5_BASE - BDMA_BASE),
00055   (uint8_t)(BDMA_Channel6_BASE - BDMA_BASE),
00056   (uint8_t)(BDMA_Channel7_BASE - BDMA_BASE)
00057 };
00058 /**
00059   * @}
00060   */
00061 
00062 /* Private constants ---------------------------------------------------------*/
00063 /* Private macros ------------------------------------------------------------*/
00064 #if !defined(UNUSED)
00065 #define UNUSED(x) ((void)(x))
00066 #endif
00067 
00068 /* Exported types ------------------------------------------------------------*/
00069 #if defined(USE_FULL_LL_DRIVER)
00070 /** @defgroup BDMA_LL_ES_INIT BDMA Exported Init structure
00071   * @{
00072   */
00073 typedef struct
00074 {
00075   uint32_t PeriphOrM2MSrcAddress;  /*!< Specifies the peripheral base address for BDMA transfer
00076                                         or as Source base address in case of memory to memory transfer direction.
00077 
00078                                         This parameter must be a value between Min_Data = 0 and Max_Data = 0xFFFFFFFF. */
00079 
00080   uint32_t MemoryOrM2MDstAddress;  /*!< Specifies the memory base address for DMA transfer
00081                                         or as Destination base address in case of memory to memory transfer direction.
00082 
00083                                         This parameter must be a value between Min_Data = 0 and Max_Data = 0xFFFFFFFF. */
00084 
00085   uint32_t Direction;              /*!< Specifies if the data will be transferred from memory to peripheral,
00086                                         from memory to memory or from peripheral to memory.
00087                                         This parameter can be a value of @ref BDMA_LL_EC_DIRECTION
00088 
00089                                         This feature can be modified afterwards using unitary function @ref LL_BDMA_SetDataTransferDirection(). */
00090 
00091   uint32_t Mode;                   /*!< Specifies the normal or circular operation mode.
00092                                         This parameter can be a value of @ref BDMA_LL_EC_MODE
00093                                         @note: The circular buffer mode cannot be used if the memory to memory
00094                                                data transfer direction is configured on the selected Channel
00095 
00096                                         This feature can be modified afterwards using unitary function @ref LL_BDMA_SetMode(). */
00097 
00098   uint32_t PeriphOrM2MSrcIncMode;  /*!< Specifies whether the Peripheral address or Source address in case of memory to memory transfer direction
00099                                         is incremented or not.
00100                                         This parameter can be a value of @ref BDMA_LL_EC_PERIPH
00101 
00102                                         This feature can be modified afterwards using unitary function @ref LL_BDMA_SetPeriphIncMode(). */
00103 
00104   uint32_t MemoryOrM2MDstIncMode;  /*!< Specifies whether the Memory address or Destination address in case of memory to memory transfer direction
00105                                         is incremented or not.
00106                                         This parameter can be a value of @ref BDMA_LL_EC_MEMORY
00107 
00108                                         This feature can be modified afterwards using unitary function @ref LL_BDMA_SetMemoryIncMode(). */
00109 
00110   uint32_t PeriphOrM2MSrcDataSize; /*!< Specifies the Peripheral data size alignment or Source data size alignment (byte, half word, word)
00111                                         in case of memory to memory transfer direction.
00112                                         This parameter can be a value of @ref BDMA_LL_EC_PDATAALIGN
00113 
00114                                         This feature can be modified afterwards using unitary function @ref LL_BDMA_SetPeriphSize(). */
00115 
00116   uint32_t MemoryOrM2MDstDataSize; /*!< Specifies the Memory data size alignment or Destination data size alignment (byte, half word, word)
00117                                         in case of memory to memory transfer direction.
00118                                         This parameter can be a value of @ref BDMA_LL_EC_MDATAALIGN
00119 
00120                                         This feature can be modified afterwards using unitary function @ref LL_BDMA_SetMemorySize(). */
00121 
00122   uint32_t NbData;                 /*!< Specifies the number of data to transfer, in data unit.
00123                                         The data unit is equal to the source buffer configuration set in PeripheralSize
00124                                         or MemorySize parameters depending in the transfer direction.
00125                                         This parameter must be a value between Min_Data = 0 and Max_Data = 0x0000FFFF
00126 
00127                                         This feature can be modified afterwards using unitary function @ref LL_BDMA_SetDataLength(). */
00128 
00129   uint32_t PeriphRequest;          /*!< Specifies the peripheral request.
00130                                         This parameter can be a value of @ref DMAMUX2_Request_selection
00131 
00132                                         This feature can be modified afterwards using unitary function @ref LL_BDMA_SetPeriphRequest(). */
00133 
00134   uint32_t Priority;               /*!< Specifies the channel priority level.
00135                                         This parameter can be a value of @ref BDMA_LL_EC_PRIORITY
00136 
00137                                         This feature can be modified afterwards using unitary function @ref LL_BDMA_SetChannelPriorityLevel(). */
00138 
00139 } LL_BDMA_InitTypeDef;
00140 /**
00141   * @}
00142   */
00143 #endif /* USE_FULL_LL_DRIVER */
00144 
00145 /* Exported constants --------------------------------------------------------*/
00146 /** @defgroup BDMA_LL_Exported_Constants BDMA Exported Constants
00147   * @{
00148   */
00149 /** @defgroup BDMA_LL_EC_CLEAR_FLAG Clear Flags Defines
00150   * @brief    Flags defines which can be used with LL_BDMA_WriteReg function
00151   * @{
00152   */
00153 #define LL_BDMA_IFCR_CGIF1                 BDMA_IFCR_CGIF1        /*!< Channel 1 global flag            */
00154 #define LL_BDMA_IFCR_CTCIF1                BDMA_IFCR_CTCIF1       /*!< Channel 1 transfer complete flag */
00155 #define LL_BDMA_IFCR_CHTIF1                BDMA_IFCR_CHTIF1       /*!< Channel 1 half transfer flag     */
00156 #define LL_BDMA_IFCR_CTEIF1                BDMA_IFCR_CTEIF1       /*!< Channel 1 transfer error flag    */
00157 #define LL_BDMA_IFCR_CGIF2                 BDMA_IFCR_CGIF2        /*!< Channel 2 global flag            */
00158 #define LL_BDMA_IFCR_CTCIF2                BDMA_IFCR_CTCIF2       /*!< Channel 2 transfer complete flag */
00159 #define LL_BDMA_IFCR_CHTIF2                BDMA_IFCR_CHTIF2       /*!< Channel 2 half transfer flag     */
00160 #define LL_BDMA_IFCR_CTEIF2                BDMA_IFCR_CTEIF2       /*!< Channel 2 transfer error flag    */
00161 #define LL_BDMA_IFCR_CGIF3                 BDMA_IFCR_CGIF3        /*!< Channel 3 global flag            */
00162 #define LL_BDMA_IFCR_CTCIF3                BDMA_IFCR_CTCIF3       /*!< Channel 3 transfer complete flag */
00163 #define LL_BDMA_IFCR_CHTIF3                BDMA_IFCR_CHTIF3       /*!< Channel 3 half transfer flag     */
00164 #define LL_BDMA_IFCR_CTEIF3                BDMA_IFCR_CTEIF3       /*!< Channel 3 transfer error flag    */
00165 #define LL_BDMA_IFCR_CGIF4                 BDMA_IFCR_CGIF4        /*!< Channel 4 global flag            */
00166 #define LL_BDMA_IFCR_CTCIF4                BDMA_IFCR_CTCIF4       /*!< Channel 4 transfer complete flag */
00167 #define LL_BDMA_IFCR_CHTIF4                BDMA_IFCR_CHTIF4       /*!< Channel 4 half transfer flag     */
00168 #define LL_BDMA_IFCR_CTEIF4                BDMA_IFCR_CTEIF4       /*!< Channel 4 transfer error flag    */
00169 #define LL_BDMA_IFCR_CGIF5                 BDMA_IFCR_CGIF5        /*!< Channel 5 global flag            */
00170 #define LL_BDMA_IFCR_CTCIF5                BDMA_IFCR_CTCIF5       /*!< Channel 5 transfer complete flag */
00171 #define LL_BDMA_IFCR_CHTIF5                BDMA_IFCR_CHTIF5       /*!< Channel 5 half transfer flag     */
00172 #define LL_BDMA_IFCR_CTEIF5                BDMA_IFCR_CTEIF5       /*!< Channel 5 transfer error flag    */
00173 #define LL_BDMA_IFCR_CGIF6                 BDMA_IFCR_CGIF6        /*!< Channel 6 global flag            */
00174 #define LL_BDMA_IFCR_CTCIF6                BDMA_IFCR_CTCIF6       /*!< Channel 6 transfer complete flag */
00175 #define LL_BDMA_IFCR_CHTIF6                BDMA_IFCR_CHTIF6       /*!< Channel 6 half transfer flag     */
00176 #define LL_BDMA_IFCR_CTEIF6                BDMA_IFCR_CTEIF6       /*!< Channel 6 transfer error flag    */
00177 #define LL_BDMA_IFCR_CGIF7                 BDMA_IFCR_CGIF7        /*!< Channel 7 global flag            */
00178 #define LL_BDMA_IFCR_CTCIF7                BDMA_IFCR_CTCIF7       /*!< Channel 7 transfer complete flag */
00179 #define LL_BDMA_IFCR_CHTIF7                BDMA_IFCR_CHTIF7       /*!< Channel 7 half transfer flag     */
00180 #define LL_BDMA_IFCR_CTEIF7                BDMA_IFCR_CTEIF7       /*!< Channel 7 transfer error flag    */
00181 /**
00182   * @}
00183   */
00184 
00185 /** @defgroup BDMA_LL_EC_GET_FLAG Get Flags Defines
00186   * @brief    Flags defines which can be used with LL_BDMA_ReadReg function
00187   * @{
00188   */
00189 #define LL_BDMA_ISR_GIF0                   BDMA_ISR_GIF0          /*!< Channel 1 global flag            */
00190 #define LL_BDMA_ISR_TCIF0                  BDMA_ISR_TCIF0         /*!< Channel 1 transfer complete flag */
00191 #define LL_BDMA_ISR_HTIF0                  BDMA_ISR_HTIF0         /*!< Channel 1 half transfer flag     */
00192 #define LL_BDMA_ISR_TEIF0                  BDMA_ISR_TEIF0         /*!< Channel 1 transfer error flag    */
00193 #define LL_BDMA_ISR_GIF1                   BDMA_ISR_GIF1          /*!< Channel 1 global flag            */
00194 #define LL_BDMA_ISR_TCIF1                  BDMA_ISR_TCIF1         /*!< Channel 1 transfer complete flag */
00195 #define LL_BDMA_ISR_HTIF1                  BDMA_ISR_HTIF1         /*!< Channel 1 half transfer flag     */
00196 #define LL_BDMA_ISR_TEIF1                  BDMA_ISR_TEIF1         /*!< Channel 1 transfer error flag    */
00197 #define LL_BDMA_ISR_GIF2                   BDMA_ISR_GIF2          /*!< Channel 2 global flag            */
00198 #define LL_BDMA_ISR_TCIF2                  BDMA_ISR_TCIF2         /*!< Channel 2 transfer complete flag */
00199 #define LL_BDMA_ISR_HTIF2                  BDMA_ISR_HTIF2         /*!< Channel 2 half transfer flag     */
00200 #define LL_BDMA_ISR_TEIF2                  BDMA_ISR_TEIF2         /*!< Channel 2 transfer error flag    */
00201 #define LL_BDMA_ISR_GIF3                   BDMA_ISR_GIF3          /*!< Channel 3 global flag            */
00202 #define LL_BDMA_ISR_TCIF3                  BDMA_ISR_TCIF3         /*!< Channel 3 transfer complete flag */
00203 #define LL_BDMA_ISR_HTIF3                  BDMA_ISR_HTIF3         /*!< Channel 3 half transfer flag     */
00204 #define LL_BDMA_ISR_TEIF3                  BDMA_ISR_TEIF3         /*!< Channel 3 transfer error flag    */
00205 #define LL_BDMA_ISR_GIF4                   BDMA_ISR_GIF4          /*!< Channel 4 global flag            */
00206 #define LL_BDMA_ISR_TCIF4                  BDMA_ISR_TCIF4         /*!< Channel 4 transfer complete flag */
00207 #define LL_BDMA_ISR_HTIF4                  BDMA_ISR_HTIF4         /*!< Channel 4 half transfer flag     */
00208 #define LL_BDMA_ISR_TEIF4                  BDMA_ISR_TEIF4         /*!< Channel 4 transfer error flag    */
00209 #define LL_BDMA_ISR_GIF5                   BDMA_ISR_GIF5          /*!< Channel 5 global flag            */
00210 #define LL_BDMA_ISR_TCIF5                  BDMA_ISR_TCIF5         /*!< Channel 5 transfer complete flag */
00211 #define LL_BDMA_ISR_HTIF5                  BDMA_ISR_HTIF5         /*!< Channel 5 half transfer flag     */
00212 #define LL_BDMA_ISR_TEIF5                  BDMA_ISR_TEIF5         /*!< Channel 5 transfer error flag    */
00213 #define LL_BDMA_ISR_GIF6                   BDMA_ISR_GIF6          /*!< Channel 6 global flag            */
00214 #define LL_BDMA_ISR_TCIF6                  BDMA_ISR_TCIF6         /*!< Channel 6 transfer complete flag */
00215 #define LL_BDMA_ISR_HTIF6                  BDMA_ISR_HTIF6         /*!< Channel 6 half transfer flag     */
00216 #define LL_BDMA_ISR_TEIF6                  BDMA_ISR_TEIF6         /*!< Channel 6 transfer error flag    */
00217 #define LL_BDMA_ISR_GIF7                   BDMA_ISR_GIF7          /*!< Channel 7 global flag            */
00218 #define LL_BDMA_ISR_TCIF7                  BDMA_ISR_TCIF7         /*!< Channel 7 transfer complete flag */
00219 #define LL_BDMA_ISR_HTIF7                  BDMA_ISR_HTIF7         /*!< Channel 7 half transfer flag     */
00220 #define LL_BDMA_ISR_TEIF7                  BDMA_ISR_TEIF7         /*!< Channel 7 transfer error flag    */
00221 /**
00222   * @}
00223   */
00224 
00225 /** @defgroup BDMA_LL_EC_IT IT Defines
00226   * @brief    IT defines which can be used with LL_BDMA_ReadReg and  LL_BDMA_WriteReg functions
00227   * @{
00228   */
00229 #define LL_BDMA_CCR_TCIE                   BDMA_CCR_TCIE          /*!< Transfer complete interrupt */
00230 #define LL_BDMA_CCR_HTIE                   BDMA_CCR_HTIE          /*!< Half Transfer interrupt     */
00231 #define LL_BDMA_CCR_TEIE                   BDMA_CCR_TEIE          /*!< Transfer error interrupt    */
00232 /**
00233   * @}
00234   */
00235 
00236 /** @defgroup BDMA_LL_EC_CHANNEL CHANNEL
00237   * @{
00238   */
00239 #define LL_BDMA_CHANNEL_0                  0x00000000U /*!< DMA Channel 0  */
00240 #define LL_BDMA_CHANNEL_1                  0x00000001U /*!< BDMA Channel 1 */
00241 #define LL_BDMA_CHANNEL_2                  0x00000002U /*!< BDMA Channel 2 */
00242 #define LL_BDMA_CHANNEL_3                  0x00000003U /*!< BDMA Channel 3 */
00243 #define LL_BDMA_CHANNEL_4                  0x00000004U /*!< BDMA Channel 4 */
00244 #define LL_BDMA_CHANNEL_5                  0x00000005U /*!< BDMA Channel 5 */
00245 #define LL_BDMA_CHANNEL_6                  0x00000006U /*!< BDMA Channel 6 */
00246 #define LL_BDMA_CHANNEL_7                  0x00000007U /*!< BDMA Channel 7 */
00247 #if defined(USE_FULL_LL_DRIVER)
00248 #define LL_BDMA_CHANNEL_ALL                0xFFFF0000U /*!< BDMA Channel all (used only for function @ref LL_BDMA_DeInit(). */
00249 #endif /*USE_FULL_LL_DRIVER*/
00250 /**
00251   * @}
00252   */
00253 
00254 /** @defgroup BDMA_LL_EC_DIRECTION Transfer Direction
00255   * @{
00256   */
00257 #define LL_BDMA_DIRECTION_PERIPH_TO_MEMORY 0x00000000U              /*!< Peripheral to memory direction       */
00258 #define LL_BDMA_DIRECTION_MEMORY_TO_PERIPH BDMA_CCR_DIR             /*!< Memory to peripheral direction       */
00259 #define LL_BDMA_DIRECTION_MEMORY_TO_MEMORY BDMA_CCR_MEM2MEM         /*!< Memory to memory direction           */
00260 /**
00261   * @}
00262   */
00263 
00264 /** @defgroup BDMA_LL_EC_MODE Transfer mode
00265   * @{
00266   */
00267 #define LL_BDMA_MODE_NORMAL                0x00000000U              /*!< Normal Mode                          */
00268 #define LL_BDMA_MODE_CIRCULAR              BDMA_CCR_CIRC            /*!< Circular Mode                        */
00269 /**
00270   * @}
00271   */
00272 
00273 /** @defgroup DMA_LL_EC_DOUBLEBUFFER_MODE DOUBLE BUFFER MODE
00274   * @{
00275   */
00276 #define LL_BDMA_DOUBLEBUFFER_MODE_DISABLE  0x00000000U              /*!< Disable double buffering mode        */
00277 #define LL_BDMA_DOUBLEBUFFER_MODE_ENABLE   BDMA_CCR_DBM             /*!< Enable double buffering mode         */
00278 /**
00279   * @}
00280   */
00281 
00282 /** @defgroup BDMA_LL_EC_PERIPH Peripheral increment mode
00283   * @{
00284   */
00285 #define LL_BDMA_PERIPH_INCREMENT           BDMA_CCR_PINC            /*!< Peripheral increment mode Enable     */
00286 #define LL_BDMA_PERIPH_NOINCREMENT         0x00000000U              /*!< Peripheral increment mode Disable    */
00287 /**
00288   * @}
00289   */
00290 
00291 /** @defgroup BDMA_LL_EC_MEMORY Memory increment mode
00292   * @{
00293   */
00294 #define LL_BDMA_MEMORY_INCREMENT           BDMA_CCR_MINC            /*!< Memory increment mode Enable         */
00295 #define LL_BDMA_MEMORY_NOINCREMENT         0x00000000U              /*!< Memory increment mode Disable        */
00296 /**
00297   * @}
00298   */
00299 
00300 /** @defgroup BDMA_LL_EC_PDATAALIGN Peripheral data alignment
00301   * @{
00302   */
00303 #define LL_BDMA_PDATAALIGN_BYTE            0x00000000U              /*!< Peripheral data alignment : Byte     */
00304 #define LL_BDMA_PDATAALIGN_HALFWORD        BDMA_CCR_PSIZE_0         /*!< Peripheral data alignment : HalfWord */
00305 #define LL_BDMA_PDATAALIGN_WORD            BDMA_CCR_PSIZE_1         /*!< Peripheral data alignment : Word     */
00306 /**
00307   * @}
00308   */
00309 
00310 /** @defgroup BDMA_LL_EC_MDATAALIGN Memory data alignment
00311   * @{
00312   */
00313 #define LL_BDMA_MDATAALIGN_BYTE            0x00000000U              /*!< Memory data alignment : Byte         */
00314 #define LL_BDMA_MDATAALIGN_HALFWORD        BDMA_CCR_MSIZE_0         /*!< Memory data alignment : HalfWord     */
00315 #define LL_BDMA_MDATAALIGN_WORD            BDMA_CCR_MSIZE_1         /*!< Memory data alignment : Word         */
00316 /**
00317   * @}
00318   */
00319 
00320 /** @defgroup BDMA_LL_EC_PRIORITY Transfer Priority level
00321   * @{
00322   */
00323 #define LL_BDMA_PRIORITY_LOW               0x00000000U              /*!< Priority level : Low                 */
00324 #define LL_BDMA_PRIORITY_MEDIUM            BDMA_CCR_PL_0            /*!< Priority level : Medium              */
00325 #define LL_BDMA_PRIORITY_HIGH              BDMA_CCR_PL_1            /*!< Priority level : High                */
00326 #define LL_BDMA_PRIORITY_VERYHIGH          BDMA_CCR_PL              /*!< Priority level : Very_High           */
00327 /**
00328   * @}
00329   */
00330 
00331 /** @defgroup DMA_LL_EC_CURRENTTARGETMEM CURRENTTARGETMEM
00332   * @{
00333   */
00334 #define LL_BDMA_CURRENTTARGETMEM0          0x00000000U              /*!< Set CurrentTarget Memory to Memory 0 */
00335 #define LL_BDMA_CURRENTTARGETMEM1          BDMA_CCR_CT              /*!< Set CurrentTarget Memory to Memory 1 */
00336 /**
00337   * @}
00338   */
00339 
00340 /* Exported macro ------------------------------------------------------------*/
00341 /** @defgroup BDMA_LL_Exported_Macros BDMA Exported Macros
00342   * @{
00343   */
00344 
00345 /** @defgroup BDMA_LL_EM_WRITE_READ Common Write and read registers macros
00346   * @{
00347   */
00348 /**
00349   * @brief  Write a value in BDMA register
00350   * @param  __INSTANCE__ BDMA Instance
00351   * @param  __REG__ Register to be written
00352   * @param  __VALUE__ Value to be written in the register
00353   * @retval None
00354   */
00355 #define LL_BDMA_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG((__INSTANCE__)->__REG__, (__VALUE__))
00356 
00357 /**
00358   * @brief  Read a value in BDMA register
00359   * @param  __INSTANCE__ BDMA Instance
00360   * @param  __REG__ Register to be read
00361   * @retval Register value
00362   */
00363 #define LL_BDMA_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__)
00364 /**
00365   * @}
00366   */
00367 
00368 /** @defgroup BDMA_LL_EM_CONVERT_DMAxCHANNELy Convert BDMAxChannely
00369   * @{
00370   */
00371 /**
00372   * @brief  Convert BDMAx_Channely into BDMAx
00373   * @param  __CHANNEL_INSTANCE__ BDMAx_Channely
00374   * @retval BDMAx
00375   */
00376 #if defined (BDMA1)
00377 #define __LL_BDMA_GET_INSTANCE(__CHANNEL_INSTANCE__) \
00378 (((uint32_t)(__CHANNEL_INSTANCE__) < LL_BDMA_CHANNEL_0) ? BDMA1 : BDMA)
00379 #else
00380 #define __LL_BDMA_GET_INSTANCE(__CHANNEL_INSTANCE__)  (BDMA)
00381 #endif /* BDMA1 */
00382 
00383 /**
00384   * @brief  Convert BDMAx_Channely into LL_BDMA_CHANNEL_y
00385   * @param  __CHANNEL_INSTANCE__ BDMAx_Channely
00386   * @retval LL_BDMA_CHANNEL_y
00387   */
00388 #if defined (BDMA1)
00389 #define __LL_BDMA_GET_CHANNEL(__CHANNEL_INSTANCE__) \
00390 (((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)BDMA_Channel0))  ? LL_BDMA_CHANNEL_0 : \
00391  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)BDMA1_Channel0)) ? LL_BDMA_CHANNEL_0 : \
00392  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)BDMA_Channel1))  ? LL_BDMA_CHANNEL_1 : \
00393  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)BDMA1_Channel1)) ? LL_BDMA_CHANNEL_1 : \
00394  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)BDMA_Channel2))  ? LL_BDMA_CHANNEL_2 : \
00395  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)BDMA1_Channel2)) ? LL_BDMA_CHANNEL_2 : \
00396  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)BDMA_Channel3))  ? LL_BDMA_CHANNEL_3 : \
00397  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)BDMA1_Channel3)) ? LL_BDMA_CHANNEL_3 : \
00398  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)BDMA_Channel4))  ? LL_BDMA_CHANNEL_4 : \
00399  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)BDMA1_Channel4)) ? LL_BDMA_CHANNEL_4 : \
00400  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)BDMA_Channel5))  ? LL_BDMA_CHANNEL_5 : \
00401  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)BDMA1_Channel5)) ? LL_BDMA_CHANNEL_5 : \
00402  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)BDMA_Channel6))  ? LL_BDMA_CHANNEL_6 : \
00403  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)BDMA1_Channel6)) ? LL_BDMA_CHANNEL_6 : \
00404  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)BDMA_Channel7))  ? LL_BDMA_CHANNEL_7 : \
00405 LL_BDMA_CHANNEL_7)
00406 #else
00407 #define __LL_BDMA_GET_CHANNEL(__CHANNEL_INSTANCE__) \
00408 (((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)BDMA_Channel0)) ? LL_BDMA_CHANNEL_0 : \
00409  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)BDMA_Channel1)) ? LL_BDMA_CHANNEL_1 : \
00410  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)BDMA_Channel2)) ? LL_BDMA_CHANNEL_2 : \
00411  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)BDMA_Channel3)) ? LL_BDMA_CHANNEL_3 : \
00412  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)BDMA_Channel4)) ? LL_BDMA_CHANNEL_4 : \
00413  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)BDMA_Channel5)) ? LL_BDMA_CHANNEL_5 : \
00414  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)BDMA_Channel6)) ? LL_BDMA_CHANNEL_6 : \
00415  LL_BDMA_CHANNEL_7)
00416 #endif /* BDMA1 */
00417 
00418 /**
00419   * @brief  Convert BDMA Instance BDMAx and LL_BDMA_CHANNEL_y into BDMAx_Channely
00420   * @param  __BDMA_INSTANCE__ BDMAx
00421   * @param  __CHANNEL__ LL_BDMA_CHANNEL_y
00422   * @retval BDMAx_Channely
00423   */
00424 #if defined (BDMA1)
00425 #define __LL_BDMA_GET_CHANNEL_INSTANCE(__BDMA_INSTANCE__, __CHANNEL__)   \
00426 ((((uint32_t)(__BDMA_INSTANCE__) == ((uint32_t)BDMA))  && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_BDMA_CHANNEL_0))) ? BDMA_Channel0  : \
00427  (((uint32_t)(__BDMA_INSTANCE__) == ((uint32_t)BDMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_BDMA_CHANNEL_0))) ? BDMA1_Channel0 : \
00428  (((uint32_t)(__BDMA_INSTANCE__) == ((uint32_t)BDMA))  && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_BDMA_CHANNEL_1))) ? BDMA_Channel1  : \
00429  (((uint32_t)(__BDMA_INSTANCE__) == ((uint32_t)BDMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_BDMA_CHANNEL_1))) ? BDMA1_Channel1 : \
00430  (((uint32_t)(__BDMA_INSTANCE__) == ((uint32_t)BDMA))  && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_BDMA_CHANNEL_2))) ? BDMA_Channel2  : \
00431  (((uint32_t)(__BDMA_INSTANCE__) == ((uint32_t)BDMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_BDMA_CHANNEL_2))) ? BDMA1_Channel2 : \
00432  (((uint32_t)(__BDMA_INSTANCE__) == ((uint32_t)BDMA))  && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_BDMA_CHANNEL_3))) ? BDMA_Channel3  : \
00433  (((uint32_t)(__BDMA_INSTANCE__) == ((uint32_t)BDMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_BDMA_CHANNEL_3))) ? BDMA1_Channel3 : \
00434  (((uint32_t)(__BDMA_INSTANCE__) == ((uint32_t)BDMA))  && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_BDMA_CHANNEL_4))) ? BDMA_Channel4  : \
00435  (((uint32_t)(__BDMA_INSTANCE__) == ((uint32_t)BDMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_BDMA_CHANNEL_4))) ? BDMA1_Channel4 : \
00436  (((uint32_t)(__BDMA_INSTANCE__) == ((uint32_t)BDMA))  && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_BDMA_CHANNEL_5))) ? BDMA_Channel5  : \
00437  (((uint32_t)(__BDMA_INSTANCE__) == ((uint32_t)BDMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_BDMA_CHANNEL_5))) ? BDMA1_Channel5 : \
00438  (((uint32_t)(__BDMA_INSTANCE__) == ((uint32_t)BDMA))  && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_BDMA_CHANNEL_6))) ? BDMA_Channel6  : \
00439  (((uint32_t)(__BDMA_INSTANCE__) == ((uint32_t)BDMA1)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_BDMA_CHANNEL_6))) ? BDMA1_Channel6 : \
00440  (((uint32_t)(__BDMA_INSTANCE__) == ((uint32_t)BDMA))  && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_BDMA_CHANNEL_7))) ? BDMA_Channel7  : \
00441  BDMA1_Channel7)
00442 #else
00443 #define __LL_BDMA_GET_CHANNEL_INSTANCE(__BDMA_INSTANCE__, __CHANNEL__)   \
00444 ((((uint32_t)(__BDMA_INSTANCE__) == ((uint32_t)BDMA)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_BDMA_CHANNEL_0))) ? BDMA_Channel0 : \
00445  (((uint32_t)(__BDMA_INSTANCE__) == ((uint32_t)BDMA)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_BDMA_CHANNEL_1))) ? BDMA_Channel1 : \
00446  (((uint32_t)(__BDMA_INSTANCE__) == ((uint32_t)BDMA)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_BDMA_CHANNEL_2))) ? BDMA_Channel2 : \
00447  (((uint32_t)(__BDMA_INSTANCE__) == ((uint32_t)BDMA)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_BDMA_CHANNEL_3))) ? BDMA_Channel3 : \
00448  (((uint32_t)(__BDMA_INSTANCE__) == ((uint32_t)BDMA)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_BDMA_CHANNEL_4))) ? BDMA_Channel4 : \
00449  (((uint32_t)(__BDMA_INSTANCE__) == ((uint32_t)BDMA)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_BDMA_CHANNEL_5))) ? BDMA_Channel5 : \
00450  (((uint32_t)(__BDMA_INSTANCE__) == ((uint32_t)BDMA)) && ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_BDMA_CHANNEL_6))) ? BDMA_Channel6 : \
00451  BDMA_Channel7)
00452 #endif /* BDMA1 */
00453 /**
00454   * @}
00455   */
00456 
00457 /**
00458   * @}
00459   */
00460 
00461 /* Exported functions --------------------------------------------------------*/
00462 /** @defgroup BDMA_LL_Exported_Functions BDMA Exported Functions
00463  * @{
00464  */
00465 
00466 /** @defgroup BDMA_LL_EF_Configuration Configuration
00467   * @{
00468   */
00469 /**
00470   * @brief  Enable BDMA channel.
00471   * @rmtoll CCR          EN            LL_BDMA_EnableChannel
00472   * @param  BDMAx BDMA Instance
00473   * @param  Channel This parameter can be one of the following values:
00474   *         @arg @ref LL_BDMA_CHANNEL_0
00475   *         @arg @ref LL_BDMA_CHANNEL_1
00476   *         @arg @ref LL_BDMA_CHANNEL_2
00477   *         @arg @ref LL_BDMA_CHANNEL_3
00478   *         @arg @ref LL_BDMA_CHANNEL_4
00479   *         @arg @ref LL_BDMA_CHANNEL_5
00480   *         @arg @ref LL_BDMA_CHANNEL_6
00481   *         @arg @ref LL_BDMA_CHANNEL_7
00482   * @retval None
00483   */
00484 __STATIC_INLINE void LL_BDMA_EnableChannel(BDMA_TypeDef *BDMAx, uint32_t Channel)
00485 {
00486   uint32_t bdma_base_addr = (uint32_t)BDMAx;
00487 
00488   SET_BIT(((BDMA_Channel_TypeDef *)(bdma_base_addr + LL_BDMA_CH_OFFSET_TAB[Channel]))->CCR, BDMA_CCR_EN);
00489 }
00490 
00491 /**
00492   * @brief  Disable BDMA channel.
00493   * @rmtoll CCR          EN            LL_BDMA_DisableChannel
00494   * @param  BDMAx BDMA Instance
00495   * @param  Channel This parameter can be one of the following values:
00496   *         @arg @ref LL_BDMA_CHANNEL_0
00497   *         @arg @ref LL_BDMA_CHANNEL_1
00498   *         @arg @ref LL_BDMA_CHANNEL_2
00499   *         @arg @ref LL_BDMA_CHANNEL_3
00500   *         @arg @ref LL_BDMA_CHANNEL_4
00501   *         @arg @ref LL_BDMA_CHANNEL_5
00502   *         @arg @ref LL_BDMA_CHANNEL_6
00503   *         @arg @ref LL_BDMA_CHANNEL_7
00504   * @retval None
00505   */
00506 __STATIC_INLINE void LL_BDMA_DisableChannel(BDMA_TypeDef *BDMAx, uint32_t Channel)
00507 {
00508   uint32_t bdma_base_addr = (uint32_t)BDMAx;
00509 
00510   CLEAR_BIT(((BDMA_Channel_TypeDef *)(bdma_base_addr + LL_BDMA_CH_OFFSET_TAB[Channel]))->CCR, BDMA_CCR_EN);
00511 }
00512 
00513 /**
00514   * @brief  Check if BDMA channel is enabled or disabled.
00515   * @rmtoll CCR          EN            LL_BDMA_IsEnabledChannel
00516   * @param  BDMAx BDMA Instance
00517   * @param  Channel This parameter can be one of the following values:
00518   *         @arg @ref LL_BDMA_CHANNEL_0
00519   *         @arg @ref LL_BDMA_CHANNEL_1
00520   *         @arg @ref LL_BDMA_CHANNEL_2
00521   *         @arg @ref LL_BDMA_CHANNEL_3
00522   *         @arg @ref LL_BDMA_CHANNEL_4
00523   *         @arg @ref LL_BDMA_CHANNEL_5
00524   *         @arg @ref LL_BDMA_CHANNEL_6
00525   *         @arg @ref LL_BDMA_CHANNEL_7
00526   * @retval State of bit (1 or 0).
00527   */
00528 __STATIC_INLINE uint32_t LL_BDMA_IsEnabledChannel(BDMA_TypeDef *BDMAx, uint32_t Channel)
00529 {
00530   uint32_t bdma_base_addr = (uint32_t)BDMAx;
00531 
00532   return ((READ_BIT(((BDMA_Channel_TypeDef *)(bdma_base_addr + LL_BDMA_CH_OFFSET_TAB[Channel]))->CCR, BDMA_CCR_EN) == (BDMA_CCR_EN)) ? 1UL : 0UL);
00533 }
00534 
00535 /**
00536   * @brief  Configure all parameters link to BDMA transfer.
00537   * @rmtoll CCR          DIR           LL_BDMA_ConfigTransfer\n
00538   *         CCR          MEM2MEM       LL_BDMA_ConfigTransfer\n
00539   *         CCR          CIRC          LL_BDMA_ConfigTransfer\n
00540   *         CCR          PINC          LL_BDMA_ConfigTransfer\n
00541   *         CCR          MINC          LL_BDMA_ConfigTransfer\n
00542   *         CCR          PSIZE         LL_BDMA_ConfigTransfer\n
00543   *         CCR          MSIZE         LL_BDMA_ConfigTransfer\n
00544   *         CCR          PL            LL_BDMA_ConfigTransfer
00545   * @param  BDMAx BDMA Instance
00546   * @param  Channel This parameter can be one of the following values:
00547   *         @arg @ref LL_BDMA_CHANNEL_0
00548   *         @arg @ref LL_BDMA_CHANNEL_1
00549   *         @arg @ref LL_BDMA_CHANNEL_2
00550   *         @arg @ref LL_BDMA_CHANNEL_3
00551   *         @arg @ref LL_BDMA_CHANNEL_4
00552   *         @arg @ref LL_BDMA_CHANNEL_5
00553   *         @arg @ref LL_BDMA_CHANNEL_6
00554   *         @arg @ref LL_BDMA_CHANNEL_7
00555   * @param  Configuration This parameter must be a combination of all the following values:
00556   *         @arg @ref LL_BDMA_DIRECTION_PERIPH_TO_MEMORY or @ref LL_BDMA_DIRECTION_MEMORY_TO_PERIPH or @ref LL_BDMA_DIRECTION_MEMORY_TO_MEMORY
00557   *         @arg @ref LL_BDMA_MODE_NORMAL or @ref LL_BDMA_MODE_CIRCULAR
00558   *         @arg @ref LL_BDMA_PERIPH_INCREMENT or @ref LL_BDMA_PERIPH_NOINCREMENT
00559   *         @arg @ref LL_BDMA_MEMORY_INCREMENT or @ref LL_BDMA_MEMORY_NOINCREMENT
00560   *         @arg @ref LL_BDMA_PDATAALIGN_BYTE or @ref LL_BDMA_PDATAALIGN_HALFWORD or @ref LL_BDMA_PDATAALIGN_WORD
00561   *         @arg @ref LL_BDMA_MDATAALIGN_BYTE or @ref LL_BDMA_MDATAALIGN_HALFWORD or @ref LL_BDMA_MDATAALIGN_WORD
00562   *         @arg @ref LL_BDMA_PRIORITY_LOW or @ref LL_BDMA_PRIORITY_MEDIUM or @ref LL_BDMA_PRIORITY_HIGH or @ref LL_BDMA_PRIORITY_VERYHIGH
00563   * @retval None
00564   */
00565 __STATIC_INLINE void LL_BDMA_ConfigTransfer(BDMA_TypeDef *BDMAx, uint32_t Channel, uint32_t Configuration)
00566 {
00567   uint32_t bdma_base_addr = (uint32_t)BDMAx;
00568 
00569   MODIFY_REG(((BDMA_Channel_TypeDef *)(bdma_base_addr + LL_BDMA_CH_OFFSET_TAB[Channel]))->CCR,
00570              BDMA_CCR_DIR | BDMA_CCR_MEM2MEM | BDMA_CCR_CIRC | BDMA_CCR_PINC | BDMA_CCR_MINC | BDMA_CCR_PSIZE | BDMA_CCR_MSIZE | BDMA_CCR_PL,
00571              Configuration);
00572 }
00573 
00574 /**
00575   * @brief  Set Data transfer direction (read from peripheral or from memory).
00576   * @rmtoll CCR          DIR           LL_BDMA_SetDataTransferDirection\n
00577   *         CCR          MEM2MEM       LL_BDMA_SetDataTransferDirection
00578   * @param  BDMAx BDMA Instance
00579   * @param  Channel This parameter can be one of the following values:
00580   *         @arg @ref LL_BDMA_CHANNEL_0
00581   *         @arg @ref LL_BDMA_CHANNEL_1
00582   *         @arg @ref LL_BDMA_CHANNEL_2
00583   *         @arg @ref LL_BDMA_CHANNEL_3
00584   *         @arg @ref LL_BDMA_CHANNEL_4
00585   *         @arg @ref LL_BDMA_CHANNEL_5
00586   *         @arg @ref LL_BDMA_CHANNEL_6
00587   *         @arg @ref LL_BDMA_CHANNEL_7
00588   * @param  Direction This parameter can be one of the following values:
00589   *         @arg @ref LL_BDMA_DIRECTION_PERIPH_TO_MEMORY
00590   *         @arg @ref LL_BDMA_DIRECTION_MEMORY_TO_PERIPH
00591   *         @arg @ref LL_BDMA_DIRECTION_MEMORY_TO_MEMORY
00592   * @retval None
00593   */
00594 __STATIC_INLINE void LL_BDMA_SetDataTransferDirection(BDMA_TypeDef *BDMAx, uint32_t Channel, uint32_t Direction)
00595 {
00596   uint32_t bdma_base_addr = (uint32_t)BDMAx;
00597 
00598   MODIFY_REG(((BDMA_Channel_TypeDef *)(bdma_base_addr + LL_BDMA_CH_OFFSET_TAB[Channel]))->CCR,
00599              BDMA_CCR_DIR | BDMA_CCR_MEM2MEM, Direction);
00600 }
00601 
00602 /**
00603   * @brief  Get Data transfer direction (read from peripheral or from memory).
00604   * @rmtoll CCR          DIR           LL_BDMA_GetDataTransferDirection\n
00605   *         CCR          MEM2MEM       LL_BDMA_GetDataTransferDirection
00606   * @param  BDMAx BDMA Instance
00607   * @param  Channel This parameter can be one of the following values:
00608   *         @arg @ref LL_BDMA_CHANNEL_0
00609   *         @arg @ref LL_BDMA_CHANNEL_1
00610   *         @arg @ref LL_BDMA_CHANNEL_2
00611   *         @arg @ref LL_BDMA_CHANNEL_3
00612   *         @arg @ref LL_BDMA_CHANNEL_4
00613   *         @arg @ref LL_BDMA_CHANNEL_5
00614   *         @arg @ref LL_BDMA_CHANNEL_6
00615   *         @arg @ref LL_BDMA_CHANNEL_7
00616   * @retval Returned value can be one of the following values:
00617   *         @arg @ref LL_BDMA_DIRECTION_PERIPH_TO_MEMORY
00618   *         @arg @ref LL_BDMA_DIRECTION_MEMORY_TO_PERIPH
00619   *         @arg @ref LL_BDMA_DIRECTION_MEMORY_TO_MEMORY
00620   */
00621 __STATIC_INLINE uint32_t LL_BDMA_GetDataTransferDirection(BDMA_TypeDef *BDMAx, uint32_t Channel)
00622 {
00623   uint32_t bdma_base_addr = (uint32_t)BDMAx;
00624 
00625   return (READ_BIT(((BDMA_Channel_TypeDef *)(bdma_base_addr + LL_BDMA_CH_OFFSET_TAB[Channel]))->CCR,
00626                    BDMA_CCR_DIR | BDMA_CCR_MEM2MEM));
00627 }
00628 
00629 /**
00630   * @brief  Set BDMA mode circular or normal.
00631   * @note The circular buffer mode cannot be used if the memory-to-memory
00632   * data transfer is configured on the selected Channel.
00633   * @rmtoll CCR          CIRC          LL_BDMA_SetMode
00634   * @param  BDMAx BDMA Instance
00635   * @param  Channel This parameter can be one of the following values:
00636   *         @arg @ref LL_BDMA_CHANNEL_0
00637   *         @arg @ref LL_BDMA_CHANNEL_1
00638   *         @arg @ref LL_BDMA_CHANNEL_2
00639   *         @arg @ref LL_BDMA_CHANNEL_3
00640   *         @arg @ref LL_BDMA_CHANNEL_4
00641   *         @arg @ref LL_BDMA_CHANNEL_5
00642   *         @arg @ref LL_BDMA_CHANNEL_6
00643   *         @arg @ref LL_BDMA_CHANNEL_7
00644   * @param  Mode This parameter can be one of the following values:
00645   *         @arg @ref LL_BDMA_MODE_NORMAL
00646   *         @arg @ref LL_BDMA_MODE_CIRCULAR
00647   * @retval None
00648   */
00649 __STATIC_INLINE void LL_BDMA_SetMode(BDMA_TypeDef *BDMAx, uint32_t Channel, uint32_t Mode)
00650 {
00651   uint32_t bdma_base_addr = (uint32_t)BDMAx;
00652 
00653   MODIFY_REG(((BDMA_Channel_TypeDef *)(bdma_base_addr + LL_BDMA_CH_OFFSET_TAB[Channel]))->CCR, BDMA_CCR_CIRC,
00654              Mode);
00655 }
00656 
00657 /**
00658   * @brief  Get BDMA mode circular or normal.
00659   * @rmtoll CCR          CIRC          LL_BDMA_GetMode
00660   * @param  BDMAx BDMA Instance
00661   * @param  Channel This parameter can be one of the following values:
00662   *         @arg @ref LL_BDMA_CHANNEL_0
00663   *         @arg @ref LL_BDMA_CHANNEL_1
00664   *         @arg @ref LL_BDMA_CHANNEL_2
00665   *         @arg @ref LL_BDMA_CHANNEL_3
00666   *         @arg @ref LL_BDMA_CHANNEL_4
00667   *         @arg @ref LL_BDMA_CHANNEL_5
00668   *         @arg @ref LL_BDMA_CHANNEL_6
00669   *         @arg @ref LL_BDMA_CHANNEL_7
00670   * @retval Returned value can be one of the following values:
00671   *         @arg @ref LL_BDMA_MODE_NORMAL
00672   *         @arg @ref LL_BDMA_MODE_CIRCULAR
00673   */
00674 __STATIC_INLINE uint32_t LL_BDMA_GetMode(BDMA_TypeDef *BDMAx, uint32_t Channel)
00675 {
00676   uint32_t bdma_base_addr = (uint32_t)BDMAx;
00677 
00678   return (READ_BIT(((BDMA_Channel_TypeDef *)(bdma_base_addr + LL_BDMA_CH_OFFSET_TAB[Channel]))->CCR,
00679                    BDMA_CCR_CIRC));
00680 }
00681 
00682 /**
00683   * @brief  Set Peripheral increment mode.
00684   * @rmtoll CCR          PINC          LL_BDMA_SetPeriphIncMode
00685   * @param  BDMAx BDMA Instance
00686   * @param  Channel This parameter can be one of the following values:
00687   *         @arg @ref LL_BDMA_CHANNEL_0
00688   *         @arg @ref LL_BDMA_CHANNEL_1
00689   *         @arg @ref LL_BDMA_CHANNEL_2
00690   *         @arg @ref LL_BDMA_CHANNEL_3
00691   *         @arg @ref LL_BDMA_CHANNEL_4
00692   *         @arg @ref LL_BDMA_CHANNEL_5
00693   *         @arg @ref LL_BDMA_CHANNEL_6
00694   *         @arg @ref LL_BDMA_CHANNEL_7
00695   * @param  PeriphOrM2MSrcIncMode This parameter can be one of the following values:
00696   *         @arg @ref LL_BDMA_PERIPH_INCREMENT
00697   *         @arg @ref LL_BDMA_PERIPH_NOINCREMENT
00698   * @retval None
00699   */
00700 __STATIC_INLINE void LL_BDMA_SetPeriphIncMode(BDMA_TypeDef *BDMAx, uint32_t Channel, uint32_t PeriphOrM2MSrcIncMode)
00701 {
00702   uint32_t bdma_base_addr = (uint32_t)BDMAx;
00703 
00704   MODIFY_REG(((BDMA_Channel_TypeDef *)(bdma_base_addr + LL_BDMA_CH_OFFSET_TAB[Channel]))->CCR, BDMA_CCR_PINC,
00705              PeriphOrM2MSrcIncMode);
00706 }
00707 
00708 /**
00709   * @brief  Get Peripheral increment mode.
00710   * @rmtoll CCR          PINC          LL_BDMA_GetPeriphIncMode
00711   * @param  BDMAx BDMA Instance
00712   * @param  Channel This parameter can be one of the following values:
00713   *         @arg @ref LL_BDMA_CHANNEL_0
00714   *         @arg @ref LL_BDMA_CHANNEL_1
00715   *         @arg @ref LL_BDMA_CHANNEL_2
00716   *         @arg @ref LL_BDMA_CHANNEL_3
00717   *         @arg @ref LL_BDMA_CHANNEL_4
00718   *         @arg @ref LL_BDMA_CHANNEL_5
00719   *         @arg @ref LL_BDMA_CHANNEL_6
00720   *         @arg @ref LL_BDMA_CHANNEL_7
00721   * @retval Returned value can be one of the following values:
00722   *         @arg @ref LL_BDMA_PERIPH_INCREMENT
00723   *         @arg @ref LL_BDMA_PERIPH_NOINCREMENT
00724   */
00725 __STATIC_INLINE uint32_t LL_BDMA_GetPeriphIncMode(BDMA_TypeDef *BDMAx, uint32_t Channel)
00726 {
00727   uint32_t bdma_base_addr = (uint32_t)BDMAx;
00728 
00729   return (READ_BIT(((BDMA_Channel_TypeDef *)(bdma_base_addr + LL_BDMA_CH_OFFSET_TAB[Channel]))->CCR,
00730                    BDMA_CCR_PINC));
00731 }
00732 
00733 /**
00734   * @brief  Set Memory increment mode.
00735   * @rmtoll CCR          MINC          LL_BDMA_SetMemoryIncMode
00736   * @param  BDMAx BDMA Instance
00737   * @param  Channel This parameter can be one of the following values:
00738   *         @arg @ref LL_BDMA_CHANNEL_0
00739   *         @arg @ref LL_BDMA_CHANNEL_1
00740   *         @arg @ref LL_BDMA_CHANNEL_2
00741   *         @arg @ref LL_BDMA_CHANNEL_3
00742   *         @arg @ref LL_BDMA_CHANNEL_4
00743   *         @arg @ref LL_BDMA_CHANNEL_5
00744   *         @arg @ref LL_BDMA_CHANNEL_6
00745   *         @arg @ref LL_BDMA_CHANNEL_7
00746   * @param  MemoryOrM2MDstIncMode This parameter can be one of the following values:
00747   *         @arg @ref LL_BDMA_MEMORY_INCREMENT
00748   *         @arg @ref LL_BDMA_MEMORY_NOINCREMENT
00749   * @retval None
00750   */
00751 __STATIC_INLINE void LL_BDMA_SetMemoryIncMode(BDMA_TypeDef *BDMAx, uint32_t Channel, uint32_t MemoryOrM2MDstIncMode)
00752 {
00753   uint32_t bdma_base_addr = (uint32_t)BDMAx;
00754 
00755   MODIFY_REG(((BDMA_Channel_TypeDef *)(bdma_base_addr + LL_BDMA_CH_OFFSET_TAB[Channel]))->CCR, BDMA_CCR_MINC,
00756              MemoryOrM2MDstIncMode);
00757 }
00758 
00759 /**
00760   * @brief  Get Memory increment mode.
00761   * @rmtoll CCR          MINC          LL_BDMA_GetMemoryIncMode
00762   * @param  BDMAx BDMA Instance
00763   * @param  Channel This parameter can be one of the following values:
00764   *         @arg @ref LL_BDMA_CHANNEL_0
00765   *         @arg @ref LL_BDMA_CHANNEL_1
00766   *         @arg @ref LL_BDMA_CHANNEL_2
00767   *         @arg @ref LL_BDMA_CHANNEL_3
00768   *         @arg @ref LL_BDMA_CHANNEL_4
00769   *         @arg @ref LL_BDMA_CHANNEL_5
00770   *         @arg @ref LL_BDMA_CHANNEL_6
00771   *         @arg @ref LL_BDMA_CHANNEL_7
00772   * @retval Returned value can be one of the following values:
00773   *         @arg @ref LL_BDMA_MEMORY_INCREMENT
00774   *         @arg @ref LL_BDMA_MEMORY_NOINCREMENT
00775   */
00776 __STATIC_INLINE uint32_t LL_BDMA_GetMemoryIncMode(BDMA_TypeDef *BDMAx, uint32_t Channel)
00777 {
00778   uint32_t bdma_base_addr = (uint32_t)BDMAx;
00779 
00780   return (READ_BIT(((BDMA_Channel_TypeDef *)(bdma_base_addr + LL_BDMA_CH_OFFSET_TAB[Channel]))->CCR,
00781                    BDMA_CCR_MINC));
00782 }
00783 
00784 /**
00785   * @brief  Set Peripheral size.
00786   * @rmtoll CCR          PSIZE         LL_BDMA_SetPeriphSize
00787   * @param  BDMAx BDMA Instance
00788   * @param  Channel This parameter can be one of the following values:
00789   *         @arg @ref LL_BDMA_CHANNEL_0
00790   *         @arg @ref LL_BDMA_CHANNEL_1
00791   *         @arg @ref LL_BDMA_CHANNEL_2
00792   *         @arg @ref LL_BDMA_CHANNEL_3
00793   *         @arg @ref LL_BDMA_CHANNEL_4
00794   *         @arg @ref LL_BDMA_CHANNEL_5
00795   *         @arg @ref LL_BDMA_CHANNEL_6
00796   *         @arg @ref LL_BDMA_CHANNEL_7
00797   * @param  PeriphOrM2MSrcDataSize This parameter can be one of the following values:
00798   *         @arg @ref LL_BDMA_PDATAALIGN_BYTE
00799   *         @arg @ref LL_BDMA_PDATAALIGN_HALFWORD
00800   *         @arg @ref LL_BDMA_PDATAALIGN_WORD
00801   * @retval None
00802   */
00803 __STATIC_INLINE void LL_BDMA_SetPeriphSize(BDMA_TypeDef *BDMAx, uint32_t Channel, uint32_t PeriphOrM2MSrcDataSize)
00804 {
00805   uint32_t bdma_base_addr = (uint32_t)BDMAx;
00806 
00807   MODIFY_REG(((BDMA_Channel_TypeDef *)(bdma_base_addr + LL_BDMA_CH_OFFSET_TAB[Channel]))->CCR, BDMA_CCR_PSIZE,
00808              PeriphOrM2MSrcDataSize);
00809 }
00810 
00811 /**
00812   * @brief  Get Peripheral size.
00813   * @rmtoll CCR          PSIZE         LL_BDMA_GetPeriphSize
00814   * @param  BDMAx BDMA Instance
00815   * @param  Channel This parameter can be one of the following values:
00816   *         @arg @ref LL_BDMA_CHANNEL_0
00817   *         @arg @ref LL_BDMA_CHANNEL_1
00818   *         @arg @ref LL_BDMA_CHANNEL_2
00819   *         @arg @ref LL_BDMA_CHANNEL_3
00820   *         @arg @ref LL_BDMA_CHANNEL_4
00821   *         @arg @ref LL_BDMA_CHANNEL_5
00822   *         @arg @ref LL_BDMA_CHANNEL_6
00823   *         @arg @ref LL_BDMA_CHANNEL_7
00824   * @retval Returned value can be one of the following values:
00825   *         @arg @ref LL_BDMA_PDATAALIGN_BYTE
00826   *         @arg @ref LL_BDMA_PDATAALIGN_HALFWORD
00827   *         @arg @ref LL_BDMA_PDATAALIGN_WORD
00828   */
00829 __STATIC_INLINE uint32_t LL_BDMA_GetPeriphSize(BDMA_TypeDef *BDMAx, uint32_t Channel)
00830 {
00831   uint32_t bdma_base_addr = (uint32_t)BDMAx;
00832 
00833   return (READ_BIT(((BDMA_Channel_TypeDef *)(bdma_base_addr + LL_BDMA_CH_OFFSET_TAB[Channel]))->CCR,
00834                    BDMA_CCR_PSIZE));
00835 }
00836 
00837 /**
00838   * @brief  Set Memory size.
00839   * @rmtoll CCR          MSIZE         LL_BDMA_SetMemorySize
00840   * @param  BDMAx BDMA Instance
00841   * @param  Channel This parameter can be one of the following values:
00842   *         @arg @ref LL_BDMA_CHANNEL_0
00843   *         @arg @ref LL_BDMA_CHANNEL_1
00844   *         @arg @ref LL_BDMA_CHANNEL_2
00845   *         @arg @ref LL_BDMA_CHANNEL_3
00846   *         @arg @ref LL_BDMA_CHANNEL_4
00847   *         @arg @ref LL_BDMA_CHANNEL_5
00848   *         @arg @ref LL_BDMA_CHANNEL_6
00849   *         @arg @ref LL_BDMA_CHANNEL_7
00850   * @param  MemoryOrM2MDstDataSize This parameter can be one of the following values:
00851   *         @arg @ref LL_BDMA_MDATAALIGN_BYTE
00852   *         @arg @ref LL_BDMA_MDATAALIGN_HALFWORD
00853   *         @arg @ref LL_BDMA_MDATAALIGN_WORD
00854   * @retval None
00855   */
00856 __STATIC_INLINE void LL_BDMA_SetMemorySize(BDMA_TypeDef *BDMAx, uint32_t Channel, uint32_t MemoryOrM2MDstDataSize)
00857 {
00858   uint32_t bdma_base_addr = (uint32_t)BDMAx;
00859 
00860   MODIFY_REG(((BDMA_Channel_TypeDef *)(bdma_base_addr + LL_BDMA_CH_OFFSET_TAB[Channel]))->CCR, BDMA_CCR_MSIZE,
00861              MemoryOrM2MDstDataSize);
00862 }
00863 
00864 /**
00865   * @brief  Get Memory size.
00866   * @rmtoll CCR          MSIZE         LL_BDMA_GetMemorySize
00867   * @param  BDMAx BDMA Instance
00868   * @param  Channel This parameter can be one of the following values:
00869   *         @arg @ref LL_BDMA_CHANNEL_0
00870   *         @arg @ref LL_BDMA_CHANNEL_1
00871   *         @arg @ref LL_BDMA_CHANNEL_2
00872   *         @arg @ref LL_BDMA_CHANNEL_3
00873   *         @arg @ref LL_BDMA_CHANNEL_4
00874   *         @arg @ref LL_BDMA_CHANNEL_5
00875   *         @arg @ref LL_BDMA_CHANNEL_6
00876   *         @arg @ref LL_BDMA_CHANNEL_7
00877   * @retval Returned value can be one of the following values:
00878   *         @arg @ref LL_BDMA_MDATAALIGN_BYTE
00879   *         @arg @ref LL_BDMA_MDATAALIGN_HALFWORD
00880   *         @arg @ref LL_BDMA_MDATAALIGN_WORD
00881   */
00882 __STATIC_INLINE uint32_t LL_BDMA_GetMemorySize(BDMA_TypeDef *BDMAx, uint32_t Channel)
00883 {
00884   uint32_t bdma_base_addr = (uint32_t)BDMAx;
00885 
00886   return (READ_BIT(((BDMA_Channel_TypeDef *)(bdma_base_addr + LL_BDMA_CH_OFFSET_TAB[Channel]))->CCR,
00887                    BDMA_CCR_MSIZE));
00888 }
00889 
00890 /**
00891   * @brief  Set Channel priority level.
00892   * @rmtoll CCR          PL            LL_BDMA_SetChannelPriorityLevel
00893   * @param  BDMAx BDMA Instance
00894   * @param  Channel This parameter can be one of the following values:
00895   *         @arg @ref LL_BDMA_CHANNEL_0
00896   *         @arg @ref LL_BDMA_CHANNEL_1
00897   *         @arg @ref LL_BDMA_CHANNEL_2
00898   *         @arg @ref LL_BDMA_CHANNEL_3
00899   *         @arg @ref LL_BDMA_CHANNEL_4
00900   *         @arg @ref LL_BDMA_CHANNEL_5
00901   *         @arg @ref LL_BDMA_CHANNEL_6
00902   *         @arg @ref LL_BDMA_CHANNEL_7
00903   * @param  Priority This parameter can be one of the following values:
00904   *         @arg @ref LL_BDMA_PRIORITY_LOW
00905   *         @arg @ref LL_BDMA_PRIORITY_MEDIUM
00906   *         @arg @ref LL_BDMA_PRIORITY_HIGH
00907   *         @arg @ref LL_BDMA_PRIORITY_VERYHIGH
00908   * @retval None
00909   */
00910 __STATIC_INLINE void LL_BDMA_SetChannelPriorityLevel(BDMA_TypeDef *BDMAx, uint32_t Channel, uint32_t Priority)
00911 {
00912   uint32_t bdma_base_addr = (uint32_t)BDMAx;
00913 
00914   MODIFY_REG(((BDMA_Channel_TypeDef *)(bdma_base_addr + LL_BDMA_CH_OFFSET_TAB[Channel]))->CCR, BDMA_CCR_PL,
00915              Priority);
00916 }
00917 
00918 /**
00919   * @brief  Get Channel priority level.
00920   * @rmtoll CCR          PL            LL_BDMA_GetChannelPriorityLevel
00921   * @param  BDMAx BDMA Instance
00922   * @param  Channel This parameter can be one of the following values:
00923   *         @arg @ref LL_BDMA_CHANNEL_0
00924   *         @arg @ref LL_BDMA_CHANNEL_1
00925   *         @arg @ref LL_BDMA_CHANNEL_2
00926   *         @arg @ref LL_BDMA_CHANNEL_3
00927   *         @arg @ref LL_BDMA_CHANNEL_4
00928   *         @arg @ref LL_BDMA_CHANNEL_5
00929   *         @arg @ref LL_BDMA_CHANNEL_6
00930   *         @arg @ref LL_BDMA_CHANNEL_7
00931   * @retval Returned value can be one of the following values:
00932   *         @arg @ref LL_BDMA_PRIORITY_LOW
00933   *         @arg @ref LL_BDMA_PRIORITY_MEDIUM
00934   *         @arg @ref LL_BDMA_PRIORITY_HIGH
00935   *         @arg @ref LL_BDMA_PRIORITY_VERYHIGH
00936   */
00937 __STATIC_INLINE uint32_t LL_BDMA_GetChannelPriorityLevel(BDMA_TypeDef *BDMAx, uint32_t Channel)
00938 {
00939   uint32_t bdma_base_addr = (uint32_t)BDMAx;
00940 
00941   return (READ_BIT(((BDMA_Channel_TypeDef *)(bdma_base_addr + LL_BDMA_CH_OFFSET_TAB[Channel]))->CCR,
00942                    BDMA_CCR_PL));
00943 }
00944 
00945 /**
00946   * @brief  Set Number of data to transfer.
00947   * @note   This action has no effect if
00948   *         channel is enabled.
00949   * @rmtoll CNDTR        NDT           LL_BDMA_SetDataLength
00950   * @param  BDMAx BDMA Instance
00951   * @param  Channel This parameter can be one of the following values:
00952   *         @arg @ref LL_BDMA_CHANNEL_0
00953   *         @arg @ref LL_BDMA_CHANNEL_1
00954   *         @arg @ref LL_BDMA_CHANNEL_2
00955   *         @arg @ref LL_BDMA_CHANNEL_3
00956   *         @arg @ref LL_BDMA_CHANNEL_4
00957   *         @arg @ref LL_BDMA_CHANNEL_5
00958   *         @arg @ref LL_BDMA_CHANNEL_6
00959   *         @arg @ref LL_BDMA_CHANNEL_7
00960   * @param  NbData Between Min_Data = 0 and Max_Data = 0x0000FFFF
00961   * @retval None
00962   */
00963 __STATIC_INLINE void LL_BDMA_SetDataLength(BDMA_TypeDef *BDMAx, uint32_t Channel, uint32_t NbData)
00964 {
00965   uint32_t bdma_base_addr = (uint32_t)BDMAx;
00966 
00967   MODIFY_REG(((BDMA_Channel_TypeDef *)(bdma_base_addr + LL_BDMA_CH_OFFSET_TAB[Channel]))->CNDTR,
00968              BDMA_CNDTR_NDT, NbData);
00969 }
00970 
00971 /**
00972   * @brief  Get Number of data to transfer.
00973   * @note   Once the channel is enabled, the return value indicate the
00974   *         remaining bytes to be transmitted.
00975   * @rmtoll CNDTR        NDT           LL_BDMA_GetDataLength
00976   * @param  BDMAx BDMA Instance
00977   * @param  Channel This parameter can be one of the following values:
00978   *         @arg @ref LL_BDMA_CHANNEL_0
00979   *         @arg @ref LL_BDMA_CHANNEL_1
00980   *         @arg @ref LL_BDMA_CHANNEL_2
00981   *         @arg @ref LL_BDMA_CHANNEL_3
00982   *         @arg @ref LL_BDMA_CHANNEL_4
00983   *         @arg @ref LL_BDMA_CHANNEL_5
00984   *         @arg @ref LL_BDMA_CHANNEL_6
00985   *         @arg @ref LL_BDMA_CHANNEL_7
00986   * @retval Between Min_Data = 0 and Max_Data = 0xFFFFFFFF
00987   */
00988 __STATIC_INLINE uint32_t LL_BDMA_GetDataLength(BDMA_TypeDef *BDMAx, uint32_t Channel)
00989 {
00990   uint32_t bdma_base_addr = (uint32_t)BDMAx;
00991 
00992   return (READ_BIT(((BDMA_Channel_TypeDef *)(bdma_base_addr + LL_BDMA_CH_OFFSET_TAB[Channel]))->CNDTR,
00993                    BDMA_CNDTR_NDT));
00994 }
00995 
00996 /**
00997   * @brief Set Current target (only in double buffer mode) to Memory 1 or Memory 0.
00998   * @rmtoll CR          CT           LL_BDMA_SetCurrentTargetMem
00999   * @param  BDMAx BDMAx Instance
01000   * @param  Channel This parameter can be one of the following values:
01001   *         @arg @ref LL_BDMA_CHANNEL_0
01002   *         @arg @ref LL_BDMA_CHANNEL_1
01003   *         @arg @ref LL_BDMA_CHANNEL_2
01004   *         @arg @ref LL_BDMA_CHANNEL_3
01005   *         @arg @ref LL_BDMA_CHANNEL_4
01006   *         @arg @ref LL_BDMA_CHANNEL_5
01007   *         @arg @ref LL_BDMA_CHANNEL_6
01008   *         @arg @ref LL_BDMA_CHANNEL_7
01009   * @param CurrentMemory This parameter can be one of the following values:
01010   *         @arg @ref LL_BDMA_CURRENTTARGETMEM0
01011   *         @arg @ref LL_BDMA_CURRENTTARGETMEM1
01012   * @retval None
01013   */
01014 __STATIC_INLINE void LL_BDMA_SetCurrentTargetMem(BDMA_TypeDef *BDMAx, uint32_t Channel, uint32_t CurrentMemory)
01015 {
01016   uint32_t bdma_base_addr = (uint32_t)BDMAx;
01017 
01018   MODIFY_REG(((BDMA_Channel_TypeDef *)(bdma_base_addr + LL_BDMA_CH_OFFSET_TAB[Channel]))->CCR, BDMA_CCR_CT, CurrentMemory);
01019 }
01020 
01021 /**
01022   * @brief Set Current target (only in double buffer mode) to Memory 1 or Memory 0.
01023   * @rmtoll CR          CT           LL_BDMA_GetCurrentTargetMem
01024   * @param  BDMAx BDMAx Instance
01025   * @param  Channel This parameter can be one of the following values:
01026   *         @arg @ref LL_BDMA_CHANNEL_0
01027   *         @arg @ref LL_BDMA_CHANNEL_1
01028   *         @arg @ref LL_BDMA_CHANNEL_2
01029   *         @arg @ref LL_BDMA_CHANNEL_3
01030   *         @arg @ref LL_BDMA_CHANNEL_4
01031   *         @arg @ref LL_BDMA_CHANNEL_5
01032   *         @arg @ref LL_BDMA_CHANNEL_6
01033   *         @arg @ref LL_BDMA_CHANNEL_7
01034   * @retval Returned value can be one of the following values:
01035   *         @arg @ref LL_BDMA_CURRENTTARGETMEM0
01036   *         @arg @ref LL_BDMA_CURRENTTARGETMEM1
01037   */
01038 __STATIC_INLINE uint32_t LL_BDMA_GetCurrentTargetMem(BDMA_TypeDef *BDMAx, uint32_t Channel)
01039 {
01040   uint32_t bdma_base_addr = (uint32_t)BDMAx;
01041 
01042   return (READ_BIT(((BDMA_Channel_TypeDef *)(bdma_base_addr + LL_BDMA_CH_OFFSET_TAB[Channel]))->CCR, BDMA_CCR_CT));
01043 }
01044 
01045 /**
01046   * @brief Enable the double buffer mode.
01047   * @rmtoll CR          DBM           LL_BDMA_EnableDoubleBufferMode
01048   * @param  BDMAx BDMAx Instance
01049   * @param  Channel This parameter can be one of the following values:
01050   *         @arg @ref LL_BDMA_CHANNEL_0
01051   *         @arg @ref LL_BDMA_CHANNEL_1
01052   *         @arg @ref LL_BDMA_CHANNEL_2
01053   *         @arg @ref LL_BDMA_CHANNEL_3
01054   *         @arg @ref LL_BDMA_CHANNEL_4
01055   *         @arg @ref LL_BDMA_CHANNEL_5
01056   *         @arg @ref LL_BDMA_CHANNEL_6
01057   *         @arg @ref LL_BDMA_CHANNEL_7
01058   * @retval None
01059   */
01060 __STATIC_INLINE void LL_BDMA_EnableDoubleBufferMode(BDMA_TypeDef *BDMAx, uint32_t Channel)
01061 {
01062   uint32_t bdma_base_addr = (uint32_t)BDMAx;
01063 
01064   SET_BIT(((BDMA_Channel_TypeDef *)(bdma_base_addr + LL_BDMA_CH_OFFSET_TAB[Channel]))->CCR, BDMA_CCR_DBM);
01065 }
01066 
01067 /**
01068   * @brief Disable the double buffer mode.
01069   * @rmtoll CR          DBM           LL_BDMA_DisableDoubleBufferMode
01070   * @param  BDMAx BDMAx Instance
01071   * @param  Channel This parameter can be one of the following values:
01072   *         @arg @ref LL_BDMA_CHANNEL_0
01073   *         @arg @ref LL_BDMA_CHANNEL_1
01074   *         @arg @ref LL_BDMA_CHANNEL_2
01075   *         @arg @ref LL_BDMA_CHANNEL_3
01076   *         @arg @ref LL_BDMA_CHANNEL_4
01077   *         @arg @ref LL_BDMA_CHANNEL_5
01078   *         @arg @ref LL_BDMA_CHANNEL_6
01079   *         @arg @ref LL_BDMA_CHANNEL_7
01080   * @retval None
01081   */
01082 __STATIC_INLINE void LL_BDMA_DisableDoubleBufferMode(BDMA_TypeDef *BDMAx, uint32_t Channel)
01083 {
01084   uint32_t bdma_base_addr = (uint32_t)BDMAx;
01085 
01086   CLEAR_BIT(((BDMA_Channel_TypeDef *)(bdma_base_addr + LL_BDMA_CH_OFFSET_TAB[Channel]))->CCR, BDMA_CCR_DBM);
01087 }
01088 
01089 /**
01090   * @brief  Configure the Source and Destination addresses.
01091   * @note   This API must not be called when the BDMA channel is enabled.
01092   * @note   Each IP using BDMA provides an API to get directly the register address (LL_PPP_BDMA_GetRegAddr).
01093   * @rmtoll CPAR         PA            LL_BDMA_ConfigAddresses\n
01094   *         CMAR         MA            LL_BDMA_ConfigAddresses
01095   * @param  BDMAx BDMA Instance
01096   * @param  Channel This parameter can be one of the following values:
01097   *         @arg @ref LL_BDMA_CHANNEL_0
01098   *         @arg @ref LL_BDMA_CHANNEL_1
01099   *         @arg @ref LL_BDMA_CHANNEL_2
01100   *         @arg @ref LL_BDMA_CHANNEL_3
01101   *         @arg @ref LL_BDMA_CHANNEL_4
01102   *         @arg @ref LL_BDMA_CHANNEL_5
01103   *         @arg @ref LL_BDMA_CHANNEL_6
01104   *         @arg @ref LL_BDMA_CHANNEL_7
01105   * @param  SrcAddress Between Min_Data = 0 and Max_Data = 0xFFFFFFFF
01106   * @param  DstAddress Between Min_Data = 0 and Max_Data = 0xFFFFFFFF
01107   * @param  Direction This parameter can be one of the following values:
01108   *         @arg @ref LL_BDMA_DIRECTION_PERIPH_TO_MEMORY
01109   *         @arg @ref LL_BDMA_DIRECTION_MEMORY_TO_PERIPH
01110   *         @arg @ref LL_BDMA_DIRECTION_MEMORY_TO_MEMORY
01111   * @retval None
01112   */
01113 __STATIC_INLINE void LL_BDMA_ConfigAddresses(BDMA_TypeDef *BDMAx, uint32_t Channel, uint32_t SrcAddress,
01114                                              uint32_t DstAddress, uint32_t Direction)
01115 {
01116   uint32_t bdma_base_addr = (uint32_t)BDMAx;
01117 
01118   /* Direction Memory to Periph */
01119   if (Direction == LL_BDMA_DIRECTION_MEMORY_TO_PERIPH)
01120   {
01121     WRITE_REG(((BDMA_Channel_TypeDef *)(bdma_base_addr + LL_BDMA_CH_OFFSET_TAB[Channel]))->CM0AR, SrcAddress);
01122     WRITE_REG(((BDMA_Channel_TypeDef *)(bdma_base_addr + LL_BDMA_CH_OFFSET_TAB[Channel]))->CPAR, DstAddress);
01123   }
01124   /* Direction Periph to Memory and Memory to Memory */
01125   else
01126   {
01127     WRITE_REG(((BDMA_Channel_TypeDef *)(bdma_base_addr + LL_BDMA_CH_OFFSET_TAB[Channel]))->CPAR, SrcAddress);
01128     WRITE_REG(((BDMA_Channel_TypeDef *)(bdma_base_addr + LL_BDMA_CH_OFFSET_TAB[Channel]))->CM0AR, DstAddress);
01129   }
01130 }
01131 
01132 /**
01133   * @brief  Set the Memory address.
01134   * @note   Interface used for direction LL_BDMA_DIRECTION_PERIPH_TO_MEMORY or LL_BDMA_DIRECTION_MEMORY_TO_PERIPH only.
01135   * @note   This API must not be called when the BDMA channel is enabled.
01136   * @rmtoll CMAR         MA            LL_BDMA_SetMemoryAddress
01137   * @param  BDMAx BDMA Instance
01138   * @param  Channel This parameter can be one of the following values:
01139   *         @arg @ref LL_BDMA_CHANNEL_0
01140   *         @arg @ref LL_BDMA_CHANNEL_1
01141   *         @arg @ref LL_BDMA_CHANNEL_2
01142   *         @arg @ref LL_BDMA_CHANNEL_3
01143   *         @arg @ref LL_BDMA_CHANNEL_4
01144   *         @arg @ref LL_BDMA_CHANNEL_5
01145   *         @arg @ref LL_BDMA_CHANNEL_6
01146   *         @arg @ref LL_BDMA_CHANNEL_7
01147   * @param  MemoryAddress Between Min_Data = 0 and Max_Data = 0xFFFFFFFF
01148   * @retval None
01149   */
01150 __STATIC_INLINE void LL_BDMA_SetMemoryAddress(BDMA_TypeDef *BDMAx, uint32_t Channel, uint32_t MemoryAddress)
01151 {
01152   uint32_t bdma_base_addr = (uint32_t)BDMAx;
01153 
01154   WRITE_REG(((BDMA_Channel_TypeDef *)(bdma_base_addr + LL_BDMA_CH_OFFSET_TAB[Channel]))->CM0AR, MemoryAddress);
01155 }
01156 
01157 /**
01158   * @brief  Set the Peripheral address.
01159   * @note   Interface used for direction LL_BDMA_DIRECTION_PERIPH_TO_MEMORY or LL_BDMA_DIRECTION_MEMORY_TO_PERIPH only.
01160   * @note   This API must not be called when the BDMA channel is enabled.
01161   * @rmtoll CPAR         PA            LL_BDMA_SetPeriphAddress
01162   * @param  BDMAx BDMA Instance
01163   * @param  Channel This parameter can be one of the following values:
01164   *         @arg @ref LL_BDMA_CHANNEL_0
01165   *         @arg @ref LL_BDMA_CHANNEL_1
01166   *         @arg @ref LL_BDMA_CHANNEL_2
01167   *         @arg @ref LL_BDMA_CHANNEL_3
01168   *         @arg @ref LL_BDMA_CHANNEL_4
01169   *         @arg @ref LL_BDMA_CHANNEL_5
01170   *         @arg @ref LL_BDMA_CHANNEL_6
01171   *         @arg @ref LL_BDMA_CHANNEL_7
01172   * @param  PeriphAddress Between Min_Data = 0 and Max_Data = 0xFFFFFFFF
01173   * @retval None
01174   */
01175 __STATIC_INLINE void LL_BDMA_SetPeriphAddress(BDMA_TypeDef *BDMAx, uint32_t Channel, uint32_t PeriphAddress)
01176 {
01177   uint32_t bdma_base_addr = (uint32_t)BDMAx;
01178 
01179   WRITE_REG(((BDMA_Channel_TypeDef *)(bdma_base_addr + LL_BDMA_CH_OFFSET_TAB[Channel]))->CPAR, PeriphAddress);
01180 }
01181 
01182 /**
01183   * @brief  Get Memory address.
01184   * @note   Interface used for direction LL_BDMA_DIRECTION_PERIPH_TO_MEMORY or LL_BDMA_DIRECTION_MEMORY_TO_PERIPH only.
01185   * @rmtoll CMAR         MA            LL_BDMA_GetMemoryAddress
01186   * @param  BDMAx BDMA Instance
01187   * @param  Channel This parameter can be one of the following values:
01188   *         @arg @ref LL_BDMA_CHANNEL_0
01189   *         @arg @ref LL_BDMA_CHANNEL_1
01190   *         @arg @ref LL_BDMA_CHANNEL_2
01191   *         @arg @ref LL_BDMA_CHANNEL_3
01192   *         @arg @ref LL_BDMA_CHANNEL_4
01193   *         @arg @ref LL_BDMA_CHANNEL_5
01194   *         @arg @ref LL_BDMA_CHANNEL_6
01195   *         @arg @ref LL_BDMA_CHANNEL_7
01196   * @retval Between Min_Data = 0 and Max_Data = 0xFFFFFFFF
01197   */
01198 __STATIC_INLINE uint32_t LL_BDMA_GetMemoryAddress(BDMA_TypeDef *BDMAx, uint32_t Channel)
01199 {
01200   uint32_t bdma_base_addr = (uint32_t)BDMAx;
01201 
01202   return (READ_REG(((BDMA_Channel_TypeDef *)(bdma_base_addr + LL_BDMA_CH_OFFSET_TAB[Channel]))->CM0AR));
01203 }
01204 
01205 /**
01206   * @brief  Get Peripheral address.
01207   * @note   Interface used for direction LL_BDMA_DIRECTION_PERIPH_TO_MEMORY or LL_BDMA_DIRECTION_MEMORY_TO_PERIPH only.
01208   * @rmtoll CPAR         PA            LL_BDMA_GetPeriphAddress
01209   * @param  BDMAx BDMA Instance
01210   * @param  Channel This parameter can be one of the following values:
01211   *         @arg @ref LL_BDMA_CHANNEL_0
01212   *         @arg @ref LL_BDMA_CHANNEL_1
01213   *         @arg @ref LL_BDMA_CHANNEL_2
01214   *         @arg @ref LL_BDMA_CHANNEL_3
01215   *         @arg @ref LL_BDMA_CHANNEL_4
01216   *         @arg @ref LL_BDMA_CHANNEL_5
01217   *         @arg @ref LL_BDMA_CHANNEL_6
01218   *         @arg @ref LL_BDMA_CHANNEL_7
01219   * @retval Between Min_Data = 0 and Max_Data = 0xFFFFFFFF
01220   */
01221 __STATIC_INLINE uint32_t LL_BDMA_GetPeriphAddress(BDMA_TypeDef *BDMAx, uint32_t Channel)
01222 {
01223   uint32_t bdma_base_addr = (uint32_t)BDMAx;
01224 
01225   return (READ_REG(((BDMA_Channel_TypeDef *)(bdma_base_addr + LL_BDMA_CH_OFFSET_TAB[Channel]))->CPAR));
01226 }
01227 
01228 /**
01229   * @brief  Set the Memory to Memory Source address.
01230   * @note   Interface used for direction LL_BDMA_DIRECTION_MEMORY_TO_MEMORY only.
01231   * @note   This API must not be called when the BDMA channel is enabled.
01232   * @rmtoll CPAR         PA            LL_BDMA_SetM2MSrcAddress
01233   * @param  BDMAx BDMA Instance
01234   * @param  Channel This parameter can be one of the following values:
01235   *         @arg @ref LL_BDMA_CHANNEL_0
01236   *         @arg @ref LL_BDMA_CHANNEL_1
01237   *         @arg @ref LL_BDMA_CHANNEL_2
01238   *         @arg @ref LL_BDMA_CHANNEL_3
01239   *         @arg @ref LL_BDMA_CHANNEL_4
01240   *         @arg @ref LL_BDMA_CHANNEL_5
01241   *         @arg @ref LL_BDMA_CHANNEL_6
01242   *         @arg @ref LL_BDMA_CHANNEL_7
01243   * @param  MemoryAddress Between Min_Data = 0 and Max_Data = 0xFFFFFFFF
01244   * @retval None
01245   */
01246 __STATIC_INLINE void LL_BDMA_SetM2MSrcAddress(BDMA_TypeDef *BDMAx, uint32_t Channel, uint32_t MemoryAddress)
01247 {
01248   uint32_t bdma_base_addr = (uint32_t)BDMAx;
01249 
01250   WRITE_REG(((BDMA_Channel_TypeDef *)(bdma_base_addr + LL_BDMA_CH_OFFSET_TAB[Channel]))->CPAR, MemoryAddress);
01251 }
01252 
01253 /**
01254   * @brief  Set the Memory to Memory Destination address.
01255   * @note   Interface used for direction LL_BDMA_DIRECTION_MEMORY_TO_MEMORY only.
01256   * @note   This API must not be called when the BDMA channel is enabled.
01257   * @rmtoll CMAR         MA            LL_BDMA_SetM2MDstAddress
01258   * @param  BDMAx BDMA Instance
01259   * @param  Channel This parameter can be one of the following values:
01260   *         @arg @ref LL_BDMA_CHANNEL_0
01261   *         @arg @ref LL_BDMA_CHANNEL_1
01262   *         @arg @ref LL_BDMA_CHANNEL_2
01263   *         @arg @ref LL_BDMA_CHANNEL_3
01264   *         @arg @ref LL_BDMA_CHANNEL_4
01265   *         @arg @ref LL_BDMA_CHANNEL_5
01266   *         @arg @ref LL_BDMA_CHANNEL_6
01267   *         @arg @ref LL_BDMA_CHANNEL_7
01268   * @param  MemoryAddress Between Min_Data = 0 and Max_Data = 0xFFFFFFFF
01269   * @retval None
01270   */
01271 __STATIC_INLINE void LL_BDMA_SetM2MDstAddress(BDMA_TypeDef *BDMAx, uint32_t Channel, uint32_t MemoryAddress)
01272 {
01273   uint32_t bdma_base_addr = (uint32_t)BDMAx;
01274 
01275   WRITE_REG(((BDMA_Channel_TypeDef *)(bdma_base_addr + LL_BDMA_CH_OFFSET_TAB[Channel]))->CM0AR, MemoryAddress);
01276 }
01277 
01278 /**
01279   * @brief  Get the Memory to Memory Source address.
01280   * @note   Interface used for direction LL_BDMA_DIRECTION_MEMORY_TO_MEMORY only.
01281   * @rmtoll CPAR         PA            LL_BDMA_GetM2MSrcAddress
01282   * @param  BDMAx BDMA Instance
01283   * @param  Channel This parameter can be one of the following values:
01284   *         @arg @ref LL_BDMA_CHANNEL_0
01285   *         @arg @ref LL_BDMA_CHANNEL_1
01286   *         @arg @ref LL_BDMA_CHANNEL_2
01287   *         @arg @ref LL_BDMA_CHANNEL_3
01288   *         @arg @ref LL_BDMA_CHANNEL_4
01289   *         @arg @ref LL_BDMA_CHANNEL_5
01290   *         @arg @ref LL_BDMA_CHANNEL_6
01291   *         @arg @ref LL_BDMA_CHANNEL_7
01292   * @retval Between Min_Data = 0 and Max_Data = 0xFFFFFFFF
01293   */
01294 __STATIC_INLINE uint32_t LL_BDMA_GetM2MSrcAddress(BDMA_TypeDef *BDMAx, uint32_t Channel)
01295 {
01296   uint32_t bdma_base_addr = (uint32_t)BDMAx;
01297 
01298   return (READ_REG(((BDMA_Channel_TypeDef *)(bdma_base_addr + LL_BDMA_CH_OFFSET_TAB[Channel]))->CPAR));
01299 }
01300 
01301 /**
01302   * @brief  Get the Memory to Memory Destination address.
01303   * @note   Interface used for direction LL_BDMA_DIRECTION_MEMORY_TO_MEMORY only.
01304   * @rmtoll CMAR         MA            LL_BDMA_GetM2MDstAddress
01305   * @param  BDMAx BDMA Instance
01306   * @param  Channel This parameter can be one of the following values:
01307   *         @arg @ref LL_BDMA_CHANNEL_0
01308   *         @arg @ref LL_BDMA_CHANNEL_1
01309   *         @arg @ref LL_BDMA_CHANNEL_2
01310   *         @arg @ref LL_BDMA_CHANNEL_3
01311   *         @arg @ref LL_BDMA_CHANNEL_4
01312   *         @arg @ref LL_BDMA_CHANNEL_5
01313   *         @arg @ref LL_BDMA_CHANNEL_6
01314   *         @arg @ref LL_BDMA_CHANNEL_7
01315   * @retval Between Min_Data = 0 and Max_Data = 0xFFFFFFFF
01316   */
01317 __STATIC_INLINE uint32_t LL_BDMA_GetM2MDstAddress(BDMA_TypeDef *BDMAx, uint32_t Channel)
01318 {
01319   uint32_t bdma_base_addr = (uint32_t)BDMAx;
01320 
01321   return (READ_REG(((BDMA_Channel_TypeDef *)(bdma_base_addr + LL_BDMA_CH_OFFSET_TAB[Channel]))->CM0AR));
01322 }
01323 
01324 /**
01325   * @brief Set Memory 1 address (used in case of Double buffer mode).
01326   * @rmtoll M1AR        M1A         LL_BDMA_SetMemory1Address
01327   * @param  BDMAx BDMAx Instance
01328   * @param  Channel This parameter can be one of the following values:
01329   *         @arg @ref LL_BDMA_CHANNEL_0
01330   *         @arg @ref LL_BDMA_CHANNEL_1
01331   *         @arg @ref LL_BDMA_CHANNEL_2
01332   *         @arg @ref LL_BDMA_CHANNEL_3
01333   *         @arg @ref LL_BDMA_CHANNEL_4
01334   *         @arg @ref LL_BDMA_CHANNEL_5
01335   *         @arg @ref LL_BDMA_CHANNEL_6
01336   *         @arg @ref LL_BDMA_CHANNEL_7
01337   * @param  Address Between 0 to 0xFFFFFFFF
01338   * @retval None
01339   */
01340 __STATIC_INLINE void LL_BDMA_SetMemory1Address(BDMA_TypeDef *BDMAx, uint32_t Channel, uint32_t Address)
01341 {
01342   uint32_t bdma_base_addr = (uint32_t)BDMAx;
01343 
01344   MODIFY_REG(((BDMA_Channel_TypeDef *)(bdma_base_addr + LL_BDMA_CH_OFFSET_TAB[Channel]))->CM1AR, BDMA_CM1AR_MA, Address);
01345 }
01346 
01347 /**
01348   * @brief Get Memory 1 address (used in case of Double buffer mode).
01349   * @rmtoll M1AR        M1A         LL_BDMA_GetMemory1Address
01350   * @param  BDMAx BDMAx Instance
01351   * @param  Channel This parameter can be one of the following values:
01352   *         @arg @ref LL_BDMA_CHANNEL_0
01353   *         @arg @ref LL_BDMA_CHANNEL_1
01354   *         @arg @ref LL_BDMA_CHANNEL_2
01355   *         @arg @ref LL_BDMA_CHANNEL_3
01356   *         @arg @ref LL_BDMA_CHANNEL_4
01357   *         @arg @ref LL_BDMA_CHANNEL_5
01358   *         @arg @ref LL_BDMA_CHANNEL_6
01359   *         @arg @ref LL_BDMA_CHANNEL_7
01360   * @retval Between 0 to 0xFFFFFFFF
01361   */
01362 __STATIC_INLINE uint32_t LL_BDMA_GetMemory1Address(BDMA_TypeDef *BDMAx, uint32_t Channel)
01363 {
01364   uint32_t bdma_base_addr = (uint32_t)BDMAx;
01365 
01366   return (((BDMA_Channel_TypeDef *)(bdma_base_addr + LL_BDMA_CH_OFFSET_TAB[Channel]))->CM1AR);
01367 }
01368 
01369 /**
01370   * @brief  Set BDMA request for BDMA Channels on DMAMUX Channel x.
01371   * @note   DMAMUX2 channel 0 to 7 are mapped to BDMA channel 0 to 7.
01372   * @rmtoll CxCR         DMAREQ_ID     LL_BDMA_SetPeriphRequest
01373   * @param  BDMAx BDMAx Instance
01374   * @param  Channel This parameter can be one of the following values:
01375   *         @arg @ref LL_BDMA_CHANNEL_0
01376   *         @arg @ref LL_BDMA_CHANNEL_1
01377   *         @arg @ref LL_BDMA_CHANNEL_2
01378   *         @arg @ref LL_BDMA_CHANNEL_3
01379   *         @arg @ref LL_BDMA_CHANNEL_4
01380   *         @arg @ref LL_BDMA_CHANNEL_5
01381   *         @arg @ref LL_BDMA_CHANNEL_6
01382   *         @arg @ref LL_BDMA_CHANNEL_7
01383   * @param  Request This parameter can be one of the following values:
01384   *         @arg @ref LL_DMAMUX2_REQ_MEM2MEM
01385   *         @arg @ref LL_DMAMUX2_REQ_GENERATOR0
01386   *         @arg @ref LL_DMAMUX2_REQ_GENERATOR1
01387   *         @arg @ref LL_DMAMUX2_REQ_GENERATOR2
01388   *         @arg @ref LL_DMAMUX2_REQ_GENERATOR3
01389   *         @arg @ref LL_DMAMUX2_REQ_GENERATOR4
01390   *         @arg @ref LL_DMAMUX2_REQ_GENERATOR5
01391   *         @arg @ref LL_DMAMUX2_REQ_GENERATOR6
01392   *         @arg @ref LL_DMAMUX2_REQ_GENERATOR7
01393   *         @arg @ref LL_DMAMUX2_REQ_LPUART1_RX
01394   *         @arg @ref LL_DMAMUX2_REQ_LPUART1_TX
01395   *         @arg @ref LL_DMAMUX2_REQ_SPI6_RX
01396   *         @arg @ref LL_DMAMUX2_REQ_SPI6_TX
01397   *         @arg @ref LL_DMAMUX2_REQ_I2C4_RX
01398   *         @arg @ref LL_DMAMUX2_REQ_I2C4_TX
01399   *         @arg @ref LL_DMAMUX2_REQ_SAI4_A (*)
01400   *         @arg @ref LL_DMAMUX2_REQ_SAI4_B (*)
01401   *         @arg @ref LL_DMAMUX2_REQ_ADC3 (*)
01402   *         @arg @ref LL_DMAMUX2_REQ_DAC2_CH1 (*)
01403   *         @arg @ref LL_DMAMUX2_REQ_DFSDM2_FLT0 (*)
01404   *
01405   * @note   (*) Availability depends on devices.
01406   * @retval None
01407   */
01408 __STATIC_INLINE void LL_BDMA_SetPeriphRequest(BDMA_TypeDef *BDMAx, uint32_t Channel, uint32_t Request)
01409 {
01410   UNUSED(BDMAx);
01411   MODIFY_REG(((DMAMUX_Channel_TypeDef *)(uint32_t)((uint32_t)DMAMUX2_Channel0 + (DMAMUX_CCR_SIZE * (Channel))))->CCR, DMAMUX_CxCR_DMAREQ_ID, Request);
01412 }
01413 
01414 /**
01415   * @brief  Get BDMA request for BDMA Channels on DMAMUX Channel x.
01416   * @note   DMAMUX channel 0 to 7 are mapped to BDMA channel 0 to 7.
01417   * @rmtoll CxCR         DMAREQ_ID     LL_BDMA_GetPeriphRequest
01418   * @param  BDMAx BDMAx Instance
01419   * @param  Channel This parameter can be one of the following values:
01420   *         @arg @ref LL_BDMA_CHANNEL_0
01421   *         @arg @ref LL_BDMA_CHANNEL_1
01422   *         @arg @ref LL_BDMA_CHANNEL_2
01423   *         @arg @ref LL_BDMA_CHANNEL_3
01424   *         @arg @ref LL_BDMA_CHANNEL_4
01425   *         @arg @ref LL_BDMA_CHANNEL_5
01426   *         @arg @ref LL_BDMA_CHANNEL_6
01427   *         @arg @ref LL_BDMA_CHANNEL_7
01428   * @retval Returned value can be one of the following values:
01429   *         @arg @ref LL_DMAMUX2_REQ_MEM2MEM
01430   *         @arg @ref LL_DMAMUX2_REQ_GENERATOR0
01431   *         @arg @ref LL_DMAMUX2_REQ_GENERATOR1
01432   *         @arg @ref LL_DMAMUX2_REQ_GENERATOR2
01433   *         @arg @ref LL_DMAMUX2_REQ_GENERATOR3
01434   *         @arg @ref LL_DMAMUX2_REQ_GENERATOR4
01435   *         @arg @ref LL_DMAMUX2_REQ_GENERATOR5
01436   *         @arg @ref LL_DMAMUX2_REQ_GENERATOR6
01437   *         @arg @ref LL_DMAMUX2_REQ_GENERATOR7
01438   *         @arg @ref LL_DMAMUX2_REQ_LPUART1_RX
01439   *         @arg @ref LL_DMAMUX2_REQ_LPUART1_TX
01440   *         @arg @ref LL_DMAMUX2_REQ_SPI6_RX
01441   *         @arg @ref LL_DMAMUX2_REQ_SPI6_TX
01442   *         @arg @ref LL_DMAMUX2_REQ_I2C4_RX
01443   *         @arg @ref LL_DMAMUX2_REQ_I2C4_TX
01444   *         @arg @ref LL_DMAMUX2_REQ_SAI4_A (*)
01445   *         @arg @ref LL_DMAMUX2_REQ_SAI4_B (*)
01446   *         @arg @ref LL_DMAMUX2_REQ_ADC3 (*)
01447   *         @arg @ref LL_DMAMUX2_REQ_DAC2_CH1 (*)
01448   *         @arg @ref LL_DMAMUX2_REQ_DFSDM2_FLT0 (*)
01449   *
01450   * @note   (*) Availability depends on devices.
01451   */
01452 __STATIC_INLINE uint32_t LL_BDMA_GetPeriphRequest(BDMA_TypeDef *BDMAx, uint32_t Channel)
01453 {
01454   UNUSED(BDMAx);
01455   return (READ_BIT(((DMAMUX_Channel_TypeDef *)((uint32_t)((uint32_t)DMAMUX2_Channel0 + (DMAMUX_CCR_SIZE * (Channel)))))->CCR, DMAMUX_CxCR_DMAREQ_ID));
01456 }
01457 
01458 /**
01459   * @}
01460   */
01461 
01462 
01463 /** @defgroup BDMA_LL_EF_FLAG_Management FLAG_Management
01464   * @{
01465   */
01466 /**
01467   * @brief  Get Channel 0 global interrupt flag.
01468   * @rmtoll ISR          GIF0          LL_BDMA_IsActiveFlag_GI0
01469   * @param  BDMAx BDMA Instance
01470   * @retval State of bit (1 or 0).
01471   */
01472 __STATIC_INLINE uint32_t LL_BDMA_IsActiveFlag_GI0(BDMA_TypeDef *BDMAx)
01473 {
01474   return ((READ_BIT(BDMAx->ISR, BDMA_ISR_GIF0) == (BDMA_ISR_GIF0)) ? 1UL : 0UL);
01475 }
01476 
01477 /**
01478   * @brief  Get Channel 1 global interrupt flag.
01479   * @rmtoll ISR          GIF1          LL_BDMA_IsActiveFlag_GI1
01480   * @param  BDMAx BDMA Instance
01481   * @retval State of bit (1 or 0).
01482   */
01483 __STATIC_INLINE uint32_t LL_BDMA_IsActiveFlag_GI1(BDMA_TypeDef *BDMAx)
01484 {
01485   return ((READ_BIT(BDMAx->ISR, BDMA_ISR_GIF1) == (BDMA_ISR_GIF1)) ? 1UL : 0UL);
01486 }
01487 
01488 /**
01489   * @brief  Get Channel 2 global interrupt flag.
01490   * @rmtoll ISR          GIF2          LL_BDMA_IsActiveFlag_GI2
01491   * @param  BDMAx BDMA Instance
01492   * @retval State of bit (1 or 0).
01493   */
01494 __STATIC_INLINE uint32_t LL_BDMA_IsActiveFlag_GI2(BDMA_TypeDef *BDMAx)
01495 {
01496   return ((READ_BIT(BDMAx->ISR, BDMA_ISR_GIF2) == (BDMA_ISR_GIF2)) ? 1UL : 0UL);
01497 }
01498 
01499 /**
01500   * @brief  Get Channel 3 global interrupt flag.
01501   * @rmtoll ISR          GIF3          LL_BDMA_IsActiveFlag_GI3
01502   * @param  BDMAx BDMA Instance
01503   * @retval State of bit (1 or 0).
01504   */
01505 __STATIC_INLINE uint32_t LL_BDMA_IsActiveFlag_GI3(BDMA_TypeDef *BDMAx)
01506 {
01507   return ((READ_BIT(BDMAx->ISR, BDMA_ISR_GIF3) == (BDMA_ISR_GIF3)) ? 1UL : 0UL);
01508 }
01509 
01510 /**
01511   * @brief  Get Channel 4 global interrupt flag.
01512   * @rmtoll ISR          GIF4          LL_BDMA_IsActiveFlag_GI4
01513   * @param  BDMAx BDMA Instance
01514   * @retval State of bit (1 or 0).
01515   */
01516 __STATIC_INLINE uint32_t LL_BDMA_IsActiveFlag_GI4(BDMA_TypeDef *BDMAx)
01517 {
01518   return ((READ_BIT(BDMAx->ISR, BDMA_ISR_GIF4) == (BDMA_ISR_GIF4)) ? 1UL : 0UL);
01519 }
01520 
01521 /**
01522   * @brief  Get Channel 5 global interrupt flag.
01523   * @rmtoll ISR          GIF5          LL_BDMA_IsActiveFlag_GI5
01524   * @param  BDMAx BDMA Instance
01525   * @retval State of bit (1 or 0).
01526   */
01527 __STATIC_INLINE uint32_t LL_BDMA_IsActiveFlag_GI5(BDMA_TypeDef *BDMAx)
01528 {
01529   return ((READ_BIT(BDMAx->ISR, BDMA_ISR_GIF5) == (BDMA_ISR_GIF5)) ? 1UL : 0UL);
01530 }
01531 
01532 /**
01533   * @brief  Get Channel 6 global interrupt flag.
01534   * @rmtoll ISR          GIF6          LL_BDMA_IsActiveFlag_GI6
01535   * @param  BDMAx BDMA Instance
01536   * @retval State of bit (1 or 0).
01537   */
01538 __STATIC_INLINE uint32_t LL_BDMA_IsActiveFlag_GI6(BDMA_TypeDef *BDMAx)
01539 {
01540   return ((READ_BIT(BDMAx->ISR, BDMA_ISR_GIF6) == (BDMA_ISR_GIF6)) ? 1UL : 0UL);
01541 }
01542 
01543 /**
01544   * @brief  Get Channel 7 global interrupt flag.
01545   * @rmtoll ISR          GIF7          LL_BDMA_IsActiveFlag_GI7
01546   * @param  BDMAx BDMA Instance
01547   * @retval State of bit (1 or 0).
01548   */
01549 __STATIC_INLINE uint32_t LL_BDMA_IsActiveFlag_GI7(BDMA_TypeDef *BDMAx)
01550 {
01551   return ((READ_BIT(BDMAx->ISR, BDMA_ISR_GIF7) == (BDMA_ISR_GIF7)) ? 1UL : 0UL);
01552 }
01553 
01554 /**
01555   * @brief  Get Channel 0 transfer complete flag.
01556   * @rmtoll ISR          TCIF0         LL_BDMA_IsActiveFlag_TC0
01557   * @param  BDMAx BDMA Instance
01558   * @retval State of bit (1 or 0).
01559   */
01560 __STATIC_INLINE uint32_t LL_BDMA_IsActiveFlag_TC0(BDMA_TypeDef *BDMAx)
01561 {
01562   return ((READ_BIT(BDMAx->ISR, BDMA_ISR_TCIF0) == (BDMA_ISR_TCIF0)) ? 1UL : 0UL);
01563 }
01564 /**
01565   * @brief  Get Channel 1 transfer complete flag.
01566   * @rmtoll ISR          TCIF1         LL_BDMA_IsActiveFlag_TC1
01567   * @param  BDMAx BDMA Instance
01568   * @retval State of bit (1 or 0).
01569   */
01570 __STATIC_INLINE uint32_t LL_BDMA_IsActiveFlag_TC1(BDMA_TypeDef *BDMAx)
01571 {
01572   return ((READ_BIT(BDMAx->ISR, BDMA_ISR_TCIF1) == (BDMA_ISR_TCIF1)) ? 1UL : 0UL);
01573 }
01574 
01575 /**
01576   * @brief  Get Channel 2 transfer complete flag.
01577   * @rmtoll ISR          TCIF2         LL_BDMA_IsActiveFlag_TC2
01578   * @param  BDMAx BDMA Instance
01579   * @retval State of bit (1 or 0).
01580   */
01581 __STATIC_INLINE uint32_t LL_BDMA_IsActiveFlag_TC2(BDMA_TypeDef *BDMAx)
01582 {
01583   return ((READ_BIT(BDMAx->ISR, BDMA_ISR_TCIF2) == (BDMA_ISR_TCIF2)) ? 1UL : 0UL);
01584 }
01585 
01586 /**
01587   * @brief  Get Channel 3 transfer complete flag.
01588   * @rmtoll ISR          TCIF3         LL_BDMA_IsActiveFlag_TC3
01589   * @param  BDMAx BDMA Instance
01590   * @retval State of bit (1 or 0).
01591   */
01592 __STATIC_INLINE uint32_t LL_BDMA_IsActiveFlag_TC3(BDMA_TypeDef *BDMAx)
01593 {
01594   return ((READ_BIT(BDMAx->ISR, BDMA_ISR_TCIF3) == (BDMA_ISR_TCIF3)) ? 1UL : 0UL);
01595 }
01596 
01597 /**
01598   * @brief  Get Channel 4 transfer complete flag.
01599   * @rmtoll ISR          TCIF4         LL_BDMA_IsActiveFlag_TC4
01600   * @param  BDMAx BDMA Instance
01601   * @retval State of bit (1 or 0).
01602   */
01603 __STATIC_INLINE uint32_t LL_BDMA_IsActiveFlag_TC4(BDMA_TypeDef *BDMAx)
01604 {
01605   return ((READ_BIT(BDMAx->ISR, BDMA_ISR_TCIF4) == (BDMA_ISR_TCIF4)) ? 1UL : 0UL);
01606 }
01607 
01608 /**
01609   * @brief  Get Channel 5 transfer complete flag.
01610   * @rmtoll ISR          TCIF5         LL_BDMA_IsActiveFlag_TC5
01611   * @param  BDMAx BDMA Instance
01612   * @retval State of bit (1 or 0).
01613   */
01614 __STATIC_INLINE uint32_t LL_BDMA_IsActiveFlag_TC5(BDMA_TypeDef *BDMAx)
01615 {
01616   return ((READ_BIT(BDMAx->ISR, BDMA_ISR_TCIF5) == (BDMA_ISR_TCIF5)) ? 1UL : 0UL);
01617 }
01618 
01619 /**
01620   * @brief  Get Channel 6 transfer complete flag.
01621   * @rmtoll ISR          TCIF6         LL_BDMA_IsActiveFlag_TC6
01622   * @param  BDMAx BDMA Instance
01623   * @retval State of bit (1 or 0).
01624   */
01625 __STATIC_INLINE uint32_t LL_BDMA_IsActiveFlag_TC6(BDMA_TypeDef *BDMAx)
01626 {
01627   return ((READ_BIT(BDMAx->ISR, BDMA_ISR_TCIF6) == (BDMA_ISR_TCIF6)) ? 1UL : 0UL);
01628 }
01629 
01630 /**
01631   * @brief  Get Channel 7 transfer complete flag.
01632   * @rmtoll ISR          TCIF7         LL_BDMA_IsActiveFlag_TC7
01633   * @param  BDMAx BDMA Instance
01634   * @retval State of bit (1 or 0).
01635   */
01636 __STATIC_INLINE uint32_t LL_BDMA_IsActiveFlag_TC7(BDMA_TypeDef *BDMAx)
01637 {
01638   return ((READ_BIT(BDMAx->ISR, BDMA_ISR_TCIF7) == (BDMA_ISR_TCIF7)) ? 1UL : 0UL);
01639 }
01640 
01641 /**
01642   * @brief  Get Channel 0 half transfer flag.
01643   * @rmtoll ISR          HTIF0         LL_BDMA_IsActiveFlag_HT0
01644   * @param  BDMAx BDMA Instance
01645   * @retval State of bit (1 or 0).
01646   */
01647 __STATIC_INLINE uint32_t LL_BDMA_IsActiveFlag_HT0(BDMA_TypeDef *BDMAx)
01648 {
01649   return ((READ_BIT(BDMAx->ISR, BDMA_ISR_HTIF0) == (BDMA_ISR_HTIF0)) ? 1UL : 0UL);
01650 }
01651 
01652 /**
01653   * @brief  Get Channel 1 half transfer flag.
01654   * @rmtoll ISR          HTIF1         LL_BDMA_IsActiveFlag_HT1
01655   * @param  BDMAx BDMA Instance
01656   * @retval State of bit (1 or 0).
01657   */
01658 __STATIC_INLINE uint32_t LL_BDMA_IsActiveFlag_HT1(BDMA_TypeDef *BDMAx)
01659 {
01660   return ((READ_BIT(BDMAx->ISR, BDMA_ISR_HTIF1) == (BDMA_ISR_HTIF1)) ? 1UL : 0UL);
01661 }
01662 
01663 /**
01664   * @brief  Get Channel 2 half transfer flag.
01665   * @rmtoll ISR          HTIF2         LL_BDMA_IsActiveFlag_HT2
01666   * @param  BDMAx BDMA Instance
01667   * @retval State of bit (1 or 0).
01668   */
01669 __STATIC_INLINE uint32_t LL_BDMA_IsActiveFlag_HT2(BDMA_TypeDef *BDMAx)
01670 {
01671   return ((READ_BIT(BDMAx->ISR, BDMA_ISR_HTIF2) == (BDMA_ISR_HTIF2)) ? 1UL : 0UL);
01672 }
01673 
01674 /**
01675   * @brief  Get Channel 3 half transfer flag.
01676   * @rmtoll ISR          HTIF3         LL_BDMA_IsActiveFlag_HT3
01677   * @param  BDMAx BDMA Instance
01678   * @retval State of bit (1 or 0).
01679   */
01680 __STATIC_INLINE uint32_t LL_BDMA_IsActiveFlag_HT3(BDMA_TypeDef *BDMAx)
01681 {
01682   return ((READ_BIT(BDMAx->ISR, BDMA_ISR_HTIF3) == (BDMA_ISR_HTIF3)) ? 1UL : 0UL);
01683 }
01684 
01685 /**
01686   * @brief  Get Channel 4 half transfer flag.
01687   * @rmtoll ISR          HTIF4         LL_BDMA_IsActiveFlag_HT4
01688   * @param  BDMAx BDMA Instance
01689   * @retval State of bit (1 or 0).
01690   */
01691 __STATIC_INLINE uint32_t LL_BDMA_IsActiveFlag_HT4(BDMA_TypeDef *BDMAx)
01692 {
01693   return ((READ_BIT(BDMAx->ISR, BDMA_ISR_HTIF4) == (BDMA_ISR_HTIF4)) ? 1UL : 0UL);
01694 }
01695 
01696 /**
01697   * @brief  Get Channel 5 half transfer flag.
01698   * @rmtoll ISR          HTIF5         LL_BDMA_IsActiveFlag_HT5
01699   * @param  BDMAx BDMA Instance
01700   * @retval State of bit (1 or 0).
01701   */
01702 __STATIC_INLINE uint32_t LL_BDMA_IsActiveFlag_HT5(BDMA_TypeDef *BDMAx)
01703 {
01704   return ((READ_BIT(BDMAx->ISR, BDMA_ISR_HTIF5) == (BDMA_ISR_HTIF5)) ? 1UL : 0UL);
01705 }
01706 
01707 /**
01708   * @brief  Get Channel 6 half transfer flag.
01709   * @rmtoll ISR          HTIF6         LL_BDMA_IsActiveFlag_HT6
01710   * @param  BDMAx BDMA Instance
01711   * @retval State of bit (1 or 0).
01712   */
01713 __STATIC_INLINE uint32_t LL_BDMA_IsActiveFlag_HT6(BDMA_TypeDef *BDMAx)
01714 {
01715   return ((READ_BIT(BDMAx->ISR, BDMA_ISR_HTIF6) == (BDMA_ISR_HTIF6)) ? 1UL : 0UL);
01716 }
01717 
01718 /**
01719   * @brief  Get Channel 7 half transfer flag.
01720   * @rmtoll ISR          HTIF7         LL_BDMA_IsActiveFlag_HT7
01721   * @param  BDMAx BDMA Instance
01722   * @retval State of bit (1 or 0).
01723   */
01724 __STATIC_INLINE uint32_t LL_BDMA_IsActiveFlag_HT7(BDMA_TypeDef *BDMAx)
01725 {
01726   return ((READ_BIT(BDMAx->ISR, BDMA_ISR_HTIF7) == (BDMA_ISR_HTIF7)) ? 1UL : 0UL);
01727 }
01728 
01729 /**
01730   * @brief  Get Channel 0 transfer error flag.
01731   * @rmtoll ISR          TEIF0         LL_BDMA_IsActiveFlag_TE0
01732   * @param  BDMAx BDMA Instance
01733   * @retval State of bit (1 or 0).
01734   */
01735 __STATIC_INLINE uint32_t LL_BDMA_IsActiveFlag_TE0(BDMA_TypeDef *BDMAx)
01736 {
01737   return ((READ_BIT(BDMAx->ISR, BDMA_ISR_TEIF0) == (BDMA_ISR_TEIF0)) ? 1UL : 0UL);
01738 }
01739 
01740 /**
01741   * @brief  Get Channel 1 transfer error flag.
01742   * @rmtoll ISR          TEIF1         LL_BDMA_IsActiveFlag_TE1
01743   * @param  BDMAx BDMA Instance
01744   * @retval State of bit (1 or 0).
01745   */
01746 __STATIC_INLINE uint32_t LL_BDMA_IsActiveFlag_TE1(BDMA_TypeDef *BDMAx)
01747 {
01748   return ((READ_BIT(BDMAx->ISR, BDMA_ISR_TEIF1) == (BDMA_ISR_TEIF1)) ? 1UL : 0UL);
01749 }
01750 
01751 /**
01752   * @brief  Get Channel 2 transfer error flag.
01753   * @rmtoll ISR          TEIF2         LL_BDMA_IsActiveFlag_TE2
01754   * @param  BDMAx BDMA Instance
01755   * @retval State of bit (1 or 0).
01756   */
01757 __STATIC_INLINE uint32_t LL_BDMA_IsActiveFlag_TE2(BDMA_TypeDef *BDMAx)
01758 {
01759   return ((READ_BIT(BDMAx->ISR, BDMA_ISR_TEIF2) == (BDMA_ISR_TEIF2)) ? 1UL : 0UL);
01760 }
01761 
01762 /**
01763   * @brief  Get Channel 3 transfer error flag.
01764   * @rmtoll ISR          TEIF3         LL_BDMA_IsActiveFlag_TE3
01765   * @param  BDMAx BDMA Instance
01766   * @retval State of bit (1 or 0).
01767   */
01768 __STATIC_INLINE uint32_t LL_BDMA_IsActiveFlag_TE3(BDMA_TypeDef *BDMAx)
01769 {
01770   return ((READ_BIT(BDMAx->ISR, BDMA_ISR_TEIF3) == (BDMA_ISR_TEIF3)) ? 1UL : 0UL);
01771 }
01772 
01773 /**
01774   * @brief  Get Channel 4 transfer error flag.
01775   * @rmtoll ISR          TEIF4         LL_BDMA_IsActiveFlag_TE4
01776   * @param  BDMAx BDMA Instance
01777   * @retval State of bit (1 or 0).
01778   */
01779 __STATIC_INLINE uint32_t LL_BDMA_IsActiveFlag_TE4(BDMA_TypeDef *BDMAx)
01780 {
01781   return ((READ_BIT(BDMAx->ISR, BDMA_ISR_TEIF4) == (BDMA_ISR_TEIF4)) ? 1UL : 0UL);
01782 }
01783 
01784 /**
01785   * @brief  Get Channel 5 transfer error flag.
01786   * @rmtoll ISR          TEIF5         LL_BDMA_IsActiveFlag_TE5
01787   * @param  BDMAx BDMA Instance
01788   * @retval State of bit (1 or 0).
01789   */
01790 __STATIC_INLINE uint32_t LL_BDMA_IsActiveFlag_TE5(BDMA_TypeDef *BDMAx)
01791 {
01792   return ((READ_BIT(BDMAx->ISR, BDMA_ISR_TEIF5) == (BDMA_ISR_TEIF5)) ? 1UL : 0UL);
01793 }
01794 
01795 /**
01796   * @brief  Get Channel 6 transfer error flag.
01797   * @rmtoll ISR          TEIF6         LL_BDMA_IsActiveFlag_TE6
01798   * @param  BDMAx BDMA Instance
01799   * @retval State of bit (1 or 0).
01800   */
01801 __STATIC_INLINE uint32_t LL_BDMA_IsActiveFlag_TE6(BDMA_TypeDef *BDMAx)
01802 {
01803   return ((READ_BIT(BDMAx->ISR, BDMA_ISR_TEIF6) == (BDMA_ISR_TEIF6)) ? 1UL : 0UL);
01804 }
01805 
01806 /**
01807   * @brief  Get Channel 7 transfer error flag.
01808   * @rmtoll ISR          TEIF7         LL_BDMA_IsActiveFlag_TE7
01809   * @param  BDMAx BDMA Instance
01810   * @retval State of bit (1 or 0).
01811   */
01812 __STATIC_INLINE uint32_t LL_BDMA_IsActiveFlag_TE7(BDMA_TypeDef *BDMAx)
01813 {
01814   return ((READ_BIT(BDMAx->ISR, BDMA_ISR_TEIF7) == (BDMA_ISR_TEIF7)) ? 1UL : 0UL);
01815 }
01816 
01817 /**
01818   * @brief  Clear Channel 0 global interrupt flag.
01819   * @note Do not Clear Channel 0 global interrupt flag when the channel in ON.
01820     Instead clear specific flags transfer complete, half transfer & transfer
01821     error flag with LL_DMA_ClearFlag_TC0, LL_DMA_ClearFlag_HT0,
01822     LL_DMA_ClearFlag_TE0. bug id 2.3.1 in Product Errata Sheet.
01823   * @rmtoll IFCR         CGIF0         LL_BDMA_ClearFlag_GI0
01824   * @param  BDMAx BDMA Instance
01825   * @retval None
01826   */
01827 __STATIC_INLINE void LL_BDMA_ClearFlag_GI0(BDMA_TypeDef *BDMAx)
01828 {
01829   WRITE_REG(BDMAx->IFCR, BDMA_IFCR_CGIF0);
01830 }
01831 
01832 /**
01833   * @brief  Clear Channel 1 global interrupt flag.
01834   * @note Do not Clear Channel 1 global interrupt flag when the channel in ON.
01835     Instead clear specific flags transfer complete, half transfer & transfer
01836     error flag with LL_DMA_ClearFlag_TC1, LL_DMA_ClearFlag_HT1,
01837     LL_DMA_ClearFlag_TE1. bug id 2.3.1 in Product Errata Sheet.
01838   * @rmtoll IFCR         CGIF1         LL_BDMA_ClearFlag_GI1
01839   * @param  BDMAx BDMA Instance
01840   * @retval None
01841   */
01842 __STATIC_INLINE void LL_BDMA_ClearFlag_GI1(BDMA_TypeDef *BDMAx)
01843 {
01844   WRITE_REG(BDMAx->IFCR, BDMA_IFCR_CGIF1);
01845 }
01846 
01847 /**
01848   * @brief  Clear Channel 2 global interrupt flag.
01849   * @note Do not Clear Channel 2 global interrupt flag when the channel in ON.
01850     Instead clear specific flags transfer complete, half transfer & transfer
01851     error flag with LL_DMA_ClearFlag_TC2, LL_DMA_ClearFlag_HT2,
01852     LL_DMA_ClearFlag_TE2. bug id 2.3.1 in Product Errata Sheet.
01853   * @rmtoll IFCR         CGIF2         LL_BDMA_ClearFlag_GI2
01854   * @param  BDMAx BDMA Instance
01855   * @retval None
01856   */
01857 __STATIC_INLINE void LL_BDMA_ClearFlag_GI2(BDMA_TypeDef *BDMAx)
01858 {
01859   WRITE_REG(BDMAx->IFCR, BDMA_IFCR_CGIF2);
01860 }
01861 
01862 /**
01863   * @brief  Clear Channel 3 global interrupt flag.
01864   * @note Do not Clear Channel 3 global interrupt flag when the channel in ON.
01865     Instead clear specific flags transfer complete, half transfer & transfer
01866     error flag with LL_DMA_ClearFlag_TC3, LL_DMA_ClearFlag_HT3,
01867     LL_DMA_ClearFlag_TE3. bug id 2.3.1 in Product Errata Sheet.
01868   * @rmtoll IFCR         CGIF3         LL_BDMA_ClearFlag_GI3
01869   * @param  BDMAx BDMA Instance
01870   * @retval None
01871   */
01872 __STATIC_INLINE void LL_BDMA_ClearFlag_GI3(BDMA_TypeDef *BDMAx)
01873 {
01874   WRITE_REG(BDMAx->IFCR, BDMA_IFCR_CGIF3);
01875 }
01876 
01877 /**
01878   * @brief  Clear Channel 4 global interrupt flag.
01879   * @note Do not Clear Channel 4 global interrupt flag when the channel in ON.
01880     Instead clear specific flags transfer complete, half transfer & transfer
01881     error flag with LL_DMA_ClearFlag_TC4, LL_DMA_ClearFlag_HT4,
01882     LL_DMA_ClearFlag_TE4. bug id 2.3.1 in Product Errata Sheet.
01883   * @rmtoll IFCR         CGIF4         LL_BDMA_ClearFlag_GI4
01884   * @param  BDMAx BDMA Instance
01885   * @retval None
01886   */
01887 __STATIC_INLINE void LL_BDMA_ClearFlag_GI4(BDMA_TypeDef *BDMAx)
01888 {
01889   WRITE_REG(BDMAx->IFCR, BDMA_IFCR_CGIF4);
01890 }
01891 
01892 /**
01893   * @brief  Clear Channel 5 global interrupt flag.
01894   * @note Do not Clear Channel 5 global interrupt flag when the channel in ON.
01895     Instead clear specific flags transfer complete, half transfer & transfer
01896     error flag with LL_DMA_ClearFlag_TC5, LL_DMA_ClearFlag_HT5,
01897     LL_DMA_ClearFlag_TE5. bug id 2.3.1 in Product Errata Sheet.
01898   * @rmtoll IFCR         CGIF5         LL_BDMA_ClearFlag_GI5
01899   * @param  BDMAx BDMA Instance
01900   * @retval None
01901   */
01902 __STATIC_INLINE void LL_BDMA_ClearFlag_GI5(BDMA_TypeDef *BDMAx)
01903 {
01904   WRITE_REG(BDMAx->IFCR, BDMA_IFCR_CGIF5);
01905 }
01906 
01907 /**
01908   * @brief  Clear Channel 6 global interrupt flag.
01909   * @note Do not Clear Channel 6 global interrupt flag when the channel in ON.
01910     Instead clear specific flags transfer complete, half transfer & transfer
01911     error flag with LL_DMA_ClearFlag_TC6, LL_DMA_ClearFlag_HT6,
01912     LL_DMA_ClearFlag_TE6. bug id 2.3.1 in Product Errata Sheet.
01913   * @rmtoll IFCR         CGIF6         LL_BDMA_ClearFlag_GI6
01914   * @param  BDMAx BDMA Instance
01915   * @retval None
01916   */
01917 __STATIC_INLINE void LL_BDMA_ClearFlag_GI6(BDMA_TypeDef *BDMAx)
01918 {
01919   WRITE_REG(BDMAx->IFCR, BDMA_IFCR_CGIF6);
01920 }
01921 
01922 /**
01923   * @brief  Clear Channel 7 global interrupt flag.
01924   * @note Do not Clear Channel 7 global interrupt flag when the channel in ON.
01925     Instead clear specific flags transfer complete, half transfer & transfer
01926     error flag with LL_DMA_ClearFlag_TC7, LL_DMA_ClearFlag_HT7,
01927     LL_DMA_ClearFlag_TE7. bug id 2.3.1 in Product Errata Sheet.
01928   * @rmtoll IFCR         CGIF7         LL_BDMA_ClearFlag_GI7
01929   * @param  BDMAx BDMA Instance
01930   * @retval None
01931   */
01932 __STATIC_INLINE void LL_BDMA_ClearFlag_GI7(BDMA_TypeDef *BDMAx)
01933 {
01934   WRITE_REG(BDMAx->IFCR, BDMA_IFCR_CGIF7);
01935 }
01936 
01937 /**
01938   * @brief  Clear Channel 0  transfer complete flag.
01939   * @rmtoll IFCR         CTCIF0        LL_BDMA_ClearFlag_TC0
01940   * @param  BDMAx BDMA Instance
01941   * @retval None
01942   */
01943 __STATIC_INLINE void LL_BDMA_ClearFlag_TC0(BDMA_TypeDef *BDMAx)
01944 {
01945   WRITE_REG(BDMAx->IFCR, BDMA_IFCR_CTCIF0);
01946 }
01947 
01948 /**
01949   * @brief  Clear Channel 1  transfer complete flag.
01950   * @rmtoll IFCR         CTCIF1        LL_BDMA_ClearFlag_TC1
01951   * @param  BDMAx BDMA Instance
01952   * @retval None
01953   */
01954 __STATIC_INLINE void LL_BDMA_ClearFlag_TC1(BDMA_TypeDef *BDMAx)
01955 {
01956   WRITE_REG(BDMAx->IFCR, BDMA_IFCR_CTCIF1);
01957 }
01958 
01959 /**
01960   * @brief  Clear Channel 2  transfer complete flag.
01961   * @rmtoll IFCR         CTCIF2        LL_BDMA_ClearFlag_TC2
01962   * @param  BDMAx BDMA Instance
01963   * @retval None
01964   */
01965 __STATIC_INLINE void LL_BDMA_ClearFlag_TC2(BDMA_TypeDef *BDMAx)
01966 {
01967   WRITE_REG(BDMAx->IFCR, BDMA_IFCR_CTCIF2);
01968 }
01969 
01970 /**
01971   * @brief  Clear Channel 3  transfer complete flag.
01972   * @rmtoll IFCR         CTCIF3        LL_BDMA_ClearFlag_TC3
01973   * @param  BDMAx BDMA Instance
01974   * @retval None
01975   */
01976 __STATIC_INLINE void LL_BDMA_ClearFlag_TC3(BDMA_TypeDef *BDMAx)
01977 {
01978   WRITE_REG(BDMAx->IFCR, BDMA_IFCR_CTCIF3);
01979 }
01980 
01981 /**
01982   * @brief  Clear Channel 4  transfer complete flag.
01983   * @rmtoll IFCR         CTCIF4        LL_BDMA_ClearFlag_TC4
01984   * @param  BDMAx BDMA Instance
01985   * @retval None
01986   */
01987 __STATIC_INLINE void LL_BDMA_ClearFlag_TC4(BDMA_TypeDef *BDMAx)
01988 {
01989   WRITE_REG(BDMAx->IFCR, BDMA_IFCR_CTCIF4);
01990 }
01991 
01992 /**
01993   * @brief  Clear Channel 5  transfer complete flag.
01994   * @rmtoll IFCR         CTCIF5        LL_BDMA_ClearFlag_TC5
01995   * @param  BDMAx BDMA Instance
01996   * @retval None
01997   */
01998 __STATIC_INLINE void LL_BDMA_ClearFlag_TC5(BDMA_TypeDef *BDMAx)
01999 {
02000   WRITE_REG(BDMAx->IFCR, BDMA_IFCR_CTCIF5);
02001 }
02002 
02003 /**
02004   * @brief  Clear Channel 6  transfer complete flag.
02005   * @rmtoll IFCR         CTCIF6        LL_BDMA_ClearFlag_TC6
02006   * @param  BDMAx BDMA Instance
02007   * @retval None
02008   */
02009 __STATIC_INLINE void LL_BDMA_ClearFlag_TC6(BDMA_TypeDef *BDMAx)
02010 {
02011   WRITE_REG(BDMAx->IFCR, BDMA_IFCR_CTCIF6);
02012 }
02013 
02014 /**
02015   * @brief  Clear Channel 7  transfer complete flag.
02016   * @rmtoll IFCR         CTCIF7        LL_BDMA_ClearFlag_TC7
02017   * @param  BDMAx BDMA Instance
02018   * @retval None
02019   */
02020 __STATIC_INLINE void LL_BDMA_ClearFlag_TC7(BDMA_TypeDef *BDMAx)
02021 {
02022   WRITE_REG(BDMAx->IFCR, BDMA_IFCR_CTCIF7);
02023 }
02024 
02025 /**
02026   * @brief  Clear Channel 0  half transfer flag.
02027   * @rmtoll IFCR         CHTIF0        LL_BDMA_ClearFlag_HT0
02028   * @param  BDMAx BDMA Instance
02029   * @retval None
02030   */
02031 __STATIC_INLINE void LL_BDMA_ClearFlag_HT0(BDMA_TypeDef *BDMAx)
02032 {
02033   WRITE_REG(BDMAx->IFCR, BDMA_IFCR_CHTIF0);
02034 }
02035 
02036 /**
02037   * @brief  Clear Channel 1  half transfer flag.
02038   * @rmtoll IFCR         CHTIF1        LL_BDMA_ClearFlag_HT1
02039   * @param  BDMAx BDMA Instance
02040   * @retval None
02041   */
02042 __STATIC_INLINE void LL_BDMA_ClearFlag_HT1(BDMA_TypeDef *BDMAx)
02043 {
02044   WRITE_REG(BDMAx->IFCR, BDMA_IFCR_CHTIF1);
02045 }
02046 
02047 /**
02048   * @brief  Clear Channel 2  half transfer flag.
02049   * @rmtoll IFCR         CHTIF2        LL_BDMA_ClearFlag_HT2
02050   * @param  BDMAx BDMA Instance
02051   * @retval None
02052   */
02053 __STATIC_INLINE void LL_BDMA_ClearFlag_HT2(BDMA_TypeDef *BDMAx)
02054 {
02055   WRITE_REG(BDMAx->IFCR, BDMA_IFCR_CHTIF2);
02056 }
02057 
02058 /**
02059   * @brief  Clear Channel 3  half transfer flag.
02060   * @rmtoll IFCR         CHTIF3        LL_BDMA_ClearFlag_HT3
02061   * @param  BDMAx BDMA Instance
02062   * @retval None
02063   */
02064 __STATIC_INLINE void LL_BDMA_ClearFlag_HT3(BDMA_TypeDef *BDMAx)
02065 {
02066   WRITE_REG(BDMAx->IFCR, BDMA_IFCR_CHTIF3);
02067 }
02068 
02069 /**
02070   * @brief  Clear Channel 4  half transfer flag.
02071   * @rmtoll IFCR         CHTIF4        LL_BDMA_ClearFlag_HT4
02072   * @param  BDMAx BDMA Instance
02073   * @retval None
02074   */
02075 __STATIC_INLINE void LL_BDMA_ClearFlag_HT4(BDMA_TypeDef *BDMAx)
02076 {
02077   WRITE_REG(BDMAx->IFCR, BDMA_IFCR_CHTIF4);
02078 }
02079 
02080 /**
02081   * @brief  Clear Channel 5  half transfer flag.
02082   * @rmtoll IFCR         CHTIF5        LL_BDMA_ClearFlag_HT5
02083   * @param  BDMAx BDMA Instance
02084   * @retval None
02085   */
02086 __STATIC_INLINE void LL_BDMA_ClearFlag_HT5(BDMA_TypeDef *BDMAx)
02087 {
02088   WRITE_REG(BDMAx->IFCR, BDMA_IFCR_CHTIF5);
02089 }
02090 
02091 /**
02092   * @brief  Clear Channel 6  half transfer flag.
02093   * @rmtoll IFCR         CHTIF6        LL_BDMA_ClearFlag_HT6
02094   * @param  BDMAx BDMA Instance
02095   * @retval None
02096   */
02097 __STATIC_INLINE void LL_BDMA_ClearFlag_HT6(BDMA_TypeDef *BDMAx)
02098 {
02099   WRITE_REG(BDMAx->IFCR, BDMA_IFCR_CHTIF6);
02100 }
02101 
02102 /**
02103   * @brief  Clear Channel 7  half transfer flag.
02104   * @rmtoll IFCR         CHTIF7        LL_BDMA_ClearFlag_HT7
02105   * @param  BDMAx BDMA Instance
02106   * @retval None
02107   */
02108 __STATIC_INLINE void LL_BDMA_ClearFlag_HT7(BDMA_TypeDef *BDMAx)
02109 {
02110   WRITE_REG(BDMAx->IFCR, BDMA_IFCR_CHTIF7);
02111 }
02112 
02113 /**
02114   * @brief  Clear Channel 0 transfer error flag.
02115   * @rmtoll IFCR         CTEIF0        LL_BDMA_ClearFlag_TE0
02116   * @param  BDMAx BDMA Instance
02117   * @retval None
02118   */
02119 __STATIC_INLINE void LL_BDMA_ClearFlag_TE0(BDMA_TypeDef *BDMAx)
02120 {
02121   WRITE_REG(BDMAx->IFCR, BDMA_IFCR_CTEIF0);
02122 }
02123 
02124 /**
02125   * @brief  Clear Channel 1 transfer error flag.
02126   * @rmtoll IFCR         CTEIF1        LL_BDMA_ClearFlag_TE1
02127   * @param  BDMAx BDMA Instance
02128   * @retval None
02129   */
02130 __STATIC_INLINE void LL_BDMA_ClearFlag_TE1(BDMA_TypeDef *BDMAx)
02131 {
02132   WRITE_REG(BDMAx->IFCR, BDMA_IFCR_CTEIF1);
02133 }
02134 
02135 /**
02136   * @brief  Clear Channel 2 transfer error flag.
02137   * @rmtoll IFCR         CTEIF2        LL_BDMA_ClearFlag_TE2
02138   * @param  BDMAx BDMA Instance
02139   * @retval None
02140   */
02141 __STATIC_INLINE void LL_BDMA_ClearFlag_TE2(BDMA_TypeDef *BDMAx)
02142 {
02143   WRITE_REG(BDMAx->IFCR, BDMA_IFCR_CTEIF2);
02144 }
02145 
02146 /**
02147   * @brief  Clear Channel 3 transfer error flag.
02148   * @rmtoll IFCR         CTEIF3        LL_BDMA_ClearFlag_TE3
02149   * @param  BDMAx BDMA Instance
02150   * @retval None
02151   */
02152 __STATIC_INLINE void LL_BDMA_ClearFlag_TE3(BDMA_TypeDef *BDMAx)
02153 {
02154   WRITE_REG(BDMAx->IFCR, BDMA_IFCR_CTEIF3);
02155 }
02156 
02157 /**
02158   * @brief  Clear Channel 4 transfer error flag.
02159   * @rmtoll IFCR         CTEIF4        LL_BDMA_ClearFlag_TE4
02160   * @param  BDMAx BDMA Instance
02161   * @retval None
02162   */
02163 __STATIC_INLINE void LL_BDMA_ClearFlag_TE4(BDMA_TypeDef *BDMAx)
02164 {
02165   WRITE_REG(BDMAx->IFCR, BDMA_IFCR_CTEIF4);
02166 }
02167 
02168 /**
02169   * @brief  Clear Channel 5 transfer error flag.
02170   * @rmtoll IFCR         CTEIF5        LL_BDMA_ClearFlag_TE5
02171   * @param  BDMAx BDMA Instance
02172   * @retval None
02173   */
02174 __STATIC_INLINE void LL_BDMA_ClearFlag_TE5(BDMA_TypeDef *BDMAx)
02175 {
02176   WRITE_REG(BDMAx->IFCR, BDMA_IFCR_CTEIF5);
02177 }
02178 
02179 /**
02180   * @brief  Clear Channel 6 transfer error flag.
02181   * @rmtoll IFCR         CTEIF6        LL_BDMA_ClearFlag_TE6
02182   * @param  BDMAx BDMA Instance
02183   * @retval None
02184   */
02185 __STATIC_INLINE void LL_BDMA_ClearFlag_TE6(BDMA_TypeDef *BDMAx)
02186 {
02187   WRITE_REG(BDMAx->IFCR, BDMA_IFCR_CTEIF6);
02188 }
02189 
02190 /**
02191   * @brief  Clear Channel 7 transfer error flag.
02192   * @rmtoll IFCR         CTEIF7        LL_BDMA_ClearFlag_TE7
02193   * @param  BDMAx BDMA Instance
02194   * @retval None
02195   */
02196 __STATIC_INLINE void LL_BDMA_ClearFlag_TE7(BDMA_TypeDef *BDMAx)
02197 {
02198   WRITE_REG(BDMAx->IFCR, BDMA_IFCR_CTEIF7);
02199 }
02200 
02201 /**
02202   * @}
02203   */
02204 
02205 /** @defgroup BDMA_LL_EF_IT_Management IT_Management
02206   * @{
02207   */
02208 /**
02209   * @brief  Enable Transfer complete interrupt.
02210   * @rmtoll CCR          TCIE          LL_BDMA_EnableIT_TC
02211   * @param  BDMAx BDMA Instance
02212   * @param  Channel This parameter can be one of the following values:
02213   *         @arg @ref LL_BDMA_CHANNEL_0
02214   *         @arg @ref LL_BDMA_CHANNEL_1
02215   *         @arg @ref LL_BDMA_CHANNEL_2
02216   *         @arg @ref LL_BDMA_CHANNEL_3
02217   *         @arg @ref LL_BDMA_CHANNEL_4
02218   *         @arg @ref LL_BDMA_CHANNEL_5
02219   *         @arg @ref LL_BDMA_CHANNEL_6
02220   *         @arg @ref LL_BDMA_CHANNEL_7
02221   * @retval None
02222   */
02223 __STATIC_INLINE void LL_BDMA_EnableIT_TC(BDMA_TypeDef *BDMAx, uint32_t Channel)
02224 {
02225   uint32_t bdma_base_addr = (uint32_t)BDMAx;
02226 
02227   SET_BIT(((BDMA_Channel_TypeDef *)(bdma_base_addr + LL_BDMA_CH_OFFSET_TAB[Channel]))->CCR, BDMA_CCR_TCIE);
02228 }
02229 
02230 /**
02231   * @brief  Enable Half transfer interrupt.
02232   * @rmtoll CCR          HTIE          LL_BDMA_EnableIT_HT
02233   * @param  BDMAx BDMA Instance
02234   * @param  Channel This parameter can be one of the following values:
02235   *         @arg @ref LL_BDMA_CHANNEL_0
02236   *         @arg @ref LL_BDMA_CHANNEL_1
02237   *         @arg @ref LL_BDMA_CHANNEL_2
02238   *         @arg @ref LL_BDMA_CHANNEL_3
02239   *         @arg @ref LL_BDMA_CHANNEL_4
02240   *         @arg @ref LL_BDMA_CHANNEL_5
02241   *         @arg @ref LL_BDMA_CHANNEL_6
02242   *         @arg @ref LL_BDMA_CHANNEL_7
02243   * @retval None
02244   */
02245 __STATIC_INLINE void LL_BDMA_EnableIT_HT(BDMA_TypeDef *BDMAx, uint32_t Channel)
02246 {
02247   uint32_t bdma_base_addr = (uint32_t)BDMAx;
02248 
02249   SET_BIT(((BDMA_Channel_TypeDef *)(bdma_base_addr + LL_BDMA_CH_OFFSET_TAB[Channel]))->CCR, BDMA_CCR_HTIE);
02250 }
02251 
02252 /**
02253   * @brief  Enable Transfer error interrupt.
02254   * @rmtoll CCR          TEIE          LL_BDMA_EnableIT_TE
02255   * @param  BDMAx BDMA Instance
02256   * @param  Channel This parameter can be one of the following values:
02257   *         @arg @ref LL_BDMA_CHANNEL_0
02258   *         @arg @ref LL_BDMA_CHANNEL_1
02259   *         @arg @ref LL_BDMA_CHANNEL_2
02260   *         @arg @ref LL_BDMA_CHANNEL_3
02261   *         @arg @ref LL_BDMA_CHANNEL_4
02262   *         @arg @ref LL_BDMA_CHANNEL_5
02263   *         @arg @ref LL_BDMA_CHANNEL_6
02264   *         @arg @ref LL_BDMA_CHANNEL_7
02265   * @retval None
02266   */
02267 __STATIC_INLINE void LL_BDMA_EnableIT_TE(BDMA_TypeDef *BDMAx, uint32_t Channel)
02268 {
02269   uint32_t bdma_base_addr = (uint32_t)BDMAx;
02270 
02271   SET_BIT(((BDMA_Channel_TypeDef *)(bdma_base_addr + LL_BDMA_CH_OFFSET_TAB[Channel]))->CCR, BDMA_CCR_TEIE);
02272 }
02273 
02274 /**
02275   * @brief  Disable Transfer complete interrupt.
02276   * @rmtoll CCR          TCIE          LL_BDMA_DisableIT_TC
02277   * @param  BDMAx BDMA Instance
02278   * @param  Channel This parameter can be one of the following values:
02279   *         @arg @ref LL_BDMA_CHANNEL_0
02280   *         @arg @ref LL_BDMA_CHANNEL_1
02281   *         @arg @ref LL_BDMA_CHANNEL_2
02282   *         @arg @ref LL_BDMA_CHANNEL_3
02283   *         @arg @ref LL_BDMA_CHANNEL_4
02284   *         @arg @ref LL_BDMA_CHANNEL_5
02285   *         @arg @ref LL_BDMA_CHANNEL_6
02286   *         @arg @ref LL_BDMA_CHANNEL_7
02287   * @retval None
02288   */
02289 __STATIC_INLINE void LL_BDMA_DisableIT_TC(BDMA_TypeDef *BDMAx, uint32_t Channel)
02290 {
02291   uint32_t bdma_base_addr = (uint32_t)BDMAx;
02292 
02293   CLEAR_BIT(((BDMA_Channel_TypeDef *)(bdma_base_addr + LL_BDMA_CH_OFFSET_TAB[Channel]))->CCR, BDMA_CCR_TCIE);
02294 }
02295 
02296 /**
02297   * @brief  Disable Half transfer interrupt.
02298   * @rmtoll CCR          HTIE          LL_BDMA_DisableIT_HT
02299   * @param  BDMAx BDMA Instance
02300   * @param  Channel This parameter can be one of the following values:
02301   *         @arg @ref LL_BDMA_CHANNEL_0
02302   *         @arg @ref LL_BDMA_CHANNEL_1
02303   *         @arg @ref LL_BDMA_CHANNEL_2
02304   *         @arg @ref LL_BDMA_CHANNEL_3
02305   *         @arg @ref LL_BDMA_CHANNEL_4
02306   *         @arg @ref LL_BDMA_CHANNEL_5
02307   *         @arg @ref LL_BDMA_CHANNEL_6
02308   *         @arg @ref LL_BDMA_CHANNEL_7
02309   * @retval None
02310   */
02311 __STATIC_INLINE void LL_BDMA_DisableIT_HT(BDMA_TypeDef *BDMAx, uint32_t Channel)
02312 {
02313   uint32_t bdma_base_addr = (uint32_t)BDMAx;
02314 
02315   CLEAR_BIT(((BDMA_Channel_TypeDef *)(bdma_base_addr + LL_BDMA_CH_OFFSET_TAB[Channel]))->CCR, BDMA_CCR_HTIE);
02316 }
02317 
02318 /**
02319   * @brief  Disable Transfer error interrupt.
02320   * @rmtoll CCR          TEIE          LL_BDMA_DisableIT_TE
02321   * @param  BDMAx BDMA Instance
02322   * @param  Channel This parameter can be one of the following values:
02323   *         @arg @ref LL_BDMA_CHANNEL_0
02324   *         @arg @ref LL_BDMA_CHANNEL_1
02325   *         @arg @ref LL_BDMA_CHANNEL_2
02326   *         @arg @ref LL_BDMA_CHANNEL_3
02327   *         @arg @ref LL_BDMA_CHANNEL_4
02328   *         @arg @ref LL_BDMA_CHANNEL_5
02329   *         @arg @ref LL_BDMA_CHANNEL_6
02330   *         @arg @ref LL_BDMA_CHANNEL_7
02331   * @retval None
02332   */
02333 __STATIC_INLINE void LL_BDMA_DisableIT_TE(BDMA_TypeDef *BDMAx, uint32_t Channel)
02334 {
02335   uint32_t bdma_base_addr = (uint32_t)BDMAx;
02336 
02337   CLEAR_BIT(((BDMA_Channel_TypeDef *)(bdma_base_addr + LL_BDMA_CH_OFFSET_TAB[Channel]))->CCR, BDMA_CCR_TEIE);
02338 }
02339 
02340 /**
02341   * @brief  Check if Transfer complete Interrupt is enabled.
02342   * @rmtoll CCR          TCIE          LL_BDMA_IsEnabledIT_TC
02343   * @param  BDMAx BDMA Instance
02344   * @param  Channel This parameter can be one of the following values:
02345   *         @arg @ref LL_BDMA_CHANNEL_0
02346   *         @arg @ref LL_BDMA_CHANNEL_1
02347   *         @arg @ref LL_BDMA_CHANNEL_2
02348   *         @arg @ref LL_BDMA_CHANNEL_3
02349   *         @arg @ref LL_BDMA_CHANNEL_4
02350   *         @arg @ref LL_BDMA_CHANNEL_5
02351   *         @arg @ref LL_BDMA_CHANNEL_6
02352   *         @arg @ref LL_BDMA_CHANNEL_7
02353   * @retval State of bit (1 or 0).
02354   */
02355 __STATIC_INLINE uint32_t LL_BDMA_IsEnabledIT_TC(BDMA_TypeDef *BDMAx, uint32_t Channel)
02356 {
02357   uint32_t bdma_base_addr = (uint32_t)BDMAx;
02358 
02359   return ((READ_BIT(((BDMA_Channel_TypeDef *)(bdma_base_addr + LL_BDMA_CH_OFFSET_TAB[Channel]))->CCR, BDMA_CCR_TCIE) == (BDMA_CCR_TCIE)) ? 1UL : 0UL);
02360 }
02361 
02362 /**
02363   * @brief  Check if Half transfer Interrupt is enabled.
02364   * @rmtoll CCR          HTIE          LL_BDMA_IsEnabledIT_HT
02365   * @param  BDMAx BDMA Instance
02366   * @param  Channel This parameter can be one of the following values:
02367   *         @arg @ref LL_BDMA_CHANNEL_0
02368   *         @arg @ref LL_BDMA_CHANNEL_1
02369   *         @arg @ref LL_BDMA_CHANNEL_2
02370   *         @arg @ref LL_BDMA_CHANNEL_3
02371   *         @arg @ref LL_BDMA_CHANNEL_4
02372   *         @arg @ref LL_BDMA_CHANNEL_5
02373   *         @arg @ref LL_BDMA_CHANNEL_6
02374   *         @arg @ref LL_BDMA_CHANNEL_7
02375   * @retval State of bit (1 or 0).
02376   */
02377 __STATIC_INLINE uint32_t LL_BDMA_IsEnabledIT_HT(BDMA_TypeDef *BDMAx, uint32_t Channel)
02378 {
02379   uint32_t bdma_base_addr = (uint32_t)BDMAx;
02380 
02381   return ((READ_BIT(((BDMA_Channel_TypeDef *)(bdma_base_addr + LL_BDMA_CH_OFFSET_TAB[Channel]))->CCR, BDMA_CCR_HTIE) == (BDMA_CCR_HTIE)) ? 1UL : 0UL);
02382 }
02383 
02384 /**
02385   * @brief  Check if Transfer error Interrupt is enabled.
02386   * @rmtoll CCR          TEIE          LL_BDMA_IsEnabledIT_TE
02387   * @param  BDMAx BDMA Instance
02388   * @param  Channel This parameter can be one of the following values:
02389   *         @arg @ref LL_BDMA_CHANNEL_0
02390   *         @arg @ref LL_BDMA_CHANNEL_1
02391   *         @arg @ref LL_BDMA_CHANNEL_2
02392   *         @arg @ref LL_BDMA_CHANNEL_3
02393   *         @arg @ref LL_BDMA_CHANNEL_4
02394   *         @arg @ref LL_BDMA_CHANNEL_5
02395   *         @arg @ref LL_BDMA_CHANNEL_6
02396   *         @arg @ref LL_BDMA_CHANNEL_7
02397   * @retval State of bit (1 or 0).
02398   */
02399 __STATIC_INLINE uint32_t LL_BDMA_IsEnabledIT_TE(BDMA_TypeDef *BDMAx, uint32_t Channel)
02400 {
02401   uint32_t bdma_base_addr = (uint32_t)BDMAx;
02402 
02403   return ((READ_BIT(((BDMA_Channel_TypeDef *)(bdma_base_addr + LL_BDMA_CH_OFFSET_TAB[Channel]))->CCR, BDMA_CCR_TEIE) == (BDMA_CCR_TEIE)) ? 1UL : 0UL);
02404 }
02405 
02406 /**
02407   * @}
02408   */
02409 
02410 #if defined(USE_FULL_LL_DRIVER)
02411 /** @defgroup BDMA_LL_EF_Init Initialization and de-initialization functions
02412   * @{
02413   */
02414 
02415 uint32_t LL_BDMA_Init(BDMA_TypeDef *BDMAx, uint32_t Channel, LL_BDMA_InitTypeDef *BDMA_InitStruct);
02416 uint32_t LL_BDMA_DeInit(BDMA_TypeDef *BDMAx, uint32_t Channel);
02417 void LL_BDMA_StructInit(LL_BDMA_InitTypeDef *BDMA_InitStruct);
02418 
02419 /**
02420   * @}
02421   */
02422 #endif /* USE_FULL_LL_DRIVER */
02423 
02424 /**
02425   * @}
02426   */
02427 
02428 /**
02429   * @}
02430   */
02431 
02432 #endif /* BDMA || BDMA1 || BDMA2 */
02433 /**
02434   * @}
02435   */
02436 
02437 /**
02438   * @}
02439   */
02440 
02441 /**
02442   * @}
02443   */
02444 
02445 #ifdef __cplusplus
02446 }
02447 #endif
02448 
02449 #endif /* STM32H7xx_LL_BDMA_H */
02450