STM32H735xx HAL User Manual
|
00001 /** 00002 ****************************************************************************** 00003 * @file stm32h7xx_ll_mdma.h 00004 * @author MCD Application Team 00005 * @brief Header file of MDMA 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_MDMA_H 00021 #define STM32H7xx_LL_MDMA_H 00022 00023 #ifdef __cplusplus 00024 extern "C" { 00025 #endif 00026 00027 /* Includes ------------------------------------------------------------------*/ 00028 #include "stm32h7xx.h" 00029 00030 /** @addtogroup STM32H7xx_LL_Driver 00031 * @{ 00032 */ 00033 00034 #if defined (MDMA) 00035 00036 /** @defgroup MDMA_LL MDMA 00037 * @{ 00038 */ 00039 00040 /* Private types -------------------------------------------------------------*/ 00041 /* Private variables ---------------------------------------------------------*/ 00042 /** @defgroup MDMA_LL_Private_Variables MDMA Private Variables 00043 * @{ 00044 */ 00045 /* Array used to get the MDMA channel register offset versus channel index LL_MDMA_CHANNEL_x */ 00046 static const uint32_t LL_MDMA_CH_OFFSET_TAB[] = 00047 { 00048 (uint32_t)(MDMA_Channel0_BASE - MDMA_BASE), 00049 (uint32_t)(MDMA_Channel1_BASE - MDMA_BASE), 00050 (uint32_t)(MDMA_Channel2_BASE - MDMA_BASE), 00051 (uint32_t)(MDMA_Channel3_BASE - MDMA_BASE), 00052 (uint32_t)(MDMA_Channel4_BASE - MDMA_BASE), 00053 (uint32_t)(MDMA_Channel5_BASE - MDMA_BASE), 00054 (uint32_t)(MDMA_Channel6_BASE - MDMA_BASE), 00055 (uint32_t)(MDMA_Channel7_BASE - MDMA_BASE), 00056 (uint32_t)(MDMA_Channel8_BASE - MDMA_BASE), 00057 (uint32_t)(MDMA_Channel9_BASE - MDMA_BASE), 00058 (uint32_t)(MDMA_Channel10_BASE - MDMA_BASE), 00059 (uint32_t)(MDMA_Channel11_BASE - MDMA_BASE), 00060 (uint32_t)(MDMA_Channel12_BASE - MDMA_BASE), 00061 (uint32_t)(MDMA_Channel13_BASE - MDMA_BASE), 00062 (uint32_t)(MDMA_Channel14_BASE - MDMA_BASE), 00063 (uint32_t)(MDMA_Channel15_BASE - MDMA_BASE) 00064 }; 00065 00066 /** 00067 * @} 00068 */ 00069 00070 /* Private constants ---------------------------------------------------------*/ 00071 /** @defgroup MDMA_LL_Private_Constants MDMA Private Constants 00072 * @{ 00073 */ 00074 /** 00075 * @} 00076 */ 00077 00078 00079 /* Private macros ------------------------------------------------------------*/ 00080 /* Exported types ------------------------------------------------------------*/ 00081 #if defined(USE_FULL_LL_DRIVER) 00082 /** @defgroup MDMA_LL_ES_INIT MDMA Exported Init structure 00083 * @{ 00084 */ 00085 typedef struct 00086 { 00087 uint32_t SrcAddress; /*!< Specifies the transfer source address 00088 This parameter must be a value between Min_Data = 0 and Max_Data = 0xFFFFFFFF. 00089 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetSourceAddress() */ 00090 00091 uint32_t DstAddress; /*!< Specifies the transfer destination address 00092 This parameter must be a value between Min_Data = 0 and Max_Data = 0xFFFFFFFF. 00093 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetDestinationAddress() */ 00094 00095 uint32_t RequestMode; /*!< Specifies the request mode Hardware or Software. 00096 This parameter can be a value of @ref MDMA_LL_EC_REQUEST_MODE 00097 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetRequestMode() */ 00098 00099 uint32_t TriggerMode; /*!< Specifies the transfer trigger mode. 00100 This parameter can be a value of @ref MDMA_LL_EC_TRIGGER_MODE 00101 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetTriggerMode() */ 00102 00103 uint32_t HWTrigger; /*!< Specifies the HW transfer trigger used when RequestMode is HW. 00104 This parameter can be a value of @ref MDMA_LL_EC_HW_TRIGGER_SELCTION 00105 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetHWTrigger() */ 00106 00107 uint32_t BlockDataLength; /*!< Specifies the length of a block transfer in bytes 00108 This parameter must be a value between Min_Data = 0 and Max_Data = 0x00010000. 00109 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetBlkDataLength() */ 00110 00111 uint32_t BlockRepeatCount; /*!< Specifies the Block Repeat Count 00112 This parameter must be a value between Min_Data = 0 and Max_Data = 0x00000FFF. 00113 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetBlkRepeatCount() */ 00114 00115 uint32_t BlockRepeatDestAddrUpdateMode; /*!< Specifies the block repeat destination address update mode. 00116 This parameter can be a value of @ref MDMA_LL_EC_BLK_RPT_DEST_ADDR_UPDATE_MODE 00117 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetBlkRepeatDestAddrUpdate() */ 00118 00119 uint32_t BlockRepeatSrcAddrUpdateMode; /*!< Specifies the block repeat source address update mode. 00120 This parameter can be a value of @ref MDMA_LL_EC_SRC_BLK_RPT_ADDR_UPDATE_MODE 00121 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetBlkRepeatSrcAddrUpdate() */ 00122 00123 uint32_t BlockRepeatDestAddrUpdateVal; /*!< Specifies the block repeat destination address update value. 00124 This parameter can be a value Between 0 to 0x0000FFFF 00125 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetBlkRptDestAddrUpdateValue() */ 00126 00127 uint32_t BlockRepeatSrcAddrUpdateVal; /*!< Specifies the block repeat source address update value. 00128 This parameter can be a value Between 0 to 0x0000FFFF 00129 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetBlkRptSrcAddrUpdateValue() */ 00130 00131 uint32_t LinkAddress; /*!< Specifies the linked list next transfer node address. 00132 This parameter can be a value Between 0 to 0xFFFFFFFF 00133 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetLinkAddress() */ 00134 00135 uint32_t WordEndianess; /*!< Specifies the Word transfer endianness 00136 This parameter can be a value of @ref MDMA_LL_EC_WORD_ENDIANNESS. 00137 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetWordEndianness() */ 00138 00139 uint32_t HalfWordEndianess; /*!< Specifies the Half Word transfer endianness 00140 This parameter can be a value of @ref MDMA_LL_EC_HALFWORD_ENDIANNESS. 00141 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetHalfWordEndianness() */ 00142 00143 uint32_t ByteEndianess; /*!< Specifies the Byte transfer endianness 00144 This parameter can be a value of @ref MDMA_LL_EC_BYTE_ENDIANNESS. 00145 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetByteEndianness() */ 00146 00147 uint32_t Priority; /*!< Specifies the channel priority level. 00148 This parameter can be a value of @ref MDMA_LL_EC_PRIORITY 00149 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetChannelPriorityLevel() */ 00150 00151 uint32_t BufferableWriteMode; /*!< Specifies the transfer Bufferable Write Mode. 00152 This parameter can be a value of @ref MDMA_LL_EC_BUFF_WRITE_MODE 00153 This feature can be modified afterwards using unitary function @ref LL_MDMA_EnableBufferableWrMode() 00154 and LL_MDMA_DisableBufferableWrMode */ 00155 00156 00157 uint32_t PaddingAlignment; /*!< Specifies the transfer Padding and Alignment. 00158 This parameter can be a value of @ref MDMA_LL_EC_PADDING_ALIGNMENT_MODE 00159 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetPaddingAlignment() */ 00160 00161 uint32_t PackMode; /*!< Specifies the transfer Packing enabled or disabled. 00162 This parameter can be a value of @ref MDMA_LL_EC_PACKING_MODE 00163 This feature can be modified afterwards using unitary function @ref LL_MDMA_EnablePacking() 00164 and LL_MDMA_DisablePacking() */ 00165 00166 uint32_t BufferTransferLength; /*!< Specifies the length of a buffer transfer in bytes 00167 This parameter must be a value between Min_Data = 0 and Max_Data = 0x0000007F. 00168 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetBufferTransferLength() */ 00169 00170 uint32_t DestBurst; /*!< Specifies the destination burst size. 00171 This parameter can be a value of @ref MDMA_LL_EC_DEST_BURST 00172 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetDestinationBurstSize() */ 00173 00174 uint32_t SrctBurst; /*!< Specifies the source burst size. 00175 This parameter can be a value of @ref MDMA_LL_EC_SRC_BURST 00176 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetSourceBurstSize() */ 00177 00178 uint32_t DestIncSize; /*!< Specifies the destination increment size. 00179 This parameter can be a value of @ref MDMA_LL_EC_DEST_INC_OFFSET_SIZE 00180 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetDestinationIncSize() */ 00181 00182 uint32_t SrcIncSize; /*!< Specifies the source increment size. 00183 This parameter can be a value of @ref MDMA_LL_EC_SRC_INC_OFFSET_SIZE 00184 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetSourceIncSize() */ 00185 00186 uint32_t DestDataSize; /*!< Specifies the destination data size. 00187 This parameter can be a value of @ref MDMA_LL_EC_DEST_DATA_SIZE 00188 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetDestinationDataSize() */ 00189 00190 uint32_t SrcDataSize; /*!< Specifies the source data size. 00191 This parameter can be a value of @ref MDMA_LL_EC_SRC_DATA_SIZE 00192 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetSourceDataSize() */ 00193 00194 uint32_t DestIncMode; /*!< Specifies the destination increment mode. 00195 This parameter can be a value of @ref MDMA_LL_EC_DEST_INC_MODE 00196 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetDestinationIncMode() */ 00197 00198 uint32_t SrcIncMode; /*!< Specifies the source increment mode. 00199 This parameter can be a value of @ref MDMA_LL_EC_SRC_INC_MODE 00200 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetSourceIncMode() */ 00201 00202 00203 uint32_t DestBus; /*!< Specifies the destination transfer bus, System AXI or AHB/TCM bus. 00204 This parameter can be a value of @ref MDMA_LL_EC_DEST_BUS 00205 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetDestBusSelection() */ 00206 00207 uint32_t SrcBus; /*!< Specifies the source transfer bus, System AXI or AHB/TCM bus. 00208 This parameter can be a value of @ref MDMA_LL_EC_SRC_BUS 00209 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetSrcBusSelection() */ 00210 00211 uint32_t MaskAddress; /*!< Specifies the address to be updated (written) with MaskData after a request is served. 00212 MaskAddress and MaskData could be used to automatically clear a peripheral flag when the request is served 00213 This parameter can be a value Between 0 to 0xFFFFFFFF 00214 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetMaskAddress() */ 00215 00216 uint32_t MaskData; /*!< Specifies the value to be written to MaskAddress after a request is served. 00217 MaskAddress and MaskData could be used to automatically clear a peripheral flag when the request is served 00218 This parameter can be a value Between 0 to 0xFFFFFFFF 00219 This feature can be modified afterwards using unitary function @ref LL_MDMA_SetMaskData() */ 00220 00221 } LL_MDMA_InitTypeDef; 00222 00223 /** 00224 * @brief LL MDMA linked list node structure definition 00225 * @note The Linked list node allows to define a new MDMA configuration 00226 * (CTCR ,CBNDTR ,CSAR ,CDAR ,CBRUR, CLAR, CTBR, CMAR and CMDR registers). 00227 * When CLAR register is configured to a non NULL value , each time a transfer ends, 00228 * a new configuration (linked list node) is automatically loaded from the address given in CLAR register. 00229 */ 00230 typedef struct 00231 { 00232 __IO uint32_t CTCR; /*!< New CTCR register configuration for the given MDMA linked list node */ 00233 __IO uint32_t CBNDTR; /*!< New CBNDTR register configuration for the given MDMA linked list node */ 00234 __IO uint32_t CSAR; /*!< New CSAR register configuration for the given MDMA linked list node */ 00235 __IO uint32_t CDAR; /*!< New CDAR register configuration for the given MDMA linked list node */ 00236 __IO uint32_t CBRUR; /*!< New CBRUR register configuration for the given MDMA linked list node */ 00237 __IO uint32_t CLAR; /*!< New CLAR register configuration for the given MDMA linked list node */ 00238 __IO uint32_t CTBR; /*!< New CTBR register configuration for the given MDMA linked list node */ 00239 __IO uint32_t Reserved; /*!< Reserved register*/ 00240 __IO uint32_t CMAR; /*!< New CMAR register configuration for the given MDMA linked list node */ 00241 __IO uint32_t CMDR; /*!< New CMDR register configuration for the given MDMA linked list node */ 00242 00243 }LL_MDMA_LinkNodeTypeDef; 00244 00245 /** 00246 * @} 00247 */ 00248 #endif /*USE_FULL_LL_DRIVER*/ 00249 /* Exported constants --------------------------------------------------------*/ 00250 /** @defgroup MDMA_LL_Exported_Constants MDMA Exported Constants 00251 * @{ 00252 */ 00253 00254 /** @defgroup MDMA_LL_EC_CHANNEL CHANNEL 00255 * @{ 00256 */ 00257 #define LL_MDMA_CHANNEL_0 0x00000000U 00258 #define LL_MDMA_CHANNEL_1 0x00000001U 00259 #define LL_MDMA_CHANNEL_2 0x00000002U 00260 #define LL_MDMA_CHANNEL_3 0x00000003U 00261 #define LL_MDMA_CHANNEL_4 0x00000004U 00262 #define LL_MDMA_CHANNEL_5 0x00000005U 00263 #define LL_MDMA_CHANNEL_6 0x00000006U 00264 #define LL_MDMA_CHANNEL_7 0x00000007U 00265 #define LL_MDMA_CHANNEL_8 0x00000008U 00266 #define LL_MDMA_CHANNEL_9 0x00000009U 00267 #define LL_MDMA_CHANNEL_10 0x0000000AU 00268 #define LL_MDMA_CHANNEL_11 0x0000000BU 00269 #define LL_MDMA_CHANNEL_12 0x0000000CU 00270 #define LL_MDMA_CHANNEL_13 0x0000000DU 00271 #define LL_MDMA_CHANNEL_14 0x0000000EU 00272 #define LL_MDMA_CHANNEL_15 0x0000000FU 00273 #define LL_MDMA_CHANNEL_ALL 0xFFFF0000U 00274 /** 00275 * @} 00276 */ 00277 00278 /** @defgroup MDMA_LL_EC_WORD_ENDIANNESS Word Endianness 00279 * @{ 00280 */ 00281 #define LL_MDMA_WORD_ENDIANNESS_PRESERVE 0x00000000U /*!< Little endianness preserved for words */ 00282 #define LL_MDMA_WORD_ENDIANNESS_EXCHANGE MDMA_CCR_WEX /*!< word order exchanged when destination data size is double word */ 00283 00284 /** 00285 * @} 00286 */ 00287 00288 /** @defgroup MDMA_LL_EC_HALFWORD_ENDIANNESS Half Word Endianness 00289 * @{ 00290 */ 00291 #define LL_MDMA_HALFWORD_ENDIANNESS_PRESERVE 0x00000000U /*!< Little endianness preserved for half words */ 00292 #define LL_MDMA_HALFWORD_ENDIANNESS_EXCHANGE MDMA_CCR_HEX /*!< half word order exchanged when destination data size is word or double word */ 00293 00294 /** 00295 * @} 00296 */ 00297 00298 /** @defgroup MDMA_LL_EC_BYTE_ENDIANNESS Byte Endianness 00299 * @{ 00300 */ 00301 #define LL_MDMA_BYTE_ENDIANNESS_PRESERVE 0x00000000U /*!< Little endianness preserved for bytes */ 00302 #define LL_MDMA_BYTE_ENDIANNESS_EXCHANGE MDMA_CCR_BEX /*!< byte order exchanged when destination data size is half word , word or double word */ 00303 00304 /** 00305 * @} 00306 */ 00307 00308 /** @defgroup MDMA_LL_EC_PRIORITY Transfer Priority level 00309 * @{ 00310 */ 00311 #define LL_MDMA_PRIORITY_LOW 0x00000000U /*!< Priority level : Low */ 00312 #define LL_MDMA_PRIORITY_MEDIUM MDMA_CCR_PL_0 /*!< Priority level : Medium */ 00313 #define LL_MDMA_PRIORITY_HIGH MDMA_CCR_PL_1 /*!< Priority level : High */ 00314 #define LL_MDMA_PRIORITY_VERYHIGH MDMA_CCR_PL /*!< Priority level : Very_High */ 00315 /** 00316 * @} 00317 */ 00318 00319 /** @defgroup MDMA_LL_EC_BUFF_WRITE_MODE Bufferable Write Mode 00320 * @{ 00321 */ 00322 #define LL_MDMA_BUFF_WRITE_DISABLE 0x00000000U /*!< destination write operation is non-bufferable */ 00323 #define LL_MDMA_BUFF_WRITE_ENABLE MDMA_CTCR_BWM /*!< destination write operation is bufferable */ 00324 /** 00325 * @} 00326 */ 00327 00328 /** @defgroup MDMA_LL_EC_REQUEST_MODE Request Mode 00329 * @{ 00330 */ 00331 #define LL_MDMA_REQUEST_MODE_HW 0x00000000U /*!< Request mode is Hardware */ 00332 #define LL_MDMA_REQUEST_MODE_SW MDMA_CTCR_SWRM /*!< Request mode is Software */ 00333 /** 00334 * @} 00335 */ 00336 00337 /** @defgroup MDMA_LL_EC_TRIGGER_MODE Trigger Mode 00338 * @{ 00339 */ 00340 #define LL_MDMA_BUFFER_TRANSFER 0x00000000U /*!< Each MDMA request (SW or HW) triggers a buffer transfer */ 00341 #define LL_MDMA_BLOCK_TRANSFER MDMA_CTCR_TRGM_0 /*!< Each MDMA request (SW or HW) triggers a block transfer */ 00342 #define LL_MDMA_REPEAT_BLOCK_TRANSFER MDMA_CTCR_TRGM_1 /*!< Each MDMA request (SW or HW) triggers a repeated block transfer */ 00343 #define LL_MDMA_FULL_TRANSFER MDMA_CTCR_TRGM /*!< Each MDMA request (SW or HW) triggers a Full transfer or a linked list transfer if any */ 00344 /** 00345 * @} 00346 */ 00347 00348 /** @defgroup MDMA_LL_EC_PADDING_ALIGNMENT_MODE Padding Alignment Mode 00349 * @{ 00350 */ 00351 #define LL_MDMA_DATAALIGN_RIGHT 0x00000000U /*!< Right Aligned, padded w/ 0s (default) */ 00352 #define LL_MDMA_DATAALIGN_RIGHT_SIGNED MDMA_CTCR_PAM_0 /*!< Right Aligned, Sign extended , 00353 Note : this mode is allowed only if the Source data size smaller than Destination data size */ 00354 #define LL_MDMA_DATAALIGN_LEFT MDMA_CTCR_PAM_1 /*!< Left Aligned (padded with 0s) */ 00355 /** 00356 * @} 00357 */ 00358 00359 /** @defgroup MDMA_LL_EC_PACKING_MODE Transfer Packing 00360 * @{ 00361 */ 00362 #define LL_MDMA_PACK_DISABLE 0x00000000U /*!< Packing disabled */ 00363 #define LL_MDMA_PACK_ENABLE MDMA_CTCR_PKE /*!< Packing enabled */ 00364 /** 00365 * @} 00366 */ 00367 00368 /** @defgroup MDMA_LL_EC_DEST_BURST Transfer Destination Burst 00369 * @{ 00370 */ 00371 #define LL_MDMA_DEST_BURST_SINGLE 0x00000000U /*!< Single transfer */ 00372 #define LL_MDMA_DEST_BURST_2BEATS MDMA_CTCR_DBURST_0 /*!< Burst 2 beats */ 00373 #define LL_MDMA_DEST_BURST_4BEATS MDMA_CTCR_DBURST_1 /*!< Burst 4 beats */ 00374 #define LL_MDMA_DEST_BURST_8BEATS (MDMA_CTCR_DBURST_0 | MDMA_CTCR_DBURST_1) /*!< Burst 8 beats */ 00375 #define LL_MDMA_DEST_BURST_16BEATS MDMA_CTCR_DBURST_2 /*!< Burst 16 beats */ 00376 #define LL_MDMA_DEST_BURST_32BEATS (MDMA_CTCR_DBURST_0 | MDMA_CTCR_DBURST_2) /*!< Burst 32 beats */ 00377 #define LL_MDMA_DEST_BURST_64BEATS (MDMA_CTCR_DBURST_1 | MDMA_CTCR_DBURST_2) /*!< Burst 64 beats */ 00378 #define LL_MDMA_DEST_BURST_128BEATS (MDMA_CTCR_DBURST) /*!< Burst 128 beats */ 00379 /** 00380 * @} 00381 */ 00382 00383 /** @defgroup MDMA_LL_EC_SRC_BURST Transfer Source Burst 00384 * @{ 00385 */ 00386 #define LL_MDMA_SRC_BURST_SINGLE 0x00000000U /*!< Single transfer */ 00387 #define LL_MDMA_SRC_BURST_2BEATS MDMA_CTCR_SBURST_0 /*!< Burst 2 beats */ 00388 #define LL_MDMA_SRC_BURST_4BEATS MDMA_CTCR_SBURST_1 /*!< Burst 4 beats */ 00389 #define LL_MDMA_SRC_BURST_8BEATS (MDMA_CTCR_SBURST_0 | MDMA_CTCR_SBURST_1) /*!< Burst 8 beats */ 00390 #define LL_MDMA_SRC_BURST_16BEATS MDMA_CTCR_SBURST_2 /*!< Burst 16 beats */ 00391 #define LL_MDMA_SRC_BURST_32BEATS (MDMA_CTCR_SBURST_0 | MDMA_CTCR_SBURST_2) /*!< Burst 32 beats */ 00392 #define LL_MDMA_SRC_BURST_64BEATS (MDMA_CTCR_SBURST_1 | MDMA_CTCR_SBURST_2) /*!< Burst 64 beats */ 00393 #define LL_MDMA_SRC_BURST_128BEATS MDMA_CTCR_SBURST /*!< Burst 128 beats */ 00394 /** 00395 * @} 00396 */ 00397 00398 /** @defgroup MDMA_LL_EC_DEST_INC_OFFSET_SIZE Destination Increment Offset Size 00399 * @{ 00400 */ 00401 #define LL_MDMA_DEST_INC_OFFSET_BYTE 0x00000000U /*!< offset is Byte (8-bit) */ 00402 #define LL_MDMA_DEST_INC_OFFSET_HALFWORD MDMA_CTCR_DINCOS_0 /*!< offset is Half Word (16-bit) */ 00403 #define LL_MDMA_DEST_INC_OFFSET_WORD MDMA_CTCR_DINCOS_1 /*!< offset is Word (32-bit) */ 00404 #define LL_MDMA_DEST_INC_OFFSET_DOUBLEWORD MDMA_CTCR_DINCOS /*!< offset is Double Word (64-bit) */ 00405 /** 00406 * @} 00407 */ 00408 00409 /** @defgroup MDMA_LL_EC_SRC_INC_OFFSET_SIZE Source Increment Offset Size 00410 * @{ 00411 */ 00412 #define LL_MDMA_SRC_INC_OFFSET_BYTE 0x00000000U /*!< offset is Byte (8-bit) */ 00413 #define LL_MDMA_SRC_INC_OFFSET_HALFWORD MDMA_CTCR_SINCOS_0 /*!< offset is Half Word (16-bit) */ 00414 #define LL_MDMA_SRC_INC_OFFSET_WORD MDMA_CTCR_SINCOS_1 /*!< offset is Word (32-bit) */ 00415 #define LL_MDMA_SRC_INC_OFFSET_DOUBLEWORD MDMA_CTCR_SINCOS /*!< offset is Double Word (64-bit) */ 00416 /** 00417 * @} 00418 */ 00419 00420 /** @defgroup MDMA_LL_EC_DEST_DATA_SIZE Destination Data Size 00421 * @{ 00422 */ 00423 #define LL_MDMA_DEST_DATA_SIZE_BYTE 0x00000000U /*!< Destination data size is Byte */ 00424 #define LL_MDMA_DEST_DATA_SIZE_HALFWORD MDMA_CTCR_DSIZE_0 /*!< Destination data size is half word */ 00425 #define LL_MDMA_DEST_DATA_SIZE_WORD MDMA_CTCR_DSIZE_1 /*!< Destination data size is word */ 00426 #define LL_MDMA_DEST_DATA_SIZE_DOUBLEWORD MDMA_CTCR_DSIZE /*!< Destination data size is double word */ 00427 /** 00428 * @} 00429 */ 00430 00431 /** @defgroup MDMA_LL_EC_SRC_DATA_SIZE Source Data Size 00432 * @{ 00433 */ 00434 #define LL_MDMA_SRC_DATA_SIZE_BYTE 0x00000000U /*!< Source data size is Byte */ 00435 #define LL_MDMA_SRC_DATA_SIZE_HALFWORD MDMA_CTCR_SSIZE_0 /*!< Source data size is half word */ 00436 #define LL_MDMA_SRC_DATA_SIZE_WORD MDMA_CTCR_SSIZE_1 /*!< Source data size is word */ 00437 #define LL_MDMA_SRC_DATA_SIZE_DOUBLEWORD MDMA_CTCR_SSIZE /*!< Source data size is double word */ 00438 /** 00439 * @} 00440 */ 00441 00442 /** @defgroup MDMA_LL_EC_DEST_INC_MODE Destination Increment Mode 00443 * @{ 00444 */ 00445 #define LL_MDMA_DEST_FIXED 0x00000000U /*!< Destination address pointer is fixed */ 00446 #define LL_MDMA_DEST_INCREMENT MDMA_CTCR_DINC_1 /*!< Destination address pointer is incremented after each data transfer */ 00447 #define LL_MDMA_DEST_DECREMENT MDMA_CTCR_DINC /*!< Destination address pointer is decremented after each data transfer */ 00448 /** 00449 * @} 00450 */ 00451 00452 /** @defgroup MDMA_LL_EC_SRC_INC_MODE Source Increment Mode 00453 * @{ 00454 */ 00455 #define LL_MDMA_SRC_FIXED 0x00000000U /*!< Destination address pointer is fixed */ 00456 #define LL_MDMA_SRC_INCREMENT MDMA_CTCR_SINC_1 /*!< Destination address pointer is incremented after each data transfer */ 00457 #define LL_MDMA_SRC_DECREMENT MDMA_CTCR_SINC /*!< Destination address pointer is decremented after each data transfer */ 00458 /** 00459 * @} 00460 */ 00461 00462 /** @defgroup MDMA_LL_EC_BLK_RPT_DEST_ADDR_UPDATE_MODE Block Repeat Destination address Update Mode 00463 * @{ 00464 */ 00465 #define LL_MDMA_BLK_RPT_DEST_ADDR_INCREMENT 0x00000000U /*!< Destination address pointer is incremented after each block transfer by Destination Update Value */ 00466 #define LL_MDMA_BLK_RPT_DEST_ADDR_DECREMENT MDMA_CBNDTR_BRDUM /*!< Destination address pointer is decremented after each block transfer by Destination Update Value */ 00467 /** 00468 * @} 00469 */ 00470 00471 /** @defgroup MDMA_LL_EC_SRC_BLK_RPT_ADDR_UPDATE_MODE Source Block Repeat address Update Mode 00472 * @{ 00473 */ 00474 #define LL_MDMA_BLK_RPT_SRC_ADDR_INCREMENT 0x00000000U /*!< Source address pointer is incremented after each block transfer by Source Update Value */ 00475 #define LL_MDMA_BLK_RPT_SRC_ADDR_DECREMENT MDMA_CBNDTR_BRSUM /*!< Source address pointer is decremented after each block transfer by Source Update Value */ 00476 /** 00477 * @} 00478 */ 00479 00480 /** @defgroup MDMA_LL_EC_DEST_BUS Destination BUS Selection 00481 * @{ 00482 */ 00483 #define LL_MDMA_DEST_BUS_SYSTEM_AXI 0x00000000U /*!< System/AXI bus is used as destination */ 00484 #define LL_MDMA_DEST_BUS_AHB_TCM MDMA_CTBR_DBUS /*!< AHB bus/TCM is used as destination */ 00485 /** 00486 * @} 00487 */ 00488 00489 /** @defgroup MDMA_LL_EC_SRC_BUS Source BUS Selection 00490 * @{ 00491 */ 00492 #define LL_MDMA_SRC_BUS_SYSTEM_AXI 0x00000000U /*!< System/AXI bus is used as source */ 00493 #define LL_MDMA_SRC_BUS_AHB_TCM MDMA_CTBR_SBUS /*!< AHB bus/TCM is used as source */ 00494 /** 00495 * @} 00496 */ 00497 00498 /** @defgroup MDMA_LL_EC_HW_TRIGGER_SELCTION HW Trigger Selection 00499 * @{ 00500 */ 00501 #define LL_MDMA_REQ_DMA1_STREAM0_TC 0x00000000U /*!< MDMA HW Trigger (request) is DMA1 Stream 0 Transfer Complete Flag */ 00502 #define LL_MDMA_REQ_DMA1_STREAM1_TC 0x00000001U /*!< MDMA HW Trigger (request) is DMA1 Stream 1 Transfer Complete Flag */ 00503 #define LL_MDMA_REQ_DMA1_STREAM2_TC 0x00000002U /*!< MDMA HW Trigger (request) is DMA1 Stream 2 Transfer Complete Flag */ 00504 #define LL_MDMA_REQ_DMA1_STREAM3_TC 0x00000003U /*!< MDMA HW Trigger (request) is DMA1 Stream 3 Transfer Complete Flag */ 00505 #define LL_MDMA_REQ_DMA1_STREAM4_TC 0x00000004U /*!< MDMA HW Trigger (request) is DMA1 Stream 4 Transfer Complete Flag */ 00506 #define LL_MDMA_REQ_DMA1_STREAM5_TC 0x00000005U /*!< MDMA HW Trigger (request) is DMA1 Stream 5 Transfer Complete Flag */ 00507 #define LL_MDMA_REQ_DMA1_STREAM6_TC 0x00000006U /*!< MDMA HW Trigger (request) is DMA1 Stream 6 Transfer Complete Flag */ 00508 #define LL_MDMA_REQ_DMA1_STREAM7_TC 0x00000007U /*!< MDMA HW Trigger (request) is DMA1 Stream 7 Transfer Complete Flag */ 00509 #define LL_MDMA_REQ_DMA2_STREAM0_TC 0x00000008U /*!< MDMA HW Trigger (request) is DMA2 Stream 0 Transfer Complete Flag */ 00510 #define LL_MDMA_REQ_DMA2_STREAM1_TC 0x00000009U /*!< MDMA HW Trigger (request) is DMA2 Stream 1 Transfer Complete Flag */ 00511 #define LL_MDMA_REQ_DMA2_STREAM2_TC 0x0000000AU /*!< MDMA HW Trigger (request) is DMA2 Stream 2 Transfer Complete Flag */ 00512 #define LL_MDMA_REQ_DMA2_STREAM3_TC 0x0000000BU /*!< MDMA HW Trigger (request) is DMA2 Stream 3 Transfer Complete Flag */ 00513 #define LL_MDMA_REQ_DMA2_STREAM4_TC 0x0000000CU /*!< MDMA HW Trigger (request) is DMA2 Stream 4 Transfer Complete Flag */ 00514 #define LL_MDMA_REQ_DMA2_STREAM5_TC 0x0000000DU /*!< MDMA HW Trigger (request) is DMA2 Stream 5 Transfer Complete Flag */ 00515 #define LL_MDMA_REQ_DMA2_STREAM6_TC 0x0000000EU /*!< MDMA HW Trigger (request) is DMA2 Stream 6 Transfer Complete Flag */ 00516 #define LL_MDMA_REQ_DMA2_STREAM7_TC 0x0000000FU /*!< MDMA HW Trigger (request) is DMA2 Stream 7 Transfer Complete Flag */ 00517 #if defined (LTDC) 00518 #define LL_MDMA_REQ_LTDC_LINE_IT 0x00000010U /*!< MDMA HW Trigger (request) is LTDC Line interrupt Flag */ 00519 #endif /* LTDC */ 00520 #if defined (JPEG) 00521 #define LL_MDMA_REQ_JPEG_INFIFO_TH 0x00000011U /*!< MDMA HW Trigger (request) is JPEG Input FIFO threshold Flag */ 00522 #define LL_MDMA_REQ_JPEG_INFIFO_NF 0x00000012U /*!< MDMA HW Trigger (request) is JPEG Input FIFO not full Flag */ 00523 #define LL_MDMA_REQ_JPEG_OUTFIFO_TH 0x00000013U /*!< MDMA HW Trigger (request) is JPEG Output FIFO threshold Flag */ 00524 #define LL_MDMA_REQ_JPEG_OUTFIFO_NE 0x00000014U /*!< MDMA HW Trigger (request) is JPEG Output FIFO not empty Flag */ 00525 #define LL_MDMA_REQ_JPEG_END_CONVERSION 0x00000015U /*!< MDMA HW Trigger (request) is JPEG End of conversion Flag */ 00526 #endif /* JPEG */ 00527 #if defined (QUADSPI) 00528 #define LL_MDMA_REQ_QUADSPI_FIFO_TH 0x00000016U /*!< MDMA HW Trigger (request) is QSPI FIFO threshold Flag */ 00529 #define LL_MDMA_REQ_QUADSPI_TC 0x00000017U /*!< MDMA HW Trigger (request) is QSPI Transfer complete Flag */ 00530 #endif /* QUADSPI */ 00531 #if defined (OCTOSPI1) 00532 #define LL_MDMA_REQ_OCTOSPI1_FIFO_TH 0x00000016U /*!< MDMA HW Trigger (request) is OCTOSPI1 FIFO threshold Flag */ 00533 #define LL_MDMA_REQ_OCTOSPI1_TC 0x00000017U /*!< MDMA HW Trigger (request) is OCTOSPI1 Transfer complete Flag */ 00534 #endif /* OCTOSPI1 */ 00535 #define LL_MDMA_REQ_DMA2D_CLUT_TC 0x00000018U /*!< MDMA HW Trigger (request) is DMA2D CLUT Transfer Complete Flag */ 00536 #define LL_MDMA_REQ_DMA2D_TC 0x00000019U /*!< MDMA HW Trigger (request) is DMA2D Transfer Complete Flag */ 00537 #define LL_MDMA_REQ_DMA2D_TW 0x0000001AU /*!< MDMA HW Trigger (request) is DMA2D Transfer Watermark Flag */ 00538 #if defined (DSI) 00539 #define LL_MDMA_REQ_DSI_TEARING_EFFECT 0x0000001BU /*!< MDMA HW Trigger (request) is DSI Tearing Effect Flag */ 00540 #define LL_MDMA_REQ_DSI_END_REFRESH 0x0000001CU /*!< MDMA HW Trigger (request) is DSI End of refresh Flag */ 00541 #endif /* DSI */ 00542 #define LL_MDMA_REQ_SDMMC1_END_DATA 0x0000001DU /*!< MDMA HW Trigger (request) is SDMMC1 End of Data Flag */ 00543 #define LL_MDMA_REQ_SDMMC1_DMA_ENDBUFFER 0x0000001EU /*!< MDMA HW Trigger (request) is SDMMC1 Internal DMA buffer End Flag : This trigger is available starting from STM32H7 Rev.B devices */ 00544 #define LL_MDMA_REQ_SDMMC1_COMMAND_END 0x0000001FU /*!< MDMA HW Trigger (request) is SDMMC1 Command End Flag : This trigger is available starting from STM32H7 Rev.B devices */ 00545 #if defined (OCTOSPI2) 00546 #define LL_MDMA_REQ_OCTOSPI2_FIFO_TH 0x00000020U /*!< MDMA HW Trigger (request) is OCTOSPI2 FIFO threshold Flag */ 00547 #define LL_MDMA_REQ_OCTOSPI2_TC 0x00000021U /*!< MDMA HW Trigger (request) is OCTOSPI2 Transfer complete Flag */ 00548 #endif /* OCTOSPI2 */ 00549 /** 00550 * @} 00551 */ 00552 00553 /** @defgroup MDMA_LL_EC_XFER_ERROR_DIRECTION Transfer Error Direction 00554 * @{ 00555 */ 00556 #define LL_MDMA_READ_ERROR 0x00000000U /*!< Last transfer error on the channel was a related to a read access */ 00557 #define LL_MDMA_WRITE_ERROR MDMA_CESR_TED /*!< Last transfer error on the channel was a related to a write access */ 00558 /** 00559 * @} 00560 */ 00561 00562 /** 00563 * @} 00564 */ 00565 00566 /* Exported macro ------------------------------------------------------------*/ 00567 /** @defgroup MDMA_LL_Exported_Macros MDMA Exported Macros 00568 * @{ 00569 */ 00570 00571 /** @defgroup MDMA_LL_EM_WRITE_READ Common Write and read registers macros 00572 * @{ 00573 */ 00574 /** 00575 * @brief Write a value in MDMA register 00576 * @param __INSTANCE__ MDMA Instance 00577 * @param __REG__ Register to be written 00578 * @param __VALUE__ Value to be written in the register 00579 * @retval None 00580 */ 00581 #define LL_MDMA_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG((__INSTANCE__)->__REG__, (__VALUE__)) 00582 00583 /** 00584 * @brief Read a value in MDMA register 00585 * @param __INSTANCE__ MDMA Instance 00586 * @param __REG__ Register to be read 00587 * @retval Register value 00588 */ 00589 #define LL_MDMA_ReadReg(__INSTANCE__, __REG__) READ_REG((__INSTANCE__)->__REG__) 00590 /** 00591 * @} 00592 */ 00593 00594 /** @defgroup MDMA_LL_EM_CONVERT_DMAxCHANNELy Convert MDMAxChannely 00595 * @{ 00596 */ 00597 /** 00598 * @brief Convert MDMAx_Channely into MDMAx 00599 * @param __CHANNEL_INSTANCE__ MDMAx_Channely 00600 * @retval MDMAx 00601 */ 00602 #define LL_MDMA_GET_INSTANCE(__CHANNEL_INSTANCE__) (MDMA) 00603 00604 /** 00605 * @brief Convert MDMAx_Channely into LL_MDMA_CHANNEL_y 00606 * @param __CHANNEL_INSTANCE__ MDMAx_Channely 00607 * @retval LL_MDMA_CHANNEL_y 00608 */ 00609 #define LL_MDMA_GET_CHANNEL(__CHANNEL_INSTANCE__) \ 00610 (((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)MDMA_Channel0 )) ? LL_MDMA_CHANNEL_0 : \ 00611 ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)MDMA_Channel1 )) ? LL_MDMA_CHANNEL_1 : \ 00612 ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)MDMA_Channel2 )) ? LL_MDMA_CHANNEL_2 : \ 00613 ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)MDMA_Channel3 )) ? LL_MDMA_CHANNEL_3 : \ 00614 ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)MDMA_Channel4 )) ? LL_MDMA_CHANNEL_4 : \ 00615 ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)MDMA_Channel5 )) ? LL_MDMA_CHANNEL_5 : \ 00616 ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)MDMA_Channel6 )) ? LL_MDMA_CHANNEL_6 : \ 00617 ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)MDMA_Channel7 )) ? LL_MDMA_CHANNEL_7 : \ 00618 ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)MDMA_Channel8 )) ? LL_MDMA_CHANNEL_8 : \ 00619 ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)MDMA_Channel9 )) ? LL_MDMA_CHANNEL_9 : \ 00620 ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)MDMA_Channel10)) ? LL_MDMA_CHANNEL_10 : \ 00621 ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)MDMA_Channel11)) ? LL_MDMA_CHANNEL_11 : \ 00622 ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)MDMA_Channel12)) ? LL_MDMA_CHANNEL_12 : \ 00623 ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)MDMA_Channel13)) ? LL_MDMA_CHANNEL_13 : \ 00624 ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)MDMA_Channel14)) ? LL_MDMA_CHANNEL_14 : \ 00625 LL_MDMA_CHANNEL_15) 00626 00627 /** 00628 * @brief Convert MDMA Instance MDMAx and LL_MDMA_CHANNEL_y into MDMAx_Channely 00629 * @param __MDMA_INSTANCE__ MDMAx 00630 * @param __CHANNEL__ LL_MDMA_CHANNEL_y 00631 * @retval MDMAx_Channely 00632 */ 00633 #define LL_MDMA_GET_CHANNEL_INSTANCE(__MDMA_INSTANCE__, __CHANNEL__) \ 00634 (((uint32_t)(__CHANNEL__) == ((uint32_t)LL_MDMA_CHANNEL_0 )) ? MDMA_Channel0 : \ 00635 ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_MDMA_CHANNEL_1 )) ? MDMA_Channel1 : \ 00636 ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_MDMA_CHANNEL_2 )) ? MDMA_Channel2 : \ 00637 ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_MDMA_CHANNEL_3 )) ? MDMA_Channel3 : \ 00638 ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_MDMA_CHANNEL_4 )) ? MDMA_Channel4 : \ 00639 ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_MDMA_CHANNEL_5 )) ? MDMA_Channel5 : \ 00640 ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_MDMA_CHANNEL_6 )) ? MDMA_Channel6 : \ 00641 ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_MDMA_CHANNEL_7 )) ? MDMA_Channel7 : \ 00642 ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_MDMA_CHANNEL_8 )) ? MDMA_Channel8 : \ 00643 ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_MDMA_CHANNEL_9 )) ? MDMA_Channel9 : \ 00644 ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_MDMA_CHANNEL_10)) ? MDMA_Channel10 : \ 00645 ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_MDMA_CHANNEL_11)) ? MDMA_Channel11 : \ 00646 ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_MDMA_CHANNEL_12)) ? MDMA_Channel12 : \ 00647 ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_MDMA_CHANNEL_13)) ? MDMA_Channel13 : \ 00648 ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_MDMA_CHANNEL_14)) ? MDMA_Channel14 : \ 00649 MDMA_Channel15) 00650 00651 /** 00652 * @} 00653 */ 00654 00655 /** 00656 * @} 00657 */ 00658 00659 00660 /* Exported functions --------------------------------------------------------*/ 00661 /** @defgroup MDMA_LL_Exported_Functions MDMA Exported Functions 00662 * @{ 00663 */ 00664 00665 /** @defgroup MDMA_LL_EF_Configuration Configuration 00666 * @{ 00667 */ 00668 /** 00669 * @brief Enable MDMA channel. 00670 * @rmtoll CCR EN LL_MDMA_EnableChannel 00671 * @param MDMAx MDMAx Instance 00672 * @param Channel This parameter can be one of the following values: 00673 * @arg @ref LL_MDMA_CHANNEL_0 00674 * @arg @ref LL_MDMA_CHANNEL_1 00675 * @arg @ref LL_MDMA_CHANNEL_2 00676 * @arg @ref LL_MDMA_CHANNEL_3 00677 * @arg @ref LL_MDMA_CHANNEL_4 00678 * @arg @ref LL_MDMA_CHANNEL_5 00679 * @arg @ref LL_MDMA_CHANNEL_6 00680 * @arg @ref LL_MDMA_CHANNEL_7 00681 * @arg @ref LL_MDMA_CHANNEL_8 00682 * @arg @ref LL_MDMA_CHANNEL_9 00683 * @arg @ref LL_MDMA_CHANNEL_10 00684 * @arg @ref LL_MDMA_CHANNEL_11 00685 * @arg @ref LL_MDMA_CHANNEL_12 00686 * @arg @ref LL_MDMA_CHANNEL_13 00687 * @arg @ref LL_MDMA_CHANNEL_14 00688 * @arg @ref LL_MDMA_CHANNEL_15 00689 * @retval None 00690 */ 00691 __STATIC_INLINE void LL_MDMA_EnableChannel(MDMA_TypeDef *MDMAx, uint32_t Channel) 00692 { 00693 uint32_t mdma_base_addr = (uint32_t)MDMAx; 00694 00695 SET_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR, MDMA_CCR_EN); 00696 } 00697 00698 /** 00699 * @brief Disable MDMA channel. 00700 * @rmtoll CCR EN LL_MDMA_DisableChannel 00701 * @param MDMAx MDMAx Instance 00702 * @param Channel This parameter can be one of the following values: 00703 * @arg @ref LL_MDMA_CHANNEL_0 00704 * @arg @ref LL_MDMA_CHANNEL_1 00705 * @arg @ref LL_MDMA_CHANNEL_2 00706 * @arg @ref LL_MDMA_CHANNEL_3 00707 * @arg @ref LL_MDMA_CHANNEL_4 00708 * @arg @ref LL_MDMA_CHANNEL_5 00709 * @arg @ref LL_MDMA_CHANNEL_6 00710 * @arg @ref LL_MDMA_CHANNEL_7 00711 * @arg @ref LL_MDMA_CHANNEL_8 00712 * @arg @ref LL_MDMA_CHANNEL_9 00713 * @arg @ref LL_MDMA_CHANNEL_10 00714 * @arg @ref LL_MDMA_CHANNEL_11 00715 * @arg @ref LL_MDMA_CHANNEL_12 00716 * @arg @ref LL_MDMA_CHANNEL_13 00717 * @arg @ref LL_MDMA_CHANNEL_14 00718 * @arg @ref LL_MDMA_CHANNEL_15 00719 * @retval None 00720 */ 00721 __STATIC_INLINE void LL_MDMA_DisableChannel(MDMA_TypeDef *MDMAx, uint32_t Channel) 00722 { 00723 uint32_t mdma_base_addr = (uint32_t)MDMAx; 00724 00725 CLEAR_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR, MDMA_CCR_EN); 00726 } 00727 00728 /** 00729 * @brief Check if MDMA channel is enabled or disabled. 00730 * @rmtoll CCR EN LL_MDMA_IsEnabledChannel 00731 * @param MDMAx MDMAx Instance 00732 * @param Channel This parameter can be one of the following values: 00733 * @arg @ref LL_MDMA_CHANNEL_0 00734 * @arg @ref LL_MDMA_CHANNEL_1 00735 * @arg @ref LL_MDMA_CHANNEL_2 00736 * @arg @ref LL_MDMA_CHANNEL_3 00737 * @arg @ref LL_MDMA_CHANNEL_4 00738 * @arg @ref LL_MDMA_CHANNEL_5 00739 * @arg @ref LL_MDMA_CHANNEL_6 00740 * @arg @ref LL_MDMA_CHANNEL_7 00741 * @arg @ref LL_MDMA_CHANNEL_8 00742 * @arg @ref LL_MDMA_CHANNEL_9 00743 * @arg @ref LL_MDMA_CHANNEL_10 00744 * @arg @ref LL_MDMA_CHANNEL_11 00745 * @arg @ref LL_MDMA_CHANNEL_12 00746 * @arg @ref LL_MDMA_CHANNEL_13 00747 * @arg @ref LL_MDMA_CHANNEL_14 00748 * @arg @ref LL_MDMA_CHANNEL_15 00749 * @retval State of bit (1 or 0). 00750 */ 00751 __STATIC_INLINE uint32_t LL_MDMA_IsEnabledChannel(MDMA_TypeDef *MDMAx, uint32_t Channel) 00752 { 00753 uint32_t mdma_base_addr = (uint32_t)MDMAx; 00754 00755 return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR, MDMA_CCR_EN) == (MDMA_CCR_EN)) ? 1UL : 0UL); 00756 } 00757 00758 /** 00759 * @brief Generate a SW transfer request on the MDMA channel. 00760 * @rmtoll CCR SWRQ LL_MDMA_GenerateSWRequest 00761 * @param MDMAx MDMAx Instance 00762 * @param Channel This parameter can be one of the following values: 00763 * @arg @ref LL_MDMA_CHANNEL_0 00764 * @arg @ref LL_MDMA_CHANNEL_1 00765 * @arg @ref LL_MDMA_CHANNEL_2 00766 * @arg @ref LL_MDMA_CHANNEL_3 00767 * @arg @ref LL_MDMA_CHANNEL_4 00768 * @arg @ref LL_MDMA_CHANNEL_5 00769 * @arg @ref LL_MDMA_CHANNEL_6 00770 * @arg @ref LL_MDMA_CHANNEL_7 00771 * @arg @ref LL_MDMA_CHANNEL_8 00772 * @arg @ref LL_MDMA_CHANNEL_9 00773 * @arg @ref LL_MDMA_CHANNEL_10 00774 * @arg @ref LL_MDMA_CHANNEL_11 00775 * @arg @ref LL_MDMA_CHANNEL_12 00776 * @arg @ref LL_MDMA_CHANNEL_13 00777 * @arg @ref LL_MDMA_CHANNEL_14 00778 * @arg @ref LL_MDMA_CHANNEL_15 00779 * @retval None 00780 */ 00781 __STATIC_INLINE void LL_MDMA_GenerateSWRequest(MDMA_TypeDef *MDMAx, uint32_t Channel) 00782 { 00783 uint32_t mdma_base_addr = (uint32_t)MDMAx; 00784 00785 SET_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR, MDMA_CCR_SWRQ); 00786 } 00787 00788 /** 00789 * @brief Configure Transfer endianness parameters : Word, Half word and Bytes Endianness. 00790 * @rmtoll CCR WEX LL_MDMA_ConfigXferEndianness\n 00791 * @rmtoll CCR HEX LL_MDMA_ConfigXferEndianness\n 00792 * @rmtoll CCR BEX LL_MDMA_ConfigXferEndianness 00793 * @param MDMAx MDMAx Instance 00794 * @param Channel This parameter can be one of the following values: 00795 * @arg @ref LL_MDMA_CHANNEL_0 00796 * @arg @ref LL_MDMA_CHANNEL_1 00797 * @arg @ref LL_MDMA_CHANNEL_2 00798 * @arg @ref LL_MDMA_CHANNEL_3 00799 * @arg @ref LL_MDMA_CHANNEL_4 00800 * @arg @ref LL_MDMA_CHANNEL_5 00801 * @arg @ref LL_MDMA_CHANNEL_6 00802 * @arg @ref LL_MDMA_CHANNEL_7 00803 * @arg @ref LL_MDMA_CHANNEL_8 00804 * @arg @ref LL_MDMA_CHANNEL_9 00805 * @arg @ref LL_MDMA_CHANNEL_10 00806 * @arg @ref LL_MDMA_CHANNEL_11 00807 * @arg @ref LL_MDMA_CHANNEL_12 00808 * @arg @ref LL_MDMA_CHANNEL_13 00809 * @arg @ref LL_MDMA_CHANNEL_14 00810 * @arg @ref LL_MDMA_CHANNEL_15 00811 * @param Configuration This parameter must be a combination of all the following values: 00812 * @arg @ref LL_MDMA_WORD_ENDIANNESS_PRESERVE or @ref LL_MDMA_WORD_ENDIANNESS_EXCHANGE 00813 * @arg @ref LL_MDMA_HALFWORD_ENDIANNESS_PRESERVE or @ref LL_MDMA_HALFWORD_ENDIANNESS_EXCHANGE 00814 * @arg @ref LL_MDMA_BYTE_ENDIANNESS_PRESERVE or @ref LL_MDMA_BYTE_ENDIANNESS_EXCHANGE 00815 * @retval None 00816 */ 00817 __STATIC_INLINE void LL_MDMA_ConfigXferEndianness(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t Configuration) 00818 { 00819 uint32_t mdma_base_addr = (uint32_t)MDMAx; 00820 00821 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR, 00822 MDMA_CCR_WEX | MDMA_CCR_HEX | MDMA_CCR_BEX, Configuration); 00823 } 00824 00825 /** 00826 * @brief Set Words Endianness. 00827 * @rmtoll CCR WEX LL_MDMA_SetWordEndianness 00828 * @param MDMAx MDMAx Instance 00829 * @param Channel This parameter can be one of the following values: 00830 * @arg @ref LL_MDMA_CHANNEL_0 00831 * @arg @ref LL_MDMA_CHANNEL_1 00832 * @arg @ref LL_MDMA_CHANNEL_2 00833 * @arg @ref LL_MDMA_CHANNEL_3 00834 * @arg @ref LL_MDMA_CHANNEL_4 00835 * @arg @ref LL_MDMA_CHANNEL_5 00836 * @arg @ref LL_MDMA_CHANNEL_6 00837 * @arg @ref LL_MDMA_CHANNEL_7 00838 * @arg @ref LL_MDMA_CHANNEL_8 00839 * @arg @ref LL_MDMA_CHANNEL_9 00840 * @arg @ref LL_MDMA_CHANNEL_10 00841 * @arg @ref LL_MDMA_CHANNEL_11 00842 * @arg @ref LL_MDMA_CHANNEL_12 00843 * @arg @ref LL_MDMA_CHANNEL_13 00844 * @arg @ref LL_MDMA_CHANNEL_14 00845 * @arg @ref LL_MDMA_CHANNEL_15 00846 * @param Endianness This parameter can be one of the following values: 00847 * @arg @ref LL_MDMA_WORD_ENDIANNESS_PRESERVE 00848 * @arg @ref LL_MDMA_WORD_ENDIANNESS_EXCHANGE 00849 * @retval None 00850 */ 00851 __STATIC_INLINE void LL_MDMA_SetWordEndianness(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t Endianness) 00852 { 00853 uint32_t mdma_base_addr = (uint32_t)MDMAx; 00854 00855 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR, MDMA_CCR_WEX, Endianness); 00856 } 00857 00858 /** 00859 * @brief Get Words Endianness. 00860 * @rmtoll CCR WEX LL_MDMA_GetWordEndianness 00861 * @param MDMAx MDMAx Instance 00862 * @param Channel This parameter can be one of the following values: 00863 * @arg @ref LL_MDMA_CHANNEL_0 00864 * @arg @ref LL_MDMA_CHANNEL_1 00865 * @arg @ref LL_MDMA_CHANNEL_2 00866 * @arg @ref LL_MDMA_CHANNEL_3 00867 * @arg @ref LL_MDMA_CHANNEL_4 00868 * @arg @ref LL_MDMA_CHANNEL_5 00869 * @arg @ref LL_MDMA_CHANNEL_6 00870 * @arg @ref LL_MDMA_CHANNEL_7 00871 * @arg @ref LL_MDMA_CHANNEL_8 00872 * @arg @ref LL_MDMA_CHANNEL_9 00873 * @arg @ref LL_MDMA_CHANNEL_10 00874 * @arg @ref LL_MDMA_CHANNEL_11 00875 * @arg @ref LL_MDMA_CHANNEL_12 00876 * @arg @ref LL_MDMA_CHANNEL_13 00877 * @arg @ref LL_MDMA_CHANNEL_14 00878 * @arg @ref LL_MDMA_CHANNEL_15 00879 * @retval Returned value can be one of the following values: 00880 * @arg @ref LL_MDMA_WORD_ENDIANNESS_PRESERVE 00881 * @arg @ref LL_MDMA_WORD_ENDIANNESS_EXCHANGE 00882 * @retval None 00883 */ 00884 __STATIC_INLINE uint32_t LL_MDMA_GetWordEndianness(MDMA_TypeDef *MDMAx, uint32_t Channel) 00885 { 00886 uint32_t mdma_base_addr = (uint32_t)MDMAx; 00887 00888 return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR, MDMA_CCR_WEX)); 00889 } 00890 00891 /** 00892 * @brief Set Half Words Endianness. 00893 * @rmtoll CCR HEX LL_MDMA_SetHalfWordEndianness 00894 * @param MDMAx MDMAx Instance 00895 * @param Channel This parameter can be one of the following values: 00896 * @arg @ref LL_MDMA_CHANNEL_0 00897 * @arg @ref LL_MDMA_CHANNEL_1 00898 * @arg @ref LL_MDMA_CHANNEL_2 00899 * @arg @ref LL_MDMA_CHANNEL_3 00900 * @arg @ref LL_MDMA_CHANNEL_4 00901 * @arg @ref LL_MDMA_CHANNEL_5 00902 * @arg @ref LL_MDMA_CHANNEL_6 00903 * @arg @ref LL_MDMA_CHANNEL_7 00904 * @arg @ref LL_MDMA_CHANNEL_8 00905 * @arg @ref LL_MDMA_CHANNEL_9 00906 * @arg @ref LL_MDMA_CHANNEL_10 00907 * @arg @ref LL_MDMA_CHANNEL_11 00908 * @arg @ref LL_MDMA_CHANNEL_12 00909 * @arg @ref LL_MDMA_CHANNEL_13 00910 * @arg @ref LL_MDMA_CHANNEL_14 00911 * @arg @ref LL_MDMA_CHANNEL_15 00912 * @param Endianness This parameter can be one of the following values: 00913 * @arg @ref LL_MDMA_HALFWORD_ENDIANNESS_PRESERVE 00914 * @arg @ref LL_MDMA_HALFWORD_ENDIANNESS_EXCHANGE 00915 * @retval None 00916 */ 00917 __STATIC_INLINE void LL_MDMA_SetHalfWordEndianness(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t Endianness) 00918 { 00919 uint32_t mdma_base_addr = (uint32_t)MDMAx; 00920 00921 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR, MDMA_CCR_HEX, Endianness); 00922 } 00923 00924 /** 00925 * @brief Get Half Words Endianness. 00926 * @rmtoll CCR HEX LL_MDMA_GetHalfWordEndianness 00927 * @param MDMAx MDMAx Instance 00928 * @param Channel This parameter can be one of the following values: 00929 * @arg @ref LL_MDMA_CHANNEL_0 00930 * @arg @ref LL_MDMA_CHANNEL_1 00931 * @arg @ref LL_MDMA_CHANNEL_2 00932 * @arg @ref LL_MDMA_CHANNEL_3 00933 * @arg @ref LL_MDMA_CHANNEL_4 00934 * @arg @ref LL_MDMA_CHANNEL_5 00935 * @arg @ref LL_MDMA_CHANNEL_6 00936 * @arg @ref LL_MDMA_CHANNEL_7 00937 * @arg @ref LL_MDMA_CHANNEL_8 00938 * @arg @ref LL_MDMA_CHANNEL_9 00939 * @arg @ref LL_MDMA_CHANNEL_10 00940 * @arg @ref LL_MDMA_CHANNEL_11 00941 * @arg @ref LL_MDMA_CHANNEL_12 00942 * @arg @ref LL_MDMA_CHANNEL_13 00943 * @arg @ref LL_MDMA_CHANNEL_14 00944 * @arg @ref LL_MDMA_CHANNEL_15 00945 * @retval Returned value can be one of the following values: 00946 * @arg @ref LL_MDMA_HALFWORD_ENDIANNESS_PRESERVE 00947 * @arg @ref LL_MDMA_HALFWORD_ENDIANNESS_EXCHANGE 00948 * @retval None 00949 */ 00950 __STATIC_INLINE uint32_t LL_MDMA_GetHalfWordEndianness(MDMA_TypeDef *MDMAx, uint32_t Channel) 00951 { 00952 uint32_t mdma_base_addr = (uint32_t)MDMAx; 00953 00954 return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR, MDMA_CCR_HEX)); 00955 } 00956 00957 /** 00958 * @brief Set Bytes Endianness. 00959 * @rmtoll CCR BEX LL_MDMA_SetByteEndianness 00960 * @param MDMAx MDMAx Instance 00961 * @param Channel This parameter can be one of the following values: 00962 * @arg @ref LL_MDMA_CHANNEL_0 00963 * @arg @ref LL_MDMA_CHANNEL_1 00964 * @arg @ref LL_MDMA_CHANNEL_2 00965 * @arg @ref LL_MDMA_CHANNEL_3 00966 * @arg @ref LL_MDMA_CHANNEL_4 00967 * @arg @ref LL_MDMA_CHANNEL_5 00968 * @arg @ref LL_MDMA_CHANNEL_6 00969 * @arg @ref LL_MDMA_CHANNEL_7 00970 * @arg @ref LL_MDMA_CHANNEL_8 00971 * @arg @ref LL_MDMA_CHANNEL_9 00972 * @arg @ref LL_MDMA_CHANNEL_10 00973 * @arg @ref LL_MDMA_CHANNEL_11 00974 * @arg @ref LL_MDMA_CHANNEL_12 00975 * @arg @ref LL_MDMA_CHANNEL_13 00976 * @arg @ref LL_MDMA_CHANNEL_14 00977 * @arg @ref LL_MDMA_CHANNEL_15 00978 * @param Endianness This parameter can be one of the following values: 00979 * @arg @ref LL_MDMA_BYTE_ENDIANNESS_PRESERVE 00980 * @arg @ref LL_MDMA_BYTE_ENDIANNESS_EXCHANGE 00981 * @retval None 00982 */ 00983 __STATIC_INLINE void LL_MDMA_SetByteEndianness(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t Endianness) 00984 { 00985 uint32_t mdma_base_addr = (uint32_t)MDMAx; 00986 00987 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR, MDMA_CCR_BEX, Endianness); 00988 } 00989 00990 /** 00991 * @brief Get Bytes Endianness. 00992 * @rmtoll CCR BEX LL_MDMA_GetByteEndianness 00993 * @param MDMAx MDMAx Instance 00994 * @param Channel This parameter can be one of the following values: 00995 * @arg @ref LL_MDMA_CHANNEL_0 00996 * @arg @ref LL_MDMA_CHANNEL_1 00997 * @arg @ref LL_MDMA_CHANNEL_2 00998 * @arg @ref LL_MDMA_CHANNEL_3 00999 * @arg @ref LL_MDMA_CHANNEL_4 01000 * @arg @ref LL_MDMA_CHANNEL_5 01001 * @arg @ref LL_MDMA_CHANNEL_6 01002 * @arg @ref LL_MDMA_CHANNEL_7 01003 * @arg @ref LL_MDMA_CHANNEL_8 01004 * @arg @ref LL_MDMA_CHANNEL_9 01005 * @arg @ref LL_MDMA_CHANNEL_10 01006 * @arg @ref LL_MDMA_CHANNEL_11 01007 * @arg @ref LL_MDMA_CHANNEL_12 01008 * @arg @ref LL_MDMA_CHANNEL_13 01009 * @arg @ref LL_MDMA_CHANNEL_14 01010 * @arg @ref LL_MDMA_CHANNEL_15 01011 * @retval Returned value can be one of the following values: 01012 * @arg @ref LL_MDMA_BYTE_ENDIANNESS_PRESERVE 01013 * @arg @ref LL_MDMA_BYTE_ENDIANNESS_EXCHANGE 01014 * @retval None 01015 */ 01016 __STATIC_INLINE uint32_t LL_MDMA_GetByteEndianness(MDMA_TypeDef *MDMAx, uint32_t Channel) 01017 { 01018 uint32_t mdma_base_addr = (uint32_t)MDMAx; 01019 01020 return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR, MDMA_CCR_BEX)); 01021 } 01022 01023 /** 01024 * @brief Set Channel priority level. 01025 * @rmtoll CCR PL LL_MDMA_SetChannelPriorityLevel 01026 * @param MDMAx MDMAx Instance 01027 * @param Channel This parameter can be one of the following values: 01028 * @arg @ref LL_MDMA_CHANNEL_0 01029 * @arg @ref LL_MDMA_CHANNEL_1 01030 * @arg @ref LL_MDMA_CHANNEL_2 01031 * @arg @ref LL_MDMA_CHANNEL_3 01032 * @arg @ref LL_MDMA_CHANNEL_4 01033 * @arg @ref LL_MDMA_CHANNEL_5 01034 * @arg @ref LL_MDMA_CHANNEL_6 01035 * @arg @ref LL_MDMA_CHANNEL_7 01036 * @arg @ref LL_MDMA_CHANNEL_8 01037 * @arg @ref LL_MDMA_CHANNEL_9 01038 * @arg @ref LL_MDMA_CHANNEL_10 01039 * @arg @ref LL_MDMA_CHANNEL_11 01040 * @arg @ref LL_MDMA_CHANNEL_12 01041 * @arg @ref LL_MDMA_CHANNEL_13 01042 * @arg @ref LL_MDMA_CHANNEL_14 01043 * @arg @ref LL_MDMA_CHANNEL_15 01044 * @param Priority This parameter can be one of the following values: 01045 * @arg @ref LL_MDMA_PRIORITY_LOW 01046 * @arg @ref LL_MDMA_PRIORITY_MEDIUM 01047 * @arg @ref LL_MDMA_PRIORITY_HIGH 01048 * @arg @ref LL_MDMA_PRIORITY_VERYHIGH 01049 * @retval None 01050 */ 01051 __STATIC_INLINE void LL_MDMA_SetChannelPriorityLevel(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t Priority) 01052 { 01053 uint32_t mdma_base_addr = (uint32_t)MDMAx; 01054 01055 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR, MDMA_CCR_PL, Priority); 01056 } 01057 01058 /** 01059 * @brief Get Channel priority level. 01060 * @rmtoll CCR PL LL_MDMA_GetChannelPriorityLevel 01061 * @param MDMAx MDMAx Instance 01062 * @param Channel This parameter can be one of the following values: 01063 * @arg @ref LL_MDMA_CHANNEL_0 01064 * @arg @ref LL_MDMA_CHANNEL_1 01065 * @arg @ref LL_MDMA_CHANNEL_2 01066 * @arg @ref LL_MDMA_CHANNEL_3 01067 * @arg @ref LL_MDMA_CHANNEL_4 01068 * @arg @ref LL_MDMA_CHANNEL_5 01069 * @arg @ref LL_MDMA_CHANNEL_6 01070 * @arg @ref LL_MDMA_CHANNEL_7 01071 * @arg @ref LL_MDMA_CHANNEL_8 01072 * @arg @ref LL_MDMA_CHANNEL_9 01073 * @arg @ref LL_MDMA_CHANNEL_10 01074 * @arg @ref LL_MDMA_CHANNEL_11 01075 * @arg @ref LL_MDMA_CHANNEL_12 01076 * @arg @ref LL_MDMA_CHANNEL_13 01077 * @arg @ref LL_MDMA_CHANNEL_14 01078 * @arg @ref LL_MDMA_CHANNEL_15 01079 * @retval Returned value can be one of the following values: 01080 * @arg @ref LL_MDMA_PRIORITY_LOW 01081 * @arg @ref LL_MDMA_PRIORITY_MEDIUM 01082 * @arg @ref LL_MDMA_PRIORITY_HIGH 01083 * @arg @ref LL_MDMA_PRIORITY_VERYHIGH 01084 * @retval None 01085 */ 01086 __STATIC_INLINE uint32_t LL_MDMA_GetChannelPriorityLevel(MDMA_TypeDef *MDMAx, uint32_t Channel) 01087 { 01088 uint32_t mdma_base_addr = (uint32_t)MDMAx; 01089 01090 return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR, MDMA_CCR_PL)); 01091 } 01092 01093 /** 01094 * @brief Configure MDMA transfer parameters. 01095 * @rmtoll CTCR BWM LL_MDMA_ConfigTransfer\n 01096 * @rmtoll CTCR SWRM LL_MDMA_ConfigTransfer\n 01097 * @rmtoll CTCR TRGM LL_MDMA_ConfigTransfer\n 01098 * @rmtoll CTCR PAM LL_MDMA_ConfigTransfer\n 01099 * @rmtoll CTCR PKE LL_MDMA_ConfigTransfer\n 01100 * @rmtoll CTCR TLEN LL_MDMA_ConfigTransfer\n 01101 * @rmtoll CTCR DBURST LL_MDMA_ConfigTransfer\n 01102 * @rmtoll CTCR SBURST LL_MDMA_ConfigTransfer\n 01103 * @rmtoll CTCR DINCOS LL_MDMA_ConfigTransfer\n 01104 * @rmtoll CTCR SINCOS LL_MDMA_ConfigTransfer\n 01105 * @rmtoll CTCR DSIZE LL_MDMA_ConfigTransfer\n 01106 * @rmtoll CTCR SSIZE LL_MDMA_ConfigTransfer\n 01107 * @rmtoll CTCR DINC LL_MDMA_ConfigTransfer\n 01108 * @rmtoll CTCR SINC LL_MDMA_ConfigTransfer 01109 * @param MDMAx MDMAx Instance 01110 * @param Channel This parameter can be one of the following values: 01111 * @arg @ref LL_MDMA_CHANNEL_0 01112 * @arg @ref LL_MDMA_CHANNEL_1 01113 * @arg @ref LL_MDMA_CHANNEL_2 01114 * @arg @ref LL_MDMA_CHANNEL_3 01115 * @arg @ref LL_MDMA_CHANNEL_4 01116 * @arg @ref LL_MDMA_CHANNEL_5 01117 * @arg @ref LL_MDMA_CHANNEL_6 01118 * @arg @ref LL_MDMA_CHANNEL_7 01119 * @arg @ref LL_MDMA_CHANNEL_8 01120 * @arg @ref LL_MDMA_CHANNEL_9 01121 * @arg @ref LL_MDMA_CHANNEL_10 01122 * @arg @ref LL_MDMA_CHANNEL_11 01123 * @arg @ref LL_MDMA_CHANNEL_12 01124 * @arg @ref LL_MDMA_CHANNEL_13 01125 * @arg @ref LL_MDMA_CHANNEL_14 01126 * @arg @ref LL_MDMA_CHANNEL_15 01127 * @param Configuration This parameter must be a combination of all the following values: 01128 * @arg @ref LL_MDMA_BUFF_WRITE_DISABLE or @ref LL_MDMA_BUFF_WRITE_ENABLE 01129 * @arg @ref LL_MDMA_REQUEST_MODE_HW or @ref LL_MDMA_REQUEST_MODE_SW 01130 * @arg @ref LL_MDMA_BUFFER_TRANSFER or @ref LL_MDMA_BLOCK_TRANSFER or @ref LL_MDMA_REPEAT_BLOCK_TRANSFER or @ref LL_MDMA_FULL_TRANSFER 01131 * @arg @ref LL_MDMA_DATAALIGN_RIGHT or @ref LL_MDMA_DATAALIGN_RIGHT_SIGNED or @ref LL_MDMA_DATAALIGN_LEFT 01132 * @arg @ref LL_MDMA_PACK_DISABLE or @ref LL_MDMA_PACK_ENABLE 01133 * @arg @ref LL_MDMA_DEST_BURST_SINGLE or @ref LL_MDMA_DEST_BURST_2BEATS or @ref LL_MDMA_DEST_BURST_4BEATS or @ref LL_MDMA_DEST_BURST_8BEATS 01134 * or @ref LL_MDMA_DEST_BURST_16BEATS or @ref LL_MDMA_DEST_BURST_32BEATS or @ref LL_MDMA_DEST_BURST_64BEATS or @ref LL_MDMA_DEST_BURST_128BEATS 01135 * @arg @ref LL_MDMA_SRC_BURST_SINGLE or @ref LL_MDMA_SRC_BURST_2BEATS or @ref LL_MDMA_SRC_BURST_4BEATS or @ref LL_MDMA_SRC_BURST_8BEATS 01136 * or @ref LL_MDMA_SRC_BURST_16BEATS or @ref LL_MDMA_SRC_BURST_32BEATS or @ref LL_MDMA_SRC_BURST_64BEATS or @ref LL_MDMA_SRC_BURST_128BEATS 01137 * @arg @ref LL_MDMA_DEST_INC_OFFSET_BYTE or @ref LL_MDMA_DEST_INC_OFFSET_HALFWORD or @ref LL_MDMA_DEST_INC_OFFSET_WORD or @ref LL_MDMA_DEST_INC_OFFSET_DOUBLEWORD 01138 * @arg @ref LL_MDMA_SRC_INC_OFFSET_BYTE or @ref LL_MDMA_SRC_INC_OFFSET_HALFWORD or @ref LL_MDMA_SRC_INC_OFFSET_WORD or @ref LL_MDMA_SRC_INC_OFFSET_DOUBLEWORD 01139 * @arg @ref LL_MDMA_DEST_DATA_SIZE_BYTE or @ref LL_MDMA_DEST_DATA_SIZE_HALFWORD or @ref LL_MDMA_DEST_DATA_SIZE_WORD or @ref LL_MDMA_DEST_DATA_SIZE_DOUBLEWORD 01140 * @arg @ref LL_MDMA_SRC_DATA_SIZE_BYTE or @ref LL_MDMA_SRC_DATA_SIZE_HALFWORD or @ref LL_MDMA_SRC_DATA_SIZE_WORD or @ref LL_MDMA_SRC_DATA_SIZE_DOUBLEWORD 01141 * @arg @ref LL_MDMA_DEST_FIXED or @ref LL_MDMA_DEST_INCREMENT or @ref LL_MDMA_DEST_DECREMENT 01142 * @arg @ref LL_MDMA_SRC_FIXED or @ref LL_MDMA_SRC_INCREMENT or @ref LL_MDMA_SRC_DECREMENT 01143 * @param BufferXferLength This parameter can be a value Between 0 to 0x0000007F 01144 * @retval None 01145 */ 01146 __STATIC_INLINE void LL_MDMA_ConfigTransfer(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t Configuration, uint32_t BufferXferLength) 01147 { 01148 uint32_t mdma_base_addr = (uint32_t)MDMAx; 01149 01150 WRITE_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, 01151 Configuration | ((BufferXferLength << MDMA_CTCR_TLEN_Pos) & MDMA_CTCR_TLEN_Msk)); 01152 } 01153 01154 /** 01155 * @brief Enable Bufferable Write Mode. 01156 * @rmtoll CTCR BWM LL_MDMA_EnableBufferableWrMode 01157 * @param MDMAx MDMAx Instance 01158 * @param Channel This parameter can be one of the following values: 01159 * @arg @ref LL_MDMA_CHANNEL_0 01160 * @arg @ref LL_MDMA_CHANNEL_1 01161 * @arg @ref LL_MDMA_CHANNEL_2 01162 * @arg @ref LL_MDMA_CHANNEL_3 01163 * @arg @ref LL_MDMA_CHANNEL_4 01164 * @arg @ref LL_MDMA_CHANNEL_5 01165 * @arg @ref LL_MDMA_CHANNEL_6 01166 * @arg @ref LL_MDMA_CHANNEL_7 01167 * @arg @ref LL_MDMA_CHANNEL_8 01168 * @arg @ref LL_MDMA_CHANNEL_9 01169 * @arg @ref LL_MDMA_CHANNEL_10 01170 * @arg @ref LL_MDMA_CHANNEL_11 01171 * @arg @ref LL_MDMA_CHANNEL_12 01172 * @arg @ref LL_MDMA_CHANNEL_13 01173 * @arg @ref LL_MDMA_CHANNEL_14 01174 * @arg @ref LL_MDMA_CHANNEL_15 01175 * @retval None 01176 */ 01177 __STATIC_INLINE void LL_MDMA_EnableBufferableWrMode(MDMA_TypeDef *MDMAx, uint32_t Channel) 01178 { 01179 uint32_t mdma_base_addr = (uint32_t)MDMAx; 01180 01181 SET_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_BWM); 01182 } 01183 01184 /** 01185 * @brief Disable Bufferable Write Mode. 01186 * @rmtoll CTCR BWM LL_MDMA_DisableBufferableWrMode 01187 * @param MDMAx MDMAx Instance 01188 * @param Channel This parameter can be one of the following values: 01189 * @arg @ref LL_MDMA_CHANNEL_0 01190 * @arg @ref LL_MDMA_CHANNEL_1 01191 * @arg @ref LL_MDMA_CHANNEL_2 01192 * @arg @ref LL_MDMA_CHANNEL_3 01193 * @arg @ref LL_MDMA_CHANNEL_4 01194 * @arg @ref LL_MDMA_CHANNEL_5 01195 * @arg @ref LL_MDMA_CHANNEL_6 01196 * @arg @ref LL_MDMA_CHANNEL_7 01197 * @arg @ref LL_MDMA_CHANNEL_8 01198 * @arg @ref LL_MDMA_CHANNEL_9 01199 * @arg @ref LL_MDMA_CHANNEL_10 01200 * @arg @ref LL_MDMA_CHANNEL_11 01201 * @arg @ref LL_MDMA_CHANNEL_12 01202 * @arg @ref LL_MDMA_CHANNEL_13 01203 * @arg @ref LL_MDMA_CHANNEL_14 01204 * @arg @ref LL_MDMA_CHANNEL_15 01205 * @retval None 01206 */ 01207 __STATIC_INLINE void LL_MDMA_DisableBufferableWrMode(MDMA_TypeDef *MDMAx, uint32_t Channel) 01208 { 01209 uint32_t mdma_base_addr = (uint32_t)MDMAx; 01210 01211 CLEAR_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_BWM); 01212 } 01213 01214 /** 01215 * @brief Check if Bufferable Write Mode is enabled or disabled. 01216 * @rmtoll CTCR BWM LL_MDMA_IsEnabledBufferableWrMode 01217 * @param MDMAx MDMAx Instance 01218 * @param Channel This parameter can be one of the following values: 01219 * @arg @ref LL_MDMA_CHANNEL_0 01220 * @arg @ref LL_MDMA_CHANNEL_1 01221 * @arg @ref LL_MDMA_CHANNEL_2 01222 * @arg @ref LL_MDMA_CHANNEL_3 01223 * @arg @ref LL_MDMA_CHANNEL_4 01224 * @arg @ref LL_MDMA_CHANNEL_5 01225 * @arg @ref LL_MDMA_CHANNEL_6 01226 * @arg @ref LL_MDMA_CHANNEL_7 01227 * @arg @ref LL_MDMA_CHANNEL_8 01228 * @arg @ref LL_MDMA_CHANNEL_9 01229 * @arg @ref LL_MDMA_CHANNEL_10 01230 * @arg @ref LL_MDMA_CHANNEL_11 01231 * @arg @ref LL_MDMA_CHANNEL_12 01232 * @arg @ref LL_MDMA_CHANNEL_13 01233 * @arg @ref LL_MDMA_CHANNEL_14 01234 * @arg @ref LL_MDMA_CHANNEL_15 01235 * @retval State of bit (1 or 0). 01236 */ 01237 __STATIC_INLINE uint32_t LL_MDMA_IsEnabledBufferableWrMode(MDMA_TypeDef *MDMAx, uint32_t Channel) 01238 { 01239 uint32_t mdma_base_addr = (uint32_t)MDMAx; 01240 01241 return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_BWM) == (MDMA_CTCR_BWM)) ? 1UL : 0UL); 01242 } 01243 01244 /** 01245 * @brief Set Request Mode. 01246 * @rmtoll CTCR SWRM LL_MDMA_SetRequestMode 01247 * @param MDMAx MDMAx Instance 01248 * @param Channel This parameter can be one of the following values: 01249 * @arg @ref LL_MDMA_CHANNEL_0 01250 * @arg @ref LL_MDMA_CHANNEL_1 01251 * @arg @ref LL_MDMA_CHANNEL_2 01252 * @arg @ref LL_MDMA_CHANNEL_3 01253 * @arg @ref LL_MDMA_CHANNEL_4 01254 * @arg @ref LL_MDMA_CHANNEL_5 01255 * @arg @ref LL_MDMA_CHANNEL_6 01256 * @arg @ref LL_MDMA_CHANNEL_7 01257 * @arg @ref LL_MDMA_CHANNEL_8 01258 * @arg @ref LL_MDMA_CHANNEL_9 01259 * @arg @ref LL_MDMA_CHANNEL_10 01260 * @arg @ref LL_MDMA_CHANNEL_11 01261 * @arg @ref LL_MDMA_CHANNEL_12 01262 * @arg @ref LL_MDMA_CHANNEL_13 01263 * @arg @ref LL_MDMA_CHANNEL_14 01264 * @arg @ref LL_MDMA_CHANNEL_15 01265 * @param RequestMode This parameter can be one of the following values: 01266 * @arg @ref LL_MDMA_REQUEST_MODE_HW 01267 * @arg @ref LL_MDMA_REQUEST_MODE_SW 01268 * @retval None 01269 */ 01270 __STATIC_INLINE void LL_MDMA_SetRequestMode(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t RequestMode) 01271 { 01272 uint32_t mdma_base_addr = (uint32_t)MDMAx; 01273 01274 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_SWRM, RequestMode); 01275 } 01276 01277 /** 01278 * @brief Get Request Mode. 01279 * @rmtoll CTCR SWRM LL_MDMA_GetRequestMode 01280 * @param MDMAx MDMAx Instance 01281 * @param Channel This parameter can be one of the following values: 01282 * @arg @ref LL_MDMA_CHANNEL_0 01283 * @arg @ref LL_MDMA_CHANNEL_1 01284 * @arg @ref LL_MDMA_CHANNEL_2 01285 * @arg @ref LL_MDMA_CHANNEL_3 01286 * @arg @ref LL_MDMA_CHANNEL_4 01287 * @arg @ref LL_MDMA_CHANNEL_5 01288 * @arg @ref LL_MDMA_CHANNEL_6 01289 * @arg @ref LL_MDMA_CHANNEL_7 01290 * @arg @ref LL_MDMA_CHANNEL_8 01291 * @arg @ref LL_MDMA_CHANNEL_9 01292 * @arg @ref LL_MDMA_CHANNEL_10 01293 * @arg @ref LL_MDMA_CHANNEL_11 01294 * @arg @ref LL_MDMA_CHANNEL_12 01295 * @arg @ref LL_MDMA_CHANNEL_13 01296 * @arg @ref LL_MDMA_CHANNEL_14 01297 * @arg @ref LL_MDMA_CHANNEL_15 01298 * @retval Returned value can be one of the following values: 01299 * @arg @ref LL_MDMA_REQUEST_MODE_HW 01300 * @arg @ref LL_MDMA_REQUEST_MODE_SW 01301 * @retval None 01302 */ 01303 __STATIC_INLINE uint32_t LL_MDMA_GetRequestMode(MDMA_TypeDef *MDMAx, uint32_t Channel) 01304 { 01305 uint32_t mdma_base_addr = (uint32_t)MDMAx; 01306 01307 return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_SWRM)); 01308 } 01309 01310 /** 01311 * @brief Set Trigger Mode. 01312 * @rmtoll CTCR TRGM LL_MDMA_SetTriggerMode 01313 * @param MDMAx MDMAx Instance 01314 * @param Channel This parameter can be one of the following values: 01315 * @arg @ref LL_MDMA_CHANNEL_0 01316 * @arg @ref LL_MDMA_CHANNEL_1 01317 * @arg @ref LL_MDMA_CHANNEL_2 01318 * @arg @ref LL_MDMA_CHANNEL_3 01319 * @arg @ref LL_MDMA_CHANNEL_4 01320 * @arg @ref LL_MDMA_CHANNEL_5 01321 * @arg @ref LL_MDMA_CHANNEL_6 01322 * @arg @ref LL_MDMA_CHANNEL_7 01323 * @arg @ref LL_MDMA_CHANNEL_8 01324 * @arg @ref LL_MDMA_CHANNEL_9 01325 * @arg @ref LL_MDMA_CHANNEL_10 01326 * @arg @ref LL_MDMA_CHANNEL_11 01327 * @arg @ref LL_MDMA_CHANNEL_12 01328 * @arg @ref LL_MDMA_CHANNEL_13 01329 * @arg @ref LL_MDMA_CHANNEL_14 01330 * @arg @ref LL_MDMA_CHANNEL_15 01331 * @param TriggerMode This parameter can be one of the following values: 01332 * @arg @ref LL_MDMA_BUFFER_TRANSFER 01333 * @arg @ref LL_MDMA_BLOCK_TRANSFER 01334 * @arg @ref LL_MDMA_REPEAT_BLOCK_TRANSFER 01335 * @arg @ref LL_MDMA_FULL_TRANSFER 01336 * @retval None 01337 */ 01338 __STATIC_INLINE void LL_MDMA_SetTriggerMode(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t TriggerMode) 01339 { 01340 uint32_t mdma_base_addr = (uint32_t)MDMAx; 01341 01342 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_TRGM, TriggerMode); 01343 } 01344 01345 /** 01346 * @brief Get Trigger Mode. 01347 * @rmtoll CTCR TRGM LL_MDMA_GetTriggerMode 01348 * @param MDMAx MDMAx Instance 01349 * @param Channel This parameter can be one of the following values: 01350 * @arg @ref LL_MDMA_CHANNEL_0 01351 * @arg @ref LL_MDMA_CHANNEL_1 01352 * @arg @ref LL_MDMA_CHANNEL_2 01353 * @arg @ref LL_MDMA_CHANNEL_3 01354 * @arg @ref LL_MDMA_CHANNEL_4 01355 * @arg @ref LL_MDMA_CHANNEL_5 01356 * @arg @ref LL_MDMA_CHANNEL_6 01357 * @arg @ref LL_MDMA_CHANNEL_7 01358 * @arg @ref LL_MDMA_CHANNEL_8 01359 * @arg @ref LL_MDMA_CHANNEL_9 01360 * @arg @ref LL_MDMA_CHANNEL_10 01361 * @arg @ref LL_MDMA_CHANNEL_11 01362 * @arg @ref LL_MDMA_CHANNEL_12 01363 * @arg @ref LL_MDMA_CHANNEL_13 01364 * @arg @ref LL_MDMA_CHANNEL_14 01365 * @arg @ref LL_MDMA_CHANNEL_15 01366 * @retval Returned value can be one of the following values: 01367 * @arg @ref LL_MDMA_BUFFER_TRANSFER 01368 * @arg @ref LL_MDMA_BLOCK_TRANSFER 01369 * @arg @ref LL_MDMA_REPEAT_BLOCK_TRANSFER 01370 * @arg @ref LL_MDMA_FULL_TRANSFER 01371 * @retval None 01372 */ 01373 __STATIC_INLINE uint32_t LL_MDMA_GetTriggerMode(MDMA_TypeDef *MDMAx, uint32_t Channel) 01374 { 01375 uint32_t mdma_base_addr = (uint32_t)MDMAx; 01376 01377 return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_TRGM)); 01378 } 01379 01380 /** 01381 * @brief Set Padding Alignment. 01382 * @rmtoll CTCR PAM LL_MDMA_SetPaddingAlignment 01383 * @param MDMAx MDMAx Instance 01384 * @param Channel This parameter can be one of the following values: 01385 * @arg @ref LL_MDMA_CHANNEL_0 01386 * @arg @ref LL_MDMA_CHANNEL_1 01387 * @arg @ref LL_MDMA_CHANNEL_2 01388 * @arg @ref LL_MDMA_CHANNEL_3 01389 * @arg @ref LL_MDMA_CHANNEL_4 01390 * @arg @ref LL_MDMA_CHANNEL_5 01391 * @arg @ref LL_MDMA_CHANNEL_6 01392 * @arg @ref LL_MDMA_CHANNEL_7 01393 * @arg @ref LL_MDMA_CHANNEL_8 01394 * @arg @ref LL_MDMA_CHANNEL_9 01395 * @arg @ref LL_MDMA_CHANNEL_10 01396 * @arg @ref LL_MDMA_CHANNEL_11 01397 * @arg @ref LL_MDMA_CHANNEL_12 01398 * @arg @ref LL_MDMA_CHANNEL_13 01399 * @arg @ref LL_MDMA_CHANNEL_14 01400 * @arg @ref LL_MDMA_CHANNEL_15 01401 * @param PaddingAlignment This parameter can be one of the following values: 01402 * @arg @ref LL_MDMA_DATAALIGN_RIGHT 01403 * @arg @ref LL_MDMA_DATAALIGN_RIGHT_SIGNED 01404 * @arg @ref LL_MDMA_DATAALIGN_LEFT 01405 * @retval None 01406 */ 01407 __STATIC_INLINE void LL_MDMA_SetPaddingAlignment(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t PaddingAlignment) 01408 { 01409 uint32_t mdma_base_addr = (uint32_t)MDMAx; 01410 01411 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_PAM, PaddingAlignment); 01412 } 01413 01414 /** 01415 * @brief Get Padding Alignment. 01416 * @rmtoll CTCR PAM LL_MDMA_GetPaddingAlignment 01417 * @param MDMAx MDMAx Instance 01418 * @param Channel This parameter can be one of the following values: 01419 * @arg @ref LL_MDMA_CHANNEL_0 01420 * @arg @ref LL_MDMA_CHANNEL_1 01421 * @arg @ref LL_MDMA_CHANNEL_2 01422 * @arg @ref LL_MDMA_CHANNEL_3 01423 * @arg @ref LL_MDMA_CHANNEL_4 01424 * @arg @ref LL_MDMA_CHANNEL_5 01425 * @arg @ref LL_MDMA_CHANNEL_6 01426 * @arg @ref LL_MDMA_CHANNEL_7 01427 * @arg @ref LL_MDMA_CHANNEL_8 01428 * @arg @ref LL_MDMA_CHANNEL_9 01429 * @arg @ref LL_MDMA_CHANNEL_10 01430 * @arg @ref LL_MDMA_CHANNEL_11 01431 * @arg @ref LL_MDMA_CHANNEL_12 01432 * @arg @ref LL_MDMA_CHANNEL_13 01433 * @arg @ref LL_MDMA_CHANNEL_14 01434 * @arg @ref LL_MDMA_CHANNEL_15 01435 * @retval Returned value can be one of the following values: 01436 * @arg @ref LL_MDMA_DATAALIGN_RIGHT 01437 * @arg @ref LL_MDMA_DATAALIGN_RIGHT_SIGNED 01438 * @arg @ref LL_MDMA_DATAALIGN_LEFT 01439 * @retval None 01440 */ 01441 __STATIC_INLINE uint32_t LL_MDMA_GetPaddingAlignment(MDMA_TypeDef *MDMAx, uint32_t Channel) 01442 { 01443 uint32_t mdma_base_addr = (uint32_t)MDMAx; 01444 01445 return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_PAM)); 01446 } 01447 01448 01449 /** 01450 * @brief Enable Packing. 01451 * @rmtoll CTCR PKE LL_MDMA_EnablePacking 01452 * @param MDMAx MDMAx Instance 01453 * @param Channel This parameter can be one of the following values: 01454 * @arg @ref LL_MDMA_CHANNEL_0 01455 * @arg @ref LL_MDMA_CHANNEL_1 01456 * @arg @ref LL_MDMA_CHANNEL_2 01457 * @arg @ref LL_MDMA_CHANNEL_3 01458 * @arg @ref LL_MDMA_CHANNEL_4 01459 * @arg @ref LL_MDMA_CHANNEL_5 01460 * @arg @ref LL_MDMA_CHANNEL_6 01461 * @arg @ref LL_MDMA_CHANNEL_7 01462 * @arg @ref LL_MDMA_CHANNEL_8 01463 * @arg @ref LL_MDMA_CHANNEL_9 01464 * @arg @ref LL_MDMA_CHANNEL_10 01465 * @arg @ref LL_MDMA_CHANNEL_11 01466 * @arg @ref LL_MDMA_CHANNEL_12 01467 * @arg @ref LL_MDMA_CHANNEL_13 01468 * @arg @ref LL_MDMA_CHANNEL_14 01469 * @arg @ref LL_MDMA_CHANNEL_15 01470 * @retval None 01471 */ 01472 __STATIC_INLINE void LL_MDMA_EnablePacking(MDMA_TypeDef *MDMAx, uint32_t Channel) 01473 { 01474 uint32_t mdma_base_addr = (uint32_t)MDMAx; 01475 01476 SET_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_PKE); 01477 } 01478 01479 /** 01480 * @brief Disable Packing. 01481 * @rmtoll CTCR PKE LL_MDMA_DisablePacking 01482 * @param MDMAx MDMAx Instance 01483 * @param Channel This parameter can be one of the following values: 01484 * @arg @ref LL_MDMA_CHANNEL_0 01485 * @arg @ref LL_MDMA_CHANNEL_1 01486 * @arg @ref LL_MDMA_CHANNEL_2 01487 * @arg @ref LL_MDMA_CHANNEL_3 01488 * @arg @ref LL_MDMA_CHANNEL_4 01489 * @arg @ref LL_MDMA_CHANNEL_5 01490 * @arg @ref LL_MDMA_CHANNEL_6 01491 * @arg @ref LL_MDMA_CHANNEL_7 01492 * @arg @ref LL_MDMA_CHANNEL_8 01493 * @arg @ref LL_MDMA_CHANNEL_9 01494 * @arg @ref LL_MDMA_CHANNEL_10 01495 * @arg @ref LL_MDMA_CHANNEL_11 01496 * @arg @ref LL_MDMA_CHANNEL_12 01497 * @arg @ref LL_MDMA_CHANNEL_13 01498 * @arg @ref LL_MDMA_CHANNEL_14 01499 * @arg @ref LL_MDMA_CHANNEL_15 01500 * @retval None 01501 */ 01502 __STATIC_INLINE void LL_MDMA_DisablePacking(MDMA_TypeDef *MDMAx, uint32_t Channel) 01503 { 01504 uint32_t mdma_base_addr = (uint32_t)MDMAx; 01505 01506 CLEAR_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_PKE); 01507 } 01508 01509 /** 01510 * @brief Check if packing is enabled or disabled. 01511 * @rmtoll CTCR PKE LL_MDMA_IsEnabledPacking 01512 * @param MDMAx MDMAx Instance 01513 * @param Channel This parameter can be one of the following values: 01514 * @arg @ref LL_MDMA_CHANNEL_0 01515 * @arg @ref LL_MDMA_CHANNEL_1 01516 * @arg @ref LL_MDMA_CHANNEL_2 01517 * @arg @ref LL_MDMA_CHANNEL_3 01518 * @arg @ref LL_MDMA_CHANNEL_4 01519 * @arg @ref LL_MDMA_CHANNEL_5 01520 * @arg @ref LL_MDMA_CHANNEL_6 01521 * @arg @ref LL_MDMA_CHANNEL_7 01522 * @arg @ref LL_MDMA_CHANNEL_8 01523 * @arg @ref LL_MDMA_CHANNEL_9 01524 * @arg @ref LL_MDMA_CHANNEL_10 01525 * @arg @ref LL_MDMA_CHANNEL_11 01526 * @arg @ref LL_MDMA_CHANNEL_12 01527 * @arg @ref LL_MDMA_CHANNEL_13 01528 * @arg @ref LL_MDMA_CHANNEL_14 01529 * @arg @ref LL_MDMA_CHANNEL_15 01530 * @retval State of bit (1 or 0). 01531 */ 01532 __STATIC_INLINE uint32_t LL_MDMA_IsEnabledPacking(MDMA_TypeDef *MDMAx, uint32_t Channel) 01533 { 01534 uint32_t mdma_base_addr = (uint32_t)MDMAx; 01535 01536 return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_PKE) == (MDMA_CTCR_PKE)) ? 1UL : 0UL); 01537 } 01538 01539 /** 01540 * @brief Set Buffer Transfer Length. 01541 * @rmtoll CTCR TLEN LL_MDMA_SetBufferTransferLength 01542 * @param MDMAx MDMAx Instance 01543 * @param Channel This parameter can be one of the following values: 01544 * @arg @ref LL_MDMA_CHANNEL_0 01545 * @arg @ref LL_MDMA_CHANNEL_1 01546 * @arg @ref LL_MDMA_CHANNEL_2 01547 * @arg @ref LL_MDMA_CHANNEL_3 01548 * @arg @ref LL_MDMA_CHANNEL_4 01549 * @arg @ref LL_MDMA_CHANNEL_5 01550 * @arg @ref LL_MDMA_CHANNEL_6 01551 * @arg @ref LL_MDMA_CHANNEL_7 01552 * @arg @ref LL_MDMA_CHANNEL_8 01553 * @arg @ref LL_MDMA_CHANNEL_9 01554 * @arg @ref LL_MDMA_CHANNEL_10 01555 * @arg @ref LL_MDMA_CHANNEL_11 01556 * @arg @ref LL_MDMA_CHANNEL_12 01557 * @arg @ref LL_MDMA_CHANNEL_13 01558 * @arg @ref LL_MDMA_CHANNEL_14 01559 * @arg @ref LL_MDMA_CHANNEL_15 01560 * @param Length Between 0 to 0x0000007F 01561 * @retval None 01562 */ 01563 __STATIC_INLINE void LL_MDMA_SetBufferTransferLength(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t Length) 01564 { 01565 uint32_t mdma_base_addr = (uint32_t)MDMAx; 01566 01567 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_TLEN, 01568 (Length << MDMA_CTCR_TLEN_Pos) & MDMA_CTCR_TLEN_Msk); 01569 } 01570 01571 /** 01572 * @brief Get Buffer Transfer Length. 01573 * @rmtoll CTCR TLEN LL_MDMA_GetBufferTransferLength 01574 * @param MDMAx MDMAx Instance 01575 * @param Channel This parameter can be one of the following values: 01576 * @arg @ref LL_MDMA_CHANNEL_0 01577 * @arg @ref LL_MDMA_CHANNEL_1 01578 * @arg @ref LL_MDMA_CHANNEL_2 01579 * @arg @ref LL_MDMA_CHANNEL_3 01580 * @arg @ref LL_MDMA_CHANNEL_4 01581 * @arg @ref LL_MDMA_CHANNEL_5 01582 * @arg @ref LL_MDMA_CHANNEL_6 01583 * @arg @ref LL_MDMA_CHANNEL_7 01584 * @arg @ref LL_MDMA_CHANNEL_8 01585 * @arg @ref LL_MDMA_CHANNEL_9 01586 * @arg @ref LL_MDMA_CHANNEL_10 01587 * @arg @ref LL_MDMA_CHANNEL_11 01588 * @arg @ref LL_MDMA_CHANNEL_12 01589 * @arg @ref LL_MDMA_CHANNEL_13 01590 * @arg @ref LL_MDMA_CHANNEL_14 01591 * @arg @ref LL_MDMA_CHANNEL_15 01592 * @retval Between 0 to 0x0000007F 01593 * @retval None 01594 */ 01595 __STATIC_INLINE uint32_t LL_MDMA_GetBufferTransferLength(MDMA_TypeDef *MDMAx, uint32_t Channel) 01596 { 01597 uint32_t mdma_base_addr = (uint32_t)MDMAx; 01598 01599 return(READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_TLEN) >> MDMA_CTCR_TLEN_Pos); 01600 } 01601 01602 /** 01603 * @brief Set Destination burst transfer. 01604 * @rmtoll CTCR DBURST LL_MDMA_SetDestinationBurstSize 01605 * @param MDMAx MDMAx Instance 01606 * @param Channel This parameter can be one of the following values: 01607 * @arg @ref LL_MDMA_CHANNEL_0 01608 * @arg @ref LL_MDMA_CHANNEL_1 01609 * @arg @ref LL_MDMA_CHANNEL_2 01610 * @arg @ref LL_MDMA_CHANNEL_3 01611 * @arg @ref LL_MDMA_CHANNEL_4 01612 * @arg @ref LL_MDMA_CHANNEL_5 01613 * @arg @ref LL_MDMA_CHANNEL_6 01614 * @arg @ref LL_MDMA_CHANNEL_7 01615 * @arg @ref LL_MDMA_CHANNEL_8 01616 * @arg @ref LL_MDMA_CHANNEL_9 01617 * @arg @ref LL_MDMA_CHANNEL_10 01618 * @arg @ref LL_MDMA_CHANNEL_11 01619 * @arg @ref LL_MDMA_CHANNEL_12 01620 * @arg @ref LL_MDMA_CHANNEL_13 01621 * @arg @ref LL_MDMA_CHANNEL_14 01622 * @arg @ref LL_MDMA_CHANNEL_15 01623 * @param Dburst This parameter can be one of the following values: 01624 * @arg @ref LL_MDMA_DEST_BURST_SINGLE 01625 * @arg @ref LL_MDMA_DEST_BURST_2BEATS 01626 * @arg @ref LL_MDMA_DEST_BURST_4BEATS 01627 * @arg @ref LL_MDMA_DEST_BURST_8BEATS 01628 * @arg @ref LL_MDMA_DEST_BURST_16BEATS 01629 * @arg @ref LL_MDMA_DEST_BURST_32BEATS 01630 * @arg @ref LL_MDMA_DEST_BURST_64BEATS 01631 * @arg @ref LL_MDMA_DEST_BURST_128BEATS 01632 * @retval None 01633 */ 01634 __STATIC_INLINE void LL_MDMA_SetDestinationBurstSize(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t Dburst) 01635 { 01636 uint32_t mdma_base_addr = (uint32_t)MDMAx; 01637 01638 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_DBURST, Dburst); 01639 } 01640 01641 /** 01642 * @brief Get Destination burst transfer. 01643 * @rmtoll CTCR DBURST LL_MDMA_GetDestinationBurstSize 01644 * @param MDMAx MDMAx Instance 01645 * @param Channel This parameter can be one of the following values: 01646 * @arg @ref LL_MDMA_CHANNEL_0 01647 * @arg @ref LL_MDMA_CHANNEL_1 01648 * @arg @ref LL_MDMA_CHANNEL_2 01649 * @arg @ref LL_MDMA_CHANNEL_3 01650 * @arg @ref LL_MDMA_CHANNEL_4 01651 * @arg @ref LL_MDMA_CHANNEL_5 01652 * @arg @ref LL_MDMA_CHANNEL_6 01653 * @arg @ref LL_MDMA_CHANNEL_7 01654 * @arg @ref LL_MDMA_CHANNEL_8 01655 * @arg @ref LL_MDMA_CHANNEL_9 01656 * @arg @ref LL_MDMA_CHANNEL_10 01657 * @arg @ref LL_MDMA_CHANNEL_11 01658 * @arg @ref LL_MDMA_CHANNEL_12 01659 * @arg @ref LL_MDMA_CHANNEL_13 01660 * @arg @ref LL_MDMA_CHANNEL_14 01661 * @arg @ref LL_MDMA_CHANNEL_15 01662 * @retval Returned value can be one of the following values: 01663 * @arg @ref LL_MDMA_DEST_BURST_SINGLE 01664 * @arg @ref LL_MDMA_DEST_BURST_2BEATS 01665 * @arg @ref LL_MDMA_DEST_BURST_4BEATS 01666 * @arg @ref LL_MDMA_DEST_BURST_8BEATS 01667 * @arg @ref LL_MDMA_DEST_BURST_16BEATS 01668 * @arg @ref LL_MDMA_DEST_BURST_32BEATS 01669 * @arg @ref LL_MDMA_DEST_BURST_64BEATS 01670 * @arg @ref LL_MDMA_DEST_BURST_128BEATS 01671 * @retval None 01672 */ 01673 __STATIC_INLINE uint32_t LL_MDMA_GetDestinationBurstSize(MDMA_TypeDef *MDMAx, uint32_t Channel) 01674 { 01675 uint32_t mdma_base_addr = (uint32_t)MDMAx; 01676 01677 return(READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_DBURST)); 01678 } 01679 01680 /** 01681 * @brief Set Source burst transfer. 01682 * @rmtoll CTCR SBURST LL_MDMA_SetSourceBurstSize 01683 * @param MDMAx MDMAx Instance 01684 * @param Channel This parameter can be one of the following values: 01685 * @arg @ref LL_MDMA_CHANNEL_0 01686 * @arg @ref LL_MDMA_CHANNEL_1 01687 * @arg @ref LL_MDMA_CHANNEL_2 01688 * @arg @ref LL_MDMA_CHANNEL_3 01689 * @arg @ref LL_MDMA_CHANNEL_4 01690 * @arg @ref LL_MDMA_CHANNEL_5 01691 * @arg @ref LL_MDMA_CHANNEL_6 01692 * @arg @ref LL_MDMA_CHANNEL_7 01693 * @arg @ref LL_MDMA_CHANNEL_8 01694 * @arg @ref LL_MDMA_CHANNEL_9 01695 * @arg @ref LL_MDMA_CHANNEL_10 01696 * @arg @ref LL_MDMA_CHANNEL_11 01697 * @arg @ref LL_MDMA_CHANNEL_12 01698 * @arg @ref LL_MDMA_CHANNEL_13 01699 * @arg @ref LL_MDMA_CHANNEL_14 01700 * @arg @ref LL_MDMA_CHANNEL_15 01701 * @param Sburst This parameter can be one of the following values: 01702 * @arg @ref LL_MDMA_SRC_BURST_SINGLE 01703 * @arg @ref LL_MDMA_SRC_BURST_2BEATS 01704 * @arg @ref LL_MDMA_SRC_BURST_4BEATS 01705 * @arg @ref LL_MDMA_SRC_BURST_8BEATS 01706 * @arg @ref LL_MDMA_SRC_BURST_16BEATS 01707 * @arg @ref LL_MDMA_SRC_BURST_32BEATS 01708 * @arg @ref LL_MDMA_SRC_BURST_64BEATS 01709 * @arg @ref LL_MDMA_SRC_BURST_128BEATS 01710 * @retval None 01711 */ 01712 __STATIC_INLINE void LL_MDMA_SetSourceBurstSize(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t Sburst) 01713 { 01714 uint32_t mdma_base_addr = (uint32_t)MDMAx; 01715 01716 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_SBURST, Sburst); 01717 } 01718 01719 /** 01720 * @brief Get Source burst transfer. 01721 * @rmtoll CTCR SBURST LL_MDMA_GetSourceBurstSize 01722 * @param MDMAx MDMAx Instance 01723 * @param Channel This parameter can be one of the following values: 01724 * @arg @ref LL_MDMA_CHANNEL_0 01725 * @arg @ref LL_MDMA_CHANNEL_1 01726 * @arg @ref LL_MDMA_CHANNEL_2 01727 * @arg @ref LL_MDMA_CHANNEL_3 01728 * @arg @ref LL_MDMA_CHANNEL_4 01729 * @arg @ref LL_MDMA_CHANNEL_5 01730 * @arg @ref LL_MDMA_CHANNEL_6 01731 * @arg @ref LL_MDMA_CHANNEL_7 01732 * @arg @ref LL_MDMA_CHANNEL_8 01733 * @arg @ref LL_MDMA_CHANNEL_9 01734 * @arg @ref LL_MDMA_CHANNEL_10 01735 * @arg @ref LL_MDMA_CHANNEL_11 01736 * @arg @ref LL_MDMA_CHANNEL_12 01737 * @arg @ref LL_MDMA_CHANNEL_13 01738 * @arg @ref LL_MDMA_CHANNEL_14 01739 * @arg @ref LL_MDMA_CHANNEL_15 01740 * @retval Returned value can be one of the following values: 01741 * @arg @ref LL_MDMA_SRC_BURST_SINGLE 01742 * @arg @ref LL_MDMA_SRC_BURST_2BEATS 01743 * @arg @ref LL_MDMA_SRC_BURST_4BEATS 01744 * @arg @ref LL_MDMA_SRC_BURST_8BEATS 01745 * @arg @ref LL_MDMA_SRC_BURST_16BEATS 01746 * @arg @ref LL_MDMA_SRC_BURST_32BEATS 01747 * @arg @ref LL_MDMA_SRC_BURST_64BEATS 01748 * @arg @ref LL_MDMA_SRC_BURST_128BEATS 01749 * @retval None 01750 */ 01751 __STATIC_INLINE uint32_t LL_MDMA_GetSourceBurstSize(MDMA_TypeDef *MDMAx, uint32_t Channel) 01752 { 01753 uint32_t mdma_base_addr = (uint32_t)MDMAx; 01754 01755 return(READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_SBURST)); 01756 } 01757 01758 /** 01759 * @brief Set Destination Increment Offset Size. 01760 * @rmtoll CTCR DINCOS LL_MDMA_SetDestinationIncSize 01761 * @param MDMAx MDMAx Instance 01762 * @param Channel This parameter can be one of the following values: 01763 * @arg @ref LL_MDMA_CHANNEL_0 01764 * @arg @ref LL_MDMA_CHANNEL_1 01765 * @arg @ref LL_MDMA_CHANNEL_2 01766 * @arg @ref LL_MDMA_CHANNEL_3 01767 * @arg @ref LL_MDMA_CHANNEL_4 01768 * @arg @ref LL_MDMA_CHANNEL_5 01769 * @arg @ref LL_MDMA_CHANNEL_6 01770 * @arg @ref LL_MDMA_CHANNEL_7 01771 * @arg @ref LL_MDMA_CHANNEL_8 01772 * @arg @ref LL_MDMA_CHANNEL_9 01773 * @arg @ref LL_MDMA_CHANNEL_10 01774 * @arg @ref LL_MDMA_CHANNEL_11 01775 * @arg @ref LL_MDMA_CHANNEL_12 01776 * @arg @ref LL_MDMA_CHANNEL_13 01777 * @arg @ref LL_MDMA_CHANNEL_14 01778 * @arg @ref LL_MDMA_CHANNEL_15 01779 * @param IncSize This parameter can be one of the following values: 01780 * @arg @ref LL_MDMA_DEST_INC_OFFSET_BYTE 01781 * @arg @ref LL_MDMA_DEST_INC_OFFSET_HALFWORD 01782 * @arg @ref LL_MDMA_DEST_INC_OFFSET_WORD 01783 * @arg @ref LL_MDMA_DEST_INC_OFFSET_DOUBLEWORD 01784 * @retval None 01785 */ 01786 __STATIC_INLINE void LL_MDMA_SetDestinationIncSize(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t IncSize) 01787 { 01788 uint32_t mdma_base_addr = (uint32_t)MDMAx; 01789 01790 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_DINCOS, IncSize); 01791 } 01792 01793 /** 01794 * @brief Get Destination Increment Offset Size. 01795 * @rmtoll CTCR DINCOS LL_MDMA_GetDestinationIncSize 01796 * @param MDMAx MDMAx Instance 01797 * @param Channel This parameter can be one of the following values: 01798 * @arg @ref LL_MDMA_CHANNEL_0 01799 * @arg @ref LL_MDMA_CHANNEL_1 01800 * @arg @ref LL_MDMA_CHANNEL_2 01801 * @arg @ref LL_MDMA_CHANNEL_3 01802 * @arg @ref LL_MDMA_CHANNEL_4 01803 * @arg @ref LL_MDMA_CHANNEL_5 01804 * @arg @ref LL_MDMA_CHANNEL_6 01805 * @arg @ref LL_MDMA_CHANNEL_7 01806 * @arg @ref LL_MDMA_CHANNEL_8 01807 * @arg @ref LL_MDMA_CHANNEL_9 01808 * @arg @ref LL_MDMA_CHANNEL_10 01809 * @arg @ref LL_MDMA_CHANNEL_11 01810 * @arg @ref LL_MDMA_CHANNEL_12 01811 * @arg @ref LL_MDMA_CHANNEL_13 01812 * @arg @ref LL_MDMA_CHANNEL_14 01813 * @arg @ref LL_MDMA_CHANNEL_15 01814 * @retval Returned value can be one of the following values: 01815 * @arg @ref LL_MDMA_DEST_INC_OFFSET_BYTE 01816 * @arg @ref LL_MDMA_DEST_INC_OFFSET_HALFWORD 01817 * @arg @ref LL_MDMA_DEST_INC_OFFSET_WORD 01818 * @arg @ref LL_MDMA_DEST_INC_OFFSET_DOUBLEWORD 01819 * @retval None 01820 */ 01821 __STATIC_INLINE uint32_t LL_MDMA_GetDestinationIncSize(MDMA_TypeDef *MDMAx, uint32_t Channel) 01822 { 01823 uint32_t mdma_base_addr = (uint32_t)MDMAx; 01824 01825 return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_DINCOS)); 01826 } 01827 01828 /** 01829 * @brief Set Source Increment Offset Size. 01830 * @rmtoll CTCR SINCOS LL_MDMA_SetSourceIncSize 01831 * @param MDMAx MDMAx Instance 01832 * @param Channel This parameter can be one of the following values: 01833 * @arg @ref LL_MDMA_CHANNEL_0 01834 * @arg @ref LL_MDMA_CHANNEL_1 01835 * @arg @ref LL_MDMA_CHANNEL_2 01836 * @arg @ref LL_MDMA_CHANNEL_3 01837 * @arg @ref LL_MDMA_CHANNEL_4 01838 * @arg @ref LL_MDMA_CHANNEL_5 01839 * @arg @ref LL_MDMA_CHANNEL_6 01840 * @arg @ref LL_MDMA_CHANNEL_7 01841 * @arg @ref LL_MDMA_CHANNEL_8 01842 * @arg @ref LL_MDMA_CHANNEL_9 01843 * @arg @ref LL_MDMA_CHANNEL_10 01844 * @arg @ref LL_MDMA_CHANNEL_11 01845 * @arg @ref LL_MDMA_CHANNEL_12 01846 * @arg @ref LL_MDMA_CHANNEL_13 01847 * @arg @ref LL_MDMA_CHANNEL_14 01848 * @arg @ref LL_MDMA_CHANNEL_15 01849 * @param IncSize This parameter can be one of the following values: 01850 * @arg @ref LL_MDMA_SRC_INC_OFFSET_BYTE 01851 * @arg @ref LL_MDMA_SRC_INC_OFFSET_HALFWORD 01852 * @arg @ref LL_MDMA_SRC_INC_OFFSET_WORD 01853 * @arg @ref LL_MDMA_SRC_INC_OFFSET_DOUBLEWORD 01854 * @retval None 01855 */ 01856 __STATIC_INLINE void LL_MDMA_SetSourceIncSize(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t IncSize) 01857 { 01858 uint32_t mdma_base_addr = (uint32_t)MDMAx; 01859 01860 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_SINCOS, IncSize); 01861 } 01862 01863 /** 01864 * @brief Get Source Increment Offset Size. 01865 * @rmtoll CTCR SINCOS LL_MDMA_GetSourceIncSize 01866 * @param MDMAx MDMAx Instance 01867 * @param Channel This parameter can be one of the following values: 01868 * @arg @ref LL_MDMA_CHANNEL_0 01869 * @arg @ref LL_MDMA_CHANNEL_1 01870 * @arg @ref LL_MDMA_CHANNEL_2 01871 * @arg @ref LL_MDMA_CHANNEL_3 01872 * @arg @ref LL_MDMA_CHANNEL_4 01873 * @arg @ref LL_MDMA_CHANNEL_5 01874 * @arg @ref LL_MDMA_CHANNEL_6 01875 * @arg @ref LL_MDMA_CHANNEL_7 01876 * @arg @ref LL_MDMA_CHANNEL_8 01877 * @arg @ref LL_MDMA_CHANNEL_9 01878 * @arg @ref LL_MDMA_CHANNEL_10 01879 * @arg @ref LL_MDMA_CHANNEL_11 01880 * @arg @ref LL_MDMA_CHANNEL_12 01881 * @arg @ref LL_MDMA_CHANNEL_13 01882 * @arg @ref LL_MDMA_CHANNEL_14 01883 * @arg @ref LL_MDMA_CHANNEL_15 01884 * @retval Returned value can be one of the following values: 01885 * @arg @ref LL_MDMA_SRC_INC_OFFSET_BYTE 01886 * @arg @ref LL_MDMA_SRC_INC_OFFSET_HALFWORD 01887 * @arg @ref LL_MDMA_SRC_INC_OFFSET_WORD 01888 * @arg @ref LL_MDMA_SRC_INC_OFFSET_DOUBLEWORD 01889 * @retval None 01890 */ 01891 __STATIC_INLINE uint32_t LL_MDMA_GetSourceIncSize(MDMA_TypeDef *MDMAx, uint32_t Channel) 01892 { 01893 uint32_t mdma_base_addr = (uint32_t)MDMAx; 01894 01895 return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_SINCOS)); 01896 } 01897 01898 /** 01899 * @brief Set Destination Data Size. 01900 * @rmtoll CTCR DSIZE LL_MDMA_SetDestinationDataSize 01901 * @param MDMAx MDMAx Instance 01902 * @param Channel This parameter can be one of the following values: 01903 * @arg @ref LL_MDMA_CHANNEL_0 01904 * @arg @ref LL_MDMA_CHANNEL_1 01905 * @arg @ref LL_MDMA_CHANNEL_2 01906 * @arg @ref LL_MDMA_CHANNEL_3 01907 * @arg @ref LL_MDMA_CHANNEL_4 01908 * @arg @ref LL_MDMA_CHANNEL_5 01909 * @arg @ref LL_MDMA_CHANNEL_6 01910 * @arg @ref LL_MDMA_CHANNEL_7 01911 * @arg @ref LL_MDMA_CHANNEL_8 01912 * @arg @ref LL_MDMA_CHANNEL_9 01913 * @arg @ref LL_MDMA_CHANNEL_10 01914 * @arg @ref LL_MDMA_CHANNEL_11 01915 * @arg @ref LL_MDMA_CHANNEL_12 01916 * @arg @ref LL_MDMA_CHANNEL_13 01917 * @arg @ref LL_MDMA_CHANNEL_14 01918 * @arg @ref LL_MDMA_CHANNEL_15 01919 * @param DestDataSize This parameter can be one of the following values: 01920 * @arg @ref LL_MDMA_DEST_DATA_SIZE_BYTE 01921 * @arg @ref LL_MDMA_DEST_DATA_SIZE_HALFWORD 01922 * @arg @ref LL_MDMA_DEST_DATA_SIZE_WORD 01923 * @arg @ref LL_MDMA_DEST_DATA_SIZE_DOUBLEWORD 01924 * @retval None 01925 */ 01926 __STATIC_INLINE void LL_MDMA_SetDestinationDataSize(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t DestDataSize) 01927 { 01928 uint32_t mdma_base_addr = (uint32_t)MDMAx; 01929 01930 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_DSIZE, DestDataSize); 01931 } 01932 01933 /** 01934 * @brief Get Destination Data Size. 01935 * @rmtoll CTCR DSIZE LL_MDMA_GetDestinationDataSize 01936 * @param MDMAx MDMAx Instance 01937 * @param Channel This parameter can be one of the following values: 01938 * @arg @ref LL_MDMA_CHANNEL_0 01939 * @arg @ref LL_MDMA_CHANNEL_1 01940 * @arg @ref LL_MDMA_CHANNEL_2 01941 * @arg @ref LL_MDMA_CHANNEL_3 01942 * @arg @ref LL_MDMA_CHANNEL_4 01943 * @arg @ref LL_MDMA_CHANNEL_5 01944 * @arg @ref LL_MDMA_CHANNEL_6 01945 * @arg @ref LL_MDMA_CHANNEL_7 01946 * @arg @ref LL_MDMA_CHANNEL_8 01947 * @arg @ref LL_MDMA_CHANNEL_9 01948 * @arg @ref LL_MDMA_CHANNEL_10 01949 * @arg @ref LL_MDMA_CHANNEL_11 01950 * @arg @ref LL_MDMA_CHANNEL_12 01951 * @arg @ref LL_MDMA_CHANNEL_13 01952 * @arg @ref LL_MDMA_CHANNEL_14 01953 * @arg @ref LL_MDMA_CHANNEL_15 01954 * @retval Returned value can be one of the following values: 01955 * @arg @ref LL_MDMA_DEST_DATA_SIZE_BYTE 01956 * @arg @ref LL_MDMA_DEST_DATA_SIZE_HALFWORD 01957 * @arg @ref LL_MDMA_DEST_DATA_SIZE_WORD 01958 * @arg @ref LL_MDMA_DEST_DATA_SIZE_DOUBLEWORD 01959 * @retval None 01960 */ 01961 __STATIC_INLINE uint32_t LL_MDMA_GetDestinationDataSize(MDMA_TypeDef *MDMAx, uint32_t Channel) 01962 { 01963 uint32_t mdma_base_addr = (uint32_t)MDMAx; 01964 01965 return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_DSIZE)); 01966 } 01967 01968 /** 01969 * @brief Set Source Data Size. 01970 * @rmtoll CTCR SSIZE LL_MDMA_SetSourceDataSize 01971 * @param MDMAx MDMAx Instance 01972 * @param Channel This parameter can be one of the following values: 01973 * @arg @ref LL_MDMA_CHANNEL_0 01974 * @arg @ref LL_MDMA_CHANNEL_1 01975 * @arg @ref LL_MDMA_CHANNEL_2 01976 * @arg @ref LL_MDMA_CHANNEL_3 01977 * @arg @ref LL_MDMA_CHANNEL_4 01978 * @arg @ref LL_MDMA_CHANNEL_5 01979 * @arg @ref LL_MDMA_CHANNEL_6 01980 * @arg @ref LL_MDMA_CHANNEL_7 01981 * @arg @ref LL_MDMA_CHANNEL_8 01982 * @arg @ref LL_MDMA_CHANNEL_9 01983 * @arg @ref LL_MDMA_CHANNEL_10 01984 * @arg @ref LL_MDMA_CHANNEL_11 01985 * @arg @ref LL_MDMA_CHANNEL_12 01986 * @arg @ref LL_MDMA_CHANNEL_13 01987 * @arg @ref LL_MDMA_CHANNEL_14 01988 * @arg @ref LL_MDMA_CHANNEL_15 01989 * @param SrcDataSize This parameter can be one of the following values: 01990 * @arg @ref LL_MDMA_SRC_DATA_SIZE_BYTE 01991 * @arg @ref LL_MDMA_SRC_DATA_SIZE_HALFWORD 01992 * @arg @ref LL_MDMA_SRC_DATA_SIZE_WORD 01993 * @arg @ref LL_MDMA_SRC_DATA_SIZE_DOUBLEWORD 01994 * @retval None 01995 */ 01996 __STATIC_INLINE void LL_MDMA_SetSourceDataSize(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t SrcDataSize) 01997 { 01998 uint32_t mdma_base_addr = (uint32_t)MDMAx; 01999 02000 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_SSIZE, SrcDataSize); 02001 } 02002 02003 /** 02004 * @brief Get Source Data Size. 02005 * @rmtoll CTCR SSIZE LL_MDMA_GetSourceDataSize 02006 * @param MDMAx MDMAx Instance 02007 * @param Channel This parameter can be one of the following values: 02008 * @arg @ref LL_MDMA_CHANNEL_0 02009 * @arg @ref LL_MDMA_CHANNEL_1 02010 * @arg @ref LL_MDMA_CHANNEL_2 02011 * @arg @ref LL_MDMA_CHANNEL_3 02012 * @arg @ref LL_MDMA_CHANNEL_4 02013 * @arg @ref LL_MDMA_CHANNEL_5 02014 * @arg @ref LL_MDMA_CHANNEL_6 02015 * @arg @ref LL_MDMA_CHANNEL_7 02016 * @arg @ref LL_MDMA_CHANNEL_8 02017 * @arg @ref LL_MDMA_CHANNEL_9 02018 * @arg @ref LL_MDMA_CHANNEL_10 02019 * @arg @ref LL_MDMA_CHANNEL_11 02020 * @arg @ref LL_MDMA_CHANNEL_12 02021 * @arg @ref LL_MDMA_CHANNEL_13 02022 * @arg @ref LL_MDMA_CHANNEL_14 02023 * @arg @ref LL_MDMA_CHANNEL_15 02024 * @retval Returned value can be one of the following values: 02025 * @arg @ref LL_MDMA_SRC_DATA_SIZE_BYTE 02026 * @arg @ref LL_MDMA_SRC_DATA_SIZE_HALFWORD 02027 * @arg @ref LL_MDMA_SRC_DATA_SIZE_WORD 02028 * @arg @ref LL_MDMA_SRC_DATA_SIZE_DOUBLEWORD 02029 * @retval None 02030 */ 02031 __STATIC_INLINE uint32_t LL_MDMA_GetSourceDataSize(MDMA_TypeDef *MDMAx, uint32_t Channel) 02032 { 02033 uint32_t mdma_base_addr = (uint32_t)MDMAx; 02034 02035 return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_SSIZE)); 02036 } 02037 02038 /** 02039 * @brief Set Destination Increment Mode. 02040 * @rmtoll CTCR DINC LL_MDMA_SetDestinationIncMode 02041 * @param MDMAx MDMAx Instance 02042 * @param Channel This parameter can be one of the following values: 02043 * @arg @ref LL_MDMA_CHANNEL_0 02044 * @arg @ref LL_MDMA_CHANNEL_1 02045 * @arg @ref LL_MDMA_CHANNEL_2 02046 * @arg @ref LL_MDMA_CHANNEL_3 02047 * @arg @ref LL_MDMA_CHANNEL_4 02048 * @arg @ref LL_MDMA_CHANNEL_5 02049 * @arg @ref LL_MDMA_CHANNEL_6 02050 * @arg @ref LL_MDMA_CHANNEL_7 02051 * @arg @ref LL_MDMA_CHANNEL_8 02052 * @arg @ref LL_MDMA_CHANNEL_9 02053 * @arg @ref LL_MDMA_CHANNEL_10 02054 * @arg @ref LL_MDMA_CHANNEL_11 02055 * @arg @ref LL_MDMA_CHANNEL_12 02056 * @arg @ref LL_MDMA_CHANNEL_13 02057 * @arg @ref LL_MDMA_CHANNEL_14 02058 * @arg @ref LL_MDMA_CHANNEL_15 02059 * @param DestIncMode This parameter can be one of the following values: 02060 * @arg @ref LL_MDMA_DEST_FIXED 02061 * @arg @ref LL_MDMA_DEST_INCREMENT 02062 * @arg @ref LL_MDMA_DEST_DECREMENT 02063 * @retval None 02064 */ 02065 __STATIC_INLINE void LL_MDMA_SetDestinationIncMode(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t DestIncMode) 02066 { 02067 uint32_t mdma_base_addr = (uint32_t)MDMAx; 02068 02069 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_DINC, DestIncMode); 02070 } 02071 02072 /** 02073 * @brief Get Destination Increment Mode. 02074 * @rmtoll CTCR DINC LL_MDMA_GetDestinationIncMode 02075 * @param MDMAx MDMAx Instance 02076 * @param Channel This parameter can be one of the following values: 02077 * @arg @ref LL_MDMA_CHANNEL_0 02078 * @arg @ref LL_MDMA_CHANNEL_1 02079 * @arg @ref LL_MDMA_CHANNEL_2 02080 * @arg @ref LL_MDMA_CHANNEL_3 02081 * @arg @ref LL_MDMA_CHANNEL_4 02082 * @arg @ref LL_MDMA_CHANNEL_5 02083 * @arg @ref LL_MDMA_CHANNEL_6 02084 * @arg @ref LL_MDMA_CHANNEL_7 02085 * @arg @ref LL_MDMA_CHANNEL_8 02086 * @arg @ref LL_MDMA_CHANNEL_9 02087 * @arg @ref LL_MDMA_CHANNEL_10 02088 * @arg @ref LL_MDMA_CHANNEL_11 02089 * @arg @ref LL_MDMA_CHANNEL_12 02090 * @arg @ref LL_MDMA_CHANNEL_13 02091 * @arg @ref LL_MDMA_CHANNEL_14 02092 * @arg @ref LL_MDMA_CHANNEL_15 02093 * @retval Returned value can be one of the following values: 02094 * @arg @ref LL_MDMA_DEST_FIXED 02095 * @arg @ref LL_MDMA_DEST_INCREMENT 02096 * @arg @ref LL_MDMA_DEST_DECREMENT 02097 * @retval None 02098 */ 02099 __STATIC_INLINE uint32_t LL_MDMA_GetDestinationIncMode(MDMA_TypeDef *MDMAx, uint32_t Channel) 02100 { 02101 uint32_t mdma_base_addr = (uint32_t)MDMAx; 02102 02103 return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_DINC)); 02104 } 02105 02106 /** 02107 * @brief Set Source Increment Mode. 02108 * @rmtoll CTCR SINC LL_MDMA_SetSourceIncMode 02109 * @param MDMAx MDMAx Instance 02110 * @param Channel This parameter can be one of the following values: 02111 * @arg @ref LL_MDMA_CHANNEL_0 02112 * @arg @ref LL_MDMA_CHANNEL_1 02113 * @arg @ref LL_MDMA_CHANNEL_2 02114 * @arg @ref LL_MDMA_CHANNEL_3 02115 * @arg @ref LL_MDMA_CHANNEL_4 02116 * @arg @ref LL_MDMA_CHANNEL_5 02117 * @arg @ref LL_MDMA_CHANNEL_6 02118 * @arg @ref LL_MDMA_CHANNEL_7 02119 * @arg @ref LL_MDMA_CHANNEL_8 02120 * @arg @ref LL_MDMA_CHANNEL_9 02121 * @arg @ref LL_MDMA_CHANNEL_10 02122 * @arg @ref LL_MDMA_CHANNEL_11 02123 * @arg @ref LL_MDMA_CHANNEL_12 02124 * @arg @ref LL_MDMA_CHANNEL_13 02125 * @arg @ref LL_MDMA_CHANNEL_14 02126 * @arg @ref LL_MDMA_CHANNEL_15 02127 * @param SrcIncMode This parameter can be one of the following values: 02128 * @arg @ref LL_MDMA_SRC_FIXED 02129 * @arg @ref LL_MDMA_SRC_INCREMENT 02130 * @arg @ref LL_MDMA_SRC_DECREMENT 02131 * @retval None 02132 */ 02133 __STATIC_INLINE void LL_MDMA_SetSourceIncMode(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t SrcIncMode) 02134 { 02135 uint32_t mdma_base_addr = (uint32_t)MDMAx; 02136 02137 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_SINC, SrcIncMode); 02138 } 02139 02140 /** 02141 * @brief Get Source Increment Mode. 02142 * @rmtoll CTCR SINC LL_MDMA_GetSourceIncMode 02143 * @param MDMAx MDMAx Instance 02144 * @param Channel This parameter can be one of the following values: 02145 * @arg @ref LL_MDMA_CHANNEL_0 02146 * @arg @ref LL_MDMA_CHANNEL_1 02147 * @arg @ref LL_MDMA_CHANNEL_2 02148 * @arg @ref LL_MDMA_CHANNEL_3 02149 * @arg @ref LL_MDMA_CHANNEL_4 02150 * @arg @ref LL_MDMA_CHANNEL_5 02151 * @arg @ref LL_MDMA_CHANNEL_6 02152 * @arg @ref LL_MDMA_CHANNEL_7 02153 * @arg @ref LL_MDMA_CHANNEL_8 02154 * @arg @ref LL_MDMA_CHANNEL_9 02155 * @arg @ref LL_MDMA_CHANNEL_10 02156 * @arg @ref LL_MDMA_CHANNEL_11 02157 * @arg @ref LL_MDMA_CHANNEL_12 02158 * @arg @ref LL_MDMA_CHANNEL_13 02159 * @arg @ref LL_MDMA_CHANNEL_14 02160 * @arg @ref LL_MDMA_CHANNEL_15 02161 * @retval Returned value can be one of the following values: 02162 * @arg @ref LL_MDMA_SRC_FIXED 02163 * @arg @ref LL_MDMA_SRC_INCREMENT 02164 * @arg @ref LL_MDMA_SRC_DECREMENT 02165 * @retval None 02166 */ 02167 __STATIC_INLINE uint32_t LL_MDMA_GetSourceIncMode(MDMA_TypeDef *MDMAx, uint32_t Channel) 02168 { 02169 uint32_t mdma_base_addr = (uint32_t)MDMAx; 02170 02171 return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_SINC)); 02172 } 02173 02174 /** 02175 * @brief Configure MDMA Block number of data and repeat Count. 02176 * @rmtoll CBNDTR BRC LL_MDMA_ConfigBlkCounters\n 02177 * @rmtoll CBNDTR BNDT LL_MDMA_ConfigBlkCounters 02178 * @param MDMAx MDMAx Instance 02179 * @param Channel This parameter can be one of the following values: 02180 * @arg @ref LL_MDMA_CHANNEL_0 02181 * @arg @ref LL_MDMA_CHANNEL_1 02182 * @arg @ref LL_MDMA_CHANNEL_2 02183 * @arg @ref LL_MDMA_CHANNEL_3 02184 * @arg @ref LL_MDMA_CHANNEL_4 02185 * @arg @ref LL_MDMA_CHANNEL_5 02186 * @arg @ref LL_MDMA_CHANNEL_6 02187 * @arg @ref LL_MDMA_CHANNEL_7 02188 * @arg @ref LL_MDMA_CHANNEL_8 02189 * @arg @ref LL_MDMA_CHANNEL_9 02190 * @arg @ref LL_MDMA_CHANNEL_10 02191 * @arg @ref LL_MDMA_CHANNEL_11 02192 * @arg @ref LL_MDMA_CHANNEL_12 02193 * @arg @ref LL_MDMA_CHANNEL_13 02194 * @arg @ref LL_MDMA_CHANNEL_14 02195 * @arg @ref LL_MDMA_CHANNEL_15 02196 * @param BlockRepeatCount Between 0 to 0x00000FFF 02197 * @param BlkDataLength Between 0 to 0x00010000 02198 * @retval None 02199 */ 02200 __STATIC_INLINE void LL_MDMA_ConfigBlkCounters(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t BlockRepeatCount, uint32_t BlkDataLength) 02201 { 02202 uint32_t mdma_base_addr = (uint32_t)MDMAx; 02203 02204 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CBNDTR, 02205 MDMA_CBNDTR_BRC | MDMA_CBNDTR_BNDT, 02206 ((BlockRepeatCount << MDMA_CBNDTR_BRC_Pos) & MDMA_CBNDTR_BRC_Msk) | (BlkDataLength & MDMA_CBNDTR_BNDT_Msk)); 02207 } 02208 02209 /** 02210 * @brief Set Block Number of data bytes to transfer. 02211 * @rmtoll CBNDTR BNDT LL_MDMA_SetBlkDataLength 02212 * @param MDMAx MDMAx Instance 02213 * @param Channel This parameter can be one of the following values: 02214 * @arg @ref LL_MDMA_CHANNEL_0 02215 * @arg @ref LL_MDMA_CHANNEL_1 02216 * @arg @ref LL_MDMA_CHANNEL_2 02217 * @arg @ref LL_MDMA_CHANNEL_3 02218 * @arg @ref LL_MDMA_CHANNEL_4 02219 * @arg @ref LL_MDMA_CHANNEL_5 02220 * @arg @ref LL_MDMA_CHANNEL_6 02221 * @arg @ref LL_MDMA_CHANNEL_7 02222 * @arg @ref LL_MDMA_CHANNEL_8 02223 * @arg @ref LL_MDMA_CHANNEL_9 02224 * @arg @ref LL_MDMA_CHANNEL_10 02225 * @arg @ref LL_MDMA_CHANNEL_11 02226 * @arg @ref LL_MDMA_CHANNEL_12 02227 * @arg @ref LL_MDMA_CHANNEL_13 02228 * @arg @ref LL_MDMA_CHANNEL_14 02229 * @arg @ref LL_MDMA_CHANNEL_15 02230 * @param BlkDataLength Between 0 to 0x00010000 02231 * @retval None 02232 */ 02233 __STATIC_INLINE void LL_MDMA_SetBlkDataLength(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t BlkDataLength) 02234 { 02235 uint32_t mdma_base_addr = (uint32_t)MDMAx; 02236 02237 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CBNDTR, MDMA_CBNDTR_BNDT, (BlkDataLength & MDMA_CBNDTR_BNDT_Msk)); 02238 } 02239 02240 /** 02241 * @brief Get Block Number of data bytes to transfer. 02242 * @rmtoll CBNDTR BNDT LL_MDMA_GetBlkDataLength 02243 * @param MDMAx MDMAx Instance 02244 * @param Channel This parameter can be one of the following values: 02245 * @arg @ref LL_MDMA_CHANNEL_0 02246 * @arg @ref LL_MDMA_CHANNEL_1 02247 * @arg @ref LL_MDMA_CHANNEL_2 02248 * @arg @ref LL_MDMA_CHANNEL_3 02249 * @arg @ref LL_MDMA_CHANNEL_4 02250 * @arg @ref LL_MDMA_CHANNEL_5 02251 * @arg @ref LL_MDMA_CHANNEL_6 02252 * @arg @ref LL_MDMA_CHANNEL_7 02253 * @arg @ref LL_MDMA_CHANNEL_8 02254 * @arg @ref LL_MDMA_CHANNEL_9 02255 * @arg @ref LL_MDMA_CHANNEL_10 02256 * @arg @ref LL_MDMA_CHANNEL_11 02257 * @arg @ref LL_MDMA_CHANNEL_12 02258 * @arg @ref LL_MDMA_CHANNEL_13 02259 * @arg @ref LL_MDMA_CHANNEL_14 02260 * @arg @ref LL_MDMA_CHANNEL_15 02261 * @retval Between 0 to 0x00010000 02262 * @retval None 02263 */ 02264 __STATIC_INLINE uint32_t LL_MDMA_GetBlkDataLength(MDMA_TypeDef *MDMAx, uint32_t Channel) 02265 { 02266 uint32_t mdma_base_addr = (uint32_t)MDMAx; 02267 02268 return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CBNDTR, MDMA_CBNDTR_BNDT)); 02269 } 02270 02271 /** 02272 * @brief Set Block Repeat Count. 02273 * @rmtoll CBNDTR BRC LL_MDMA_SetBlkRepeatCount 02274 * @param MDMAx MDMAx Instance 02275 * @param Channel This parameter can be one of the following values: 02276 * @arg @ref LL_MDMA_CHANNEL_0 02277 * @arg @ref LL_MDMA_CHANNEL_1 02278 * @arg @ref LL_MDMA_CHANNEL_2 02279 * @arg @ref LL_MDMA_CHANNEL_3 02280 * @arg @ref LL_MDMA_CHANNEL_4 02281 * @arg @ref LL_MDMA_CHANNEL_5 02282 * @arg @ref LL_MDMA_CHANNEL_6 02283 * @arg @ref LL_MDMA_CHANNEL_7 02284 * @arg @ref LL_MDMA_CHANNEL_8 02285 * @arg @ref LL_MDMA_CHANNEL_9 02286 * @arg @ref LL_MDMA_CHANNEL_10 02287 * @arg @ref LL_MDMA_CHANNEL_11 02288 * @arg @ref LL_MDMA_CHANNEL_12 02289 * @arg @ref LL_MDMA_CHANNEL_13 02290 * @arg @ref LL_MDMA_CHANNEL_14 02291 * @arg @ref LL_MDMA_CHANNEL_15 02292 * @param BlockRepeatCount Between 0 to 0x00000FFF 02293 * @retval None 02294 */ 02295 __STATIC_INLINE void LL_MDMA_SetBlkRepeatCount(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t BlockRepeatCount) 02296 { 02297 uint32_t mdma_base_addr = (uint32_t)MDMAx; 02298 02299 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CBNDTR, MDMA_CBNDTR_BRC, 02300 (BlockRepeatCount << MDMA_CBNDTR_BRC_Pos) & MDMA_CBNDTR_BRC_Msk); 02301 } 02302 02303 /** 02304 * @brief Get Block Repeat Count. 02305 * @rmtoll CBNDTR BRC LL_MDMA_GetBlkRepeatCount 02306 * @param MDMAx MDMAx Instance 02307 * @param Channel This parameter can be one of the following values: 02308 * @arg @ref LL_MDMA_CHANNEL_0 02309 * @arg @ref LL_MDMA_CHANNEL_1 02310 * @arg @ref LL_MDMA_CHANNEL_2 02311 * @arg @ref LL_MDMA_CHANNEL_3 02312 * @arg @ref LL_MDMA_CHANNEL_4 02313 * @arg @ref LL_MDMA_CHANNEL_5 02314 * @arg @ref LL_MDMA_CHANNEL_6 02315 * @arg @ref LL_MDMA_CHANNEL_7 02316 * @arg @ref LL_MDMA_CHANNEL_8 02317 * @arg @ref LL_MDMA_CHANNEL_9 02318 * @arg @ref LL_MDMA_CHANNEL_10 02319 * @arg @ref LL_MDMA_CHANNEL_11 02320 * @arg @ref LL_MDMA_CHANNEL_12 02321 * @arg @ref LL_MDMA_CHANNEL_13 02322 * @arg @ref LL_MDMA_CHANNEL_14 02323 * @arg @ref LL_MDMA_CHANNEL_15 02324 * @retval Between 0 to 0x00000FFF 02325 * @retval None 02326 */ 02327 __STATIC_INLINE uint32_t LL_MDMA_GetBlkRepeatCount(MDMA_TypeDef *MDMAx, uint32_t Channel) 02328 { 02329 uint32_t mdma_base_addr = (uint32_t)MDMAx; 02330 02331 return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CBNDTR, MDMA_CBNDTR_BRC) >> MDMA_CBNDTR_BRC_Pos); 02332 } 02333 02334 /** 02335 * @brief Configure MDMA block repeat address update mode. 02336 * @rmtoll CBNDTR BRDUM LL_MDMA_ConfigBlkRepeatAddrUpdate\n 02337 * @rmtoll CBNDTR BRSUM LL_MDMA_ConfigBlkRepeatAddrUpdate 02338 * @param MDMAx MDMAx Instance 02339 * @param Channel This parameter can be one of the following values: 02340 * @arg @ref LL_MDMA_CHANNEL_0 02341 * @arg @ref LL_MDMA_CHANNEL_1 02342 * @arg @ref LL_MDMA_CHANNEL_2 02343 * @arg @ref LL_MDMA_CHANNEL_3 02344 * @arg @ref LL_MDMA_CHANNEL_4 02345 * @arg @ref LL_MDMA_CHANNEL_5 02346 * @arg @ref LL_MDMA_CHANNEL_6 02347 * @arg @ref LL_MDMA_CHANNEL_7 02348 * @arg @ref LL_MDMA_CHANNEL_8 02349 * @arg @ref LL_MDMA_CHANNEL_9 02350 * @arg @ref LL_MDMA_CHANNEL_10 02351 * @arg @ref LL_MDMA_CHANNEL_11 02352 * @arg @ref LL_MDMA_CHANNEL_12 02353 * @arg @ref LL_MDMA_CHANNEL_13 02354 * @arg @ref LL_MDMA_CHANNEL_14 02355 * @arg @ref LL_MDMA_CHANNEL_15 02356 * @param Configuration This parameter must be a combination of all the following values: 02357 * @arg @ref LL_MDMA_BLK_RPT_DEST_ADDR_INCREMENT or @ref LL_MDMA_BLK_RPT_DEST_ADDR_DECREMENT 02358 * @arg @ref LL_MDMA_BLK_RPT_SRC_ADDR_INCREMENT or @ref LL_MDMA_BLK_RPT_SRC_ADDR_DECREMENT 02359 * @retval None 02360 */ 02361 __STATIC_INLINE void LL_MDMA_ConfigBlkRepeatAddrUpdate(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t Configuration) 02362 { 02363 uint32_t mdma_base_addr = (uint32_t)MDMAx; 02364 02365 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CBNDTR, 02366 MDMA_CBNDTR_BRDUM | MDMA_CBNDTR_BRSUM, 02367 Configuration); 02368 } 02369 02370 /** 02371 * @brief Set Block Repeat Destination address Update Mode. 02372 * @rmtoll CBNDTR BRDUM LL_MDMA_SetBlkRepeatDestAddrUpdate 02373 * @param MDMAx MDMAx Instance 02374 * @param Channel This parameter can be one of the following values: 02375 * @arg @ref LL_MDMA_CHANNEL_0 02376 * @arg @ref LL_MDMA_CHANNEL_1 02377 * @arg @ref LL_MDMA_CHANNEL_2 02378 * @arg @ref LL_MDMA_CHANNEL_3 02379 * @arg @ref LL_MDMA_CHANNEL_4 02380 * @arg @ref LL_MDMA_CHANNEL_5 02381 * @arg @ref LL_MDMA_CHANNEL_6 02382 * @arg @ref LL_MDMA_CHANNEL_7 02383 * @arg @ref LL_MDMA_CHANNEL_8 02384 * @arg @ref LL_MDMA_CHANNEL_9 02385 * @arg @ref LL_MDMA_CHANNEL_10 02386 * @arg @ref LL_MDMA_CHANNEL_11 02387 * @arg @ref LL_MDMA_CHANNEL_12 02388 * @arg @ref LL_MDMA_CHANNEL_13 02389 * @arg @ref LL_MDMA_CHANNEL_14 02390 * @arg @ref LL_MDMA_CHANNEL_15 02391 * @param DestAdrUpdateMode This parameter can be one of the following values: 02392 * @arg @ref LL_MDMA_BLK_RPT_DEST_ADDR_INCREMENT 02393 * @arg @ref LL_MDMA_BLK_RPT_DEST_ADDR_DECREMENT 02394 * @retval None 02395 */ 02396 __STATIC_INLINE void LL_MDMA_SetBlkRepeatDestAddrUpdate(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t DestAdrUpdateMode) 02397 { 02398 uint32_t mdma_base_addr = (uint32_t)MDMAx; 02399 02400 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CBNDTR, MDMA_CBNDTR_BRDUM, DestAdrUpdateMode); 02401 } 02402 02403 /** 02404 * @brief Get Block Repeat Destination address Update Mode. 02405 * @rmtoll CBNDTR BRDUM LL_MDMA_GetBlkRepeatDestAddrUpdate 02406 * @param MDMAx MDMAx Instance 02407 * @param Channel This parameter can be one of the following values: 02408 * @arg @ref LL_MDMA_CHANNEL_0 02409 * @arg @ref LL_MDMA_CHANNEL_1 02410 * @arg @ref LL_MDMA_CHANNEL_2 02411 * @arg @ref LL_MDMA_CHANNEL_3 02412 * @arg @ref LL_MDMA_CHANNEL_4 02413 * @arg @ref LL_MDMA_CHANNEL_5 02414 * @arg @ref LL_MDMA_CHANNEL_6 02415 * @arg @ref LL_MDMA_CHANNEL_7 02416 * @arg @ref LL_MDMA_CHANNEL_8 02417 * @arg @ref LL_MDMA_CHANNEL_9 02418 * @arg @ref LL_MDMA_CHANNEL_10 02419 * @arg @ref LL_MDMA_CHANNEL_11 02420 * @arg @ref LL_MDMA_CHANNEL_12 02421 * @arg @ref LL_MDMA_CHANNEL_13 02422 * @arg @ref LL_MDMA_CHANNEL_14 02423 * @arg @ref LL_MDMA_CHANNEL_15 02424 * @retval Returned value can be one of the following values: 02425 * @arg @ref LL_MDMA_BLK_RPT_DEST_ADDR_INCREMENT 02426 * @arg @ref LL_MDMA_BLK_RPT_DEST_ADDR_DECREMENT 02427 * @retval None 02428 */ 02429 __STATIC_INLINE uint32_t LL_MDMA_GetBlkRepeatDestAddrUpdate(MDMA_TypeDef *MDMAx, uint32_t Channel) 02430 { 02431 uint32_t mdma_base_addr = (uint32_t)MDMAx; 02432 02433 return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CBNDTR, MDMA_CBNDTR_BRDUM)); 02434 } 02435 02436 /** 02437 * @brief Set Block Repeat Source address Update Mode. 02438 * @rmtoll CBNDTR BRSUM LL_MDMA_SetBlkRepeatSrcAddrUpdate 02439 * @param MDMAx MDMAx Instance 02440 * @param Channel This parameter can be one of the following values: 02441 * @arg @ref LL_MDMA_CHANNEL_0 02442 * @arg @ref LL_MDMA_CHANNEL_1 02443 * @arg @ref LL_MDMA_CHANNEL_2 02444 * @arg @ref LL_MDMA_CHANNEL_3 02445 * @arg @ref LL_MDMA_CHANNEL_4 02446 * @arg @ref LL_MDMA_CHANNEL_5 02447 * @arg @ref LL_MDMA_CHANNEL_6 02448 * @arg @ref LL_MDMA_CHANNEL_7 02449 * @arg @ref LL_MDMA_CHANNEL_8 02450 * @arg @ref LL_MDMA_CHANNEL_9 02451 * @arg @ref LL_MDMA_CHANNEL_10 02452 * @arg @ref LL_MDMA_CHANNEL_11 02453 * @arg @ref LL_MDMA_CHANNEL_12 02454 * @arg @ref LL_MDMA_CHANNEL_13 02455 * @arg @ref LL_MDMA_CHANNEL_14 02456 * @arg @ref LL_MDMA_CHANNEL_15 02457 * @param SrcAdrUpdateMode This parameter can be one of the following values: 02458 * @arg @ref LL_MDMA_BLK_RPT_SRC_ADDR_INCREMENT 02459 * @arg @ref LL_MDMA_BLK_RPT_SRC_ADDR_DECREMENT 02460 * @retval None 02461 */ 02462 __STATIC_INLINE void LL_MDMA_SetBlkRepeatSrcAddrUpdate(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t SrcAdrUpdateMode) 02463 { 02464 uint32_t mdma_base_addr = (uint32_t)MDMAx; 02465 02466 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CBNDTR, MDMA_CBNDTR_BRSUM, SrcAdrUpdateMode); 02467 } 02468 02469 /** 02470 * @brief Get Block Repeat Source address Update Mode. 02471 * @rmtoll CBNDTR BRSUM LL_MDMA_GetBlkRepeatSrcAddrUpdate 02472 * @param MDMAx MDMAx Instance 02473 * @param Channel This parameter can be one of the following values: 02474 * @arg @ref LL_MDMA_CHANNEL_0 02475 * @arg @ref LL_MDMA_CHANNEL_1 02476 * @arg @ref LL_MDMA_CHANNEL_2 02477 * @arg @ref LL_MDMA_CHANNEL_3 02478 * @arg @ref LL_MDMA_CHANNEL_4 02479 * @arg @ref LL_MDMA_CHANNEL_5 02480 * @arg @ref LL_MDMA_CHANNEL_6 02481 * @arg @ref LL_MDMA_CHANNEL_7 02482 * @arg @ref LL_MDMA_CHANNEL_8 02483 * @arg @ref LL_MDMA_CHANNEL_9 02484 * @arg @ref LL_MDMA_CHANNEL_10 02485 * @arg @ref LL_MDMA_CHANNEL_11 02486 * @arg @ref LL_MDMA_CHANNEL_12 02487 * @arg @ref LL_MDMA_CHANNEL_13 02488 * @arg @ref LL_MDMA_CHANNEL_14 02489 * @arg @ref LL_MDMA_CHANNEL_15 02490 * @retval Returned value can be one of the following values: 02491 * @arg @ref LL_MDMA_BLK_RPT_SRC_ADDR_INCREMENT 02492 * @arg @ref LL_MDMA_BLK_RPT_SRC_ADDR_DECREMENT 02493 * @retval None 02494 */ 02495 __STATIC_INLINE uint32_t LL_MDMA_GetBlkRepeatSrcAddrUpdate(MDMA_TypeDef *MDMAx, uint32_t Channel) 02496 { 02497 uint32_t mdma_base_addr = (uint32_t)MDMAx; 02498 02499 return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CBNDTR, MDMA_CBNDTR_BRSUM)); 02500 } 02501 02502 /** 02503 * @brief Configure the Source and Destination addresses. 02504 * @note This API must not be called when the MDMA channel is enabled. 02505 * @rmtoll CSAR SAR LL_MDMA_ConfigAddresses\n 02506 * @rmtoll CDAR DAR LL_MDMA_ConfigAddresses 02507 * @param MDMAx MDMAx Instance 02508 * @param Channel This parameter can be one of the following values: 02509 * @arg @ref LL_MDMA_CHANNEL_0 02510 * @arg @ref LL_MDMA_CHANNEL_1 02511 * @arg @ref LL_MDMA_CHANNEL_2 02512 * @arg @ref LL_MDMA_CHANNEL_3 02513 * @arg @ref LL_MDMA_CHANNEL_4 02514 * @arg @ref LL_MDMA_CHANNEL_5 02515 * @arg @ref LL_MDMA_CHANNEL_6 02516 * @arg @ref LL_MDMA_CHANNEL_7 02517 * @arg @ref LL_MDMA_CHANNEL_8 02518 * @arg @ref LL_MDMA_CHANNEL_9 02519 * @arg @ref LL_MDMA_CHANNEL_10 02520 * @arg @ref LL_MDMA_CHANNEL_11 02521 * @arg @ref LL_MDMA_CHANNEL_12 02522 * @arg @ref LL_MDMA_CHANNEL_13 02523 * @arg @ref LL_MDMA_CHANNEL_14 02524 * @arg @ref LL_MDMA_CHANNEL_15 02525 * @param SrcAddress Between Min_Data = 0 and Max_Data = 0xFFFFFFFF 02526 * @param DstAddress Between Min_Data = 0 and Max_Data = 0xFFFFFFFF 02527 * @retval None 02528 */ 02529 __STATIC_INLINE void LL_MDMA_ConfigAddresses(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t SrcAddress, uint32_t DstAddress) 02530 { 02531 uint32_t mdma_base_addr = (uint32_t)MDMAx; 02532 02533 WRITE_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CSAR, SrcAddress); 02534 WRITE_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CDAR, DstAddress); 02535 } 02536 /** 02537 * @brief Set transfer Source address. 02538 * @rmtoll CSAR SAR LL_MDMA_SetSourceAddress 02539 * @param MDMAx MDMAx Instance 02540 * @param Channel This parameter can be one of the following values: 02541 * @arg @ref LL_MDMA_CHANNEL_0 02542 * @arg @ref LL_MDMA_CHANNEL_1 02543 * @arg @ref LL_MDMA_CHANNEL_2 02544 * @arg @ref LL_MDMA_CHANNEL_3 02545 * @arg @ref LL_MDMA_CHANNEL_4 02546 * @arg @ref LL_MDMA_CHANNEL_5 02547 * @arg @ref LL_MDMA_CHANNEL_6 02548 * @arg @ref LL_MDMA_CHANNEL_7 02549 * @arg @ref LL_MDMA_CHANNEL_8 02550 * @arg @ref LL_MDMA_CHANNEL_9 02551 * @arg @ref LL_MDMA_CHANNEL_10 02552 * @arg @ref LL_MDMA_CHANNEL_11 02553 * @arg @ref LL_MDMA_CHANNEL_12 02554 * @arg @ref LL_MDMA_CHANNEL_13 02555 * @arg @ref LL_MDMA_CHANNEL_14 02556 * @arg @ref LL_MDMA_CHANNEL_15 02557 * @param SrcAddress Between 0 to 0xFFFFFFFF 02558 * @retval None 02559 */ 02560 __STATIC_INLINE void LL_MDMA_SetSourceAddress(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t SrcAddress) 02561 { 02562 uint32_t mdma_base_addr = (uint32_t)MDMAx; 02563 02564 WRITE_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CSAR, SrcAddress); 02565 } 02566 02567 /** 02568 * @brief Get transfer Source address. 02569 * @rmtoll CSAR SAR LL_MDMA_GetSourceAddress 02570 * @param MDMAx MDMAx Instance 02571 * @param Channel This parameter can be one of the following values: 02572 * @arg @ref LL_MDMA_CHANNEL_0 02573 * @arg @ref LL_MDMA_CHANNEL_1 02574 * @arg @ref LL_MDMA_CHANNEL_2 02575 * @arg @ref LL_MDMA_CHANNEL_3 02576 * @arg @ref LL_MDMA_CHANNEL_4 02577 * @arg @ref LL_MDMA_CHANNEL_5 02578 * @arg @ref LL_MDMA_CHANNEL_6 02579 * @arg @ref LL_MDMA_CHANNEL_7 02580 * @arg @ref LL_MDMA_CHANNEL_8 02581 * @arg @ref LL_MDMA_CHANNEL_9 02582 * @arg @ref LL_MDMA_CHANNEL_10 02583 * @arg @ref LL_MDMA_CHANNEL_11 02584 * @arg @ref LL_MDMA_CHANNEL_12 02585 * @arg @ref LL_MDMA_CHANNEL_13 02586 * @arg @ref LL_MDMA_CHANNEL_14 02587 * @arg @ref LL_MDMA_CHANNEL_15 02588 * @retval Between 0 to 0xFFFFFFFF 02589 * @retval None 02590 */ 02591 __STATIC_INLINE uint32_t LL_MDMA_GetSourceAddress(MDMA_TypeDef *MDMAx, uint32_t Channel) 02592 { 02593 uint32_t mdma_base_addr = (uint32_t)MDMAx; 02594 02595 return (READ_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CSAR)); 02596 } 02597 02598 /** 02599 * @brief Set transfer Destination address. 02600 * @rmtoll CDAR DAR LL_MDMA_SetDestinationAddress 02601 * @param MDMAx MDMAx Instance 02602 * @param Channel This parameter can be one of the following values: 02603 * @arg @ref LL_MDMA_CHANNEL_0 02604 * @arg @ref LL_MDMA_CHANNEL_1 02605 * @arg @ref LL_MDMA_CHANNEL_2 02606 * @arg @ref LL_MDMA_CHANNEL_3 02607 * @arg @ref LL_MDMA_CHANNEL_4 02608 * @arg @ref LL_MDMA_CHANNEL_5 02609 * @arg @ref LL_MDMA_CHANNEL_6 02610 * @arg @ref LL_MDMA_CHANNEL_7 02611 * @arg @ref LL_MDMA_CHANNEL_8 02612 * @arg @ref LL_MDMA_CHANNEL_9 02613 * @arg @ref LL_MDMA_CHANNEL_10 02614 * @arg @ref LL_MDMA_CHANNEL_11 02615 * @arg @ref LL_MDMA_CHANNEL_12 02616 * @arg @ref LL_MDMA_CHANNEL_13 02617 * @arg @ref LL_MDMA_CHANNEL_14 02618 * @arg @ref LL_MDMA_CHANNEL_15 02619 * @param DestAddress Between 0 to 0xFFFFFFFF 02620 * @retval None 02621 */ 02622 __STATIC_INLINE void LL_MDMA_SetDestinationAddress(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t DestAddress) 02623 { 02624 uint32_t mdma_base_addr = (uint32_t)MDMAx; 02625 02626 WRITE_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CDAR, DestAddress); 02627 } 02628 02629 /** 02630 * @brief Get transfer Destination address. 02631 * @rmtoll CDAR DAR LL_MDMA_GetDestinationAddress 02632 * @param MDMAx MDMAx Instance 02633 * @param Channel This parameter can be one of the following values: 02634 * @arg @ref LL_MDMA_CHANNEL_0 02635 * @arg @ref LL_MDMA_CHANNEL_1 02636 * @arg @ref LL_MDMA_CHANNEL_2 02637 * @arg @ref LL_MDMA_CHANNEL_3 02638 * @arg @ref LL_MDMA_CHANNEL_4 02639 * @arg @ref LL_MDMA_CHANNEL_5 02640 * @arg @ref LL_MDMA_CHANNEL_6 02641 * @arg @ref LL_MDMA_CHANNEL_7 02642 * @arg @ref LL_MDMA_CHANNEL_8 02643 * @arg @ref LL_MDMA_CHANNEL_9 02644 * @arg @ref LL_MDMA_CHANNEL_10 02645 * @arg @ref LL_MDMA_CHANNEL_11 02646 * @arg @ref LL_MDMA_CHANNEL_12 02647 * @arg @ref LL_MDMA_CHANNEL_13 02648 * @arg @ref LL_MDMA_CHANNEL_14 02649 * @arg @ref LL_MDMA_CHANNEL_15 02650 * @retval Between 0 to 0xFFFFFFFF 02651 * @retval None 02652 */ 02653 __STATIC_INLINE uint32_t LL_MDMA_GetDestinationAddress(MDMA_TypeDef *MDMAx, uint32_t Channel) 02654 { 02655 uint32_t mdma_base_addr = (uint32_t)MDMAx; 02656 02657 return (READ_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CDAR)); 02658 } 02659 02660 /** 02661 * @brief Configure the Source and Destination Block repeat addresses Update value. 02662 * @note This API must not be called when the MDMA channel is enabled. 02663 * @rmtoll CBRUR DUV LL_MDMA_ConfigBlkRptAddrUpdateValue\n 02664 * @rmtoll CBRUR SUV LL_MDMA_ConfigBlkRptAddrUpdateValue 02665 * @param MDMAx MDMAx Instance 02666 * @param Channel This parameter can be one of the following values: 02667 * @arg @ref LL_MDMA_CHANNEL_0 02668 * @arg @ref LL_MDMA_CHANNEL_1 02669 * @arg @ref LL_MDMA_CHANNEL_2 02670 * @arg @ref LL_MDMA_CHANNEL_3 02671 * @arg @ref LL_MDMA_CHANNEL_4 02672 * @arg @ref LL_MDMA_CHANNEL_5 02673 * @arg @ref LL_MDMA_CHANNEL_6 02674 * @arg @ref LL_MDMA_CHANNEL_7 02675 * @arg @ref LL_MDMA_CHANNEL_8 02676 * @arg @ref LL_MDMA_CHANNEL_9 02677 * @arg @ref LL_MDMA_CHANNEL_10 02678 * @arg @ref LL_MDMA_CHANNEL_11 02679 * @arg @ref LL_MDMA_CHANNEL_12 02680 * @arg @ref LL_MDMA_CHANNEL_13 02681 * @arg @ref LL_MDMA_CHANNEL_14 02682 * @arg @ref LL_MDMA_CHANNEL_15 02683 * @param SrctAdrUpdateValue Min_Data = 0 and Max_Data = 0x0000FFFF 02684 * @param DestAdrUpdateValue Between Min_Data = 0 and Max_Data = 0x0000FFFF 02685 * @retval None 02686 */ 02687 __STATIC_INLINE void LL_MDMA_ConfigBlkRptAddrUpdateValue(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t SrctAdrUpdateValue, uint32_t DestAdrUpdateValue) 02688 { 02689 uint32_t mdma_base_addr = (uint32_t)MDMAx; 02690 02691 WRITE_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CBRUR, 02692 (SrctAdrUpdateValue & MDMA_CBRUR_SUV_Msk) | ((DestAdrUpdateValue << MDMA_CBRUR_DUV_Pos) & MDMA_CBRUR_DUV_Msk)); 02693 } 02694 02695 /** 02696 * @brief Set transfer Destination address Update Value. 02697 * @rmtoll CBRUR DUV LL_MDMA_SetBlkRptDestAddrUpdateValue 02698 * @param MDMAx MDMAx Instance 02699 * @param Channel This parameter can be one of the following values: 02700 * @arg @ref LL_MDMA_CHANNEL_0 02701 * @arg @ref LL_MDMA_CHANNEL_1 02702 * @arg @ref LL_MDMA_CHANNEL_2 02703 * @arg @ref LL_MDMA_CHANNEL_3 02704 * @arg @ref LL_MDMA_CHANNEL_4 02705 * @arg @ref LL_MDMA_CHANNEL_5 02706 * @arg @ref LL_MDMA_CHANNEL_6 02707 * @arg @ref LL_MDMA_CHANNEL_7 02708 * @arg @ref LL_MDMA_CHANNEL_8 02709 * @arg @ref LL_MDMA_CHANNEL_9 02710 * @arg @ref LL_MDMA_CHANNEL_10 02711 * @arg @ref LL_MDMA_CHANNEL_11 02712 * @arg @ref LL_MDMA_CHANNEL_12 02713 * @arg @ref LL_MDMA_CHANNEL_13 02714 * @arg @ref LL_MDMA_CHANNEL_14 02715 * @arg @ref LL_MDMA_CHANNEL_15 02716 * @param DestAdrUpdateValue Between 0 to 0x0000FFFF 02717 * @retval None 02718 */ 02719 __STATIC_INLINE void LL_MDMA_SetBlkRptDestAddrUpdateValue(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t DestAdrUpdateValue) 02720 { 02721 uint32_t mdma_base_addr = (uint32_t)MDMAx; 02722 02723 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CBRUR, MDMA_CBRUR_DUV, 02724 ((DestAdrUpdateValue << MDMA_CBRUR_DUV_Pos) & MDMA_CBRUR_DUV_Msk)); 02725 } 02726 02727 /** 02728 * @brief Get transfer Destination address Update Value. 02729 * @rmtoll CBRUR DUV LL_MDMA_GetBlkRptDestAddrUpdateValue 02730 * @param MDMAx MDMAx Instance 02731 * @param Channel This parameter can be one of the following values: 02732 * @arg @ref LL_MDMA_CHANNEL_0 02733 * @arg @ref LL_MDMA_CHANNEL_1 02734 * @arg @ref LL_MDMA_CHANNEL_2 02735 * @arg @ref LL_MDMA_CHANNEL_3 02736 * @arg @ref LL_MDMA_CHANNEL_4 02737 * @arg @ref LL_MDMA_CHANNEL_5 02738 * @arg @ref LL_MDMA_CHANNEL_6 02739 * @arg @ref LL_MDMA_CHANNEL_7 02740 * @arg @ref LL_MDMA_CHANNEL_8 02741 * @arg @ref LL_MDMA_CHANNEL_9 02742 * @arg @ref LL_MDMA_CHANNEL_10 02743 * @arg @ref LL_MDMA_CHANNEL_11 02744 * @arg @ref LL_MDMA_CHANNEL_12 02745 * @arg @ref LL_MDMA_CHANNEL_13 02746 * @arg @ref LL_MDMA_CHANNEL_14 02747 * @arg @ref LL_MDMA_CHANNEL_15 02748 * @retval Between 0 to 0x0000FFFF 02749 * @retval None 02750 */ 02751 __STATIC_INLINE uint32_t LL_MDMA_GetBlkRptDestAddrUpdateValue(MDMA_TypeDef *MDMAx, uint32_t Channel) 02752 { 02753 uint32_t mdma_base_addr = (uint32_t)MDMAx; 02754 02755 return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CBRUR, MDMA_CBRUR_DUV) >> MDMA_CBRUR_DUV_Pos); 02756 } 02757 02758 /** 02759 * @brief Set transfer Source address Update Value. 02760 * @rmtoll CBRUR SUV LL_MDMA_SetBlkRptSrcAddrUpdateValue 02761 * @param MDMAx MDMAx Instance 02762 * @param Channel This parameter can be one of the following values: 02763 * @arg @ref LL_MDMA_CHANNEL_0 02764 * @arg @ref LL_MDMA_CHANNEL_1 02765 * @arg @ref LL_MDMA_CHANNEL_2 02766 * @arg @ref LL_MDMA_CHANNEL_3 02767 * @arg @ref LL_MDMA_CHANNEL_4 02768 * @arg @ref LL_MDMA_CHANNEL_5 02769 * @arg @ref LL_MDMA_CHANNEL_6 02770 * @arg @ref LL_MDMA_CHANNEL_7 02771 * @arg @ref LL_MDMA_CHANNEL_8 02772 * @arg @ref LL_MDMA_CHANNEL_9 02773 * @arg @ref LL_MDMA_CHANNEL_10 02774 * @arg @ref LL_MDMA_CHANNEL_11 02775 * @arg @ref LL_MDMA_CHANNEL_12 02776 * @arg @ref LL_MDMA_CHANNEL_13 02777 * @arg @ref LL_MDMA_CHANNEL_14 02778 * @arg @ref LL_MDMA_CHANNEL_15 02779 * @param SrcAdrUpdateValue Between 0 to 0x0000FFFF 02780 * @retval None 02781 */ 02782 __STATIC_INLINE void LL_MDMA_SetBlkRptSrcAddrUpdateValue(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t SrcAdrUpdateValue) 02783 { 02784 uint32_t mdma_base_addr = (uint32_t)MDMAx; 02785 02786 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CBRUR, MDMA_CBRUR_SUV, SrcAdrUpdateValue); 02787 } 02788 02789 /** 02790 * @brief Get transfer Source address Update Value. 02791 * @rmtoll CBRUR SUV LL_MDMA_GetBlkRptSrcAddrUpdateValue 02792 * @param MDMAx MDMAx Instance 02793 * @param Channel This parameter can be one of the following values: 02794 * @arg @ref LL_MDMA_CHANNEL_0 02795 * @arg @ref LL_MDMA_CHANNEL_1 02796 * @arg @ref LL_MDMA_CHANNEL_2 02797 * @arg @ref LL_MDMA_CHANNEL_3 02798 * @arg @ref LL_MDMA_CHANNEL_4 02799 * @arg @ref LL_MDMA_CHANNEL_5 02800 * @arg @ref LL_MDMA_CHANNEL_6 02801 * @arg @ref LL_MDMA_CHANNEL_7 02802 * @arg @ref LL_MDMA_CHANNEL_8 02803 * @arg @ref LL_MDMA_CHANNEL_9 02804 * @arg @ref LL_MDMA_CHANNEL_10 02805 * @arg @ref LL_MDMA_CHANNEL_11 02806 * @arg @ref LL_MDMA_CHANNEL_12 02807 * @arg @ref LL_MDMA_CHANNEL_13 02808 * @arg @ref LL_MDMA_CHANNEL_14 02809 * @arg @ref LL_MDMA_CHANNEL_15 02810 * @retval Between 0 to 0x0000FFFF 02811 * @retval None 02812 */ 02813 __STATIC_INLINE uint32_t LL_MDMA_GetBlkRptSrcAddrUpdateValue(MDMA_TypeDef *MDMAx, uint32_t Channel) 02814 { 02815 uint32_t mdma_base_addr = (uint32_t)MDMAx; 02816 02817 return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CBRUR, MDMA_CBRUR_SUV)); 02818 } 02819 02820 /** 02821 * @brief Set transfer Link Address. 02822 * @rmtoll CLAR LAR LL_MDMA_SetLinkAddress 02823 * @param MDMAx MDMAx Instance 02824 * @param Channel This parameter can be one of the following values: 02825 * @arg @ref LL_MDMA_CHANNEL_0 02826 * @arg @ref LL_MDMA_CHANNEL_1 02827 * @arg @ref LL_MDMA_CHANNEL_2 02828 * @arg @ref LL_MDMA_CHANNEL_3 02829 * @arg @ref LL_MDMA_CHANNEL_4 02830 * @arg @ref LL_MDMA_CHANNEL_5 02831 * @arg @ref LL_MDMA_CHANNEL_6 02832 * @arg @ref LL_MDMA_CHANNEL_7 02833 * @arg @ref LL_MDMA_CHANNEL_8 02834 * @arg @ref LL_MDMA_CHANNEL_9 02835 * @arg @ref LL_MDMA_CHANNEL_10 02836 * @arg @ref LL_MDMA_CHANNEL_11 02837 * @arg @ref LL_MDMA_CHANNEL_12 02838 * @arg @ref LL_MDMA_CHANNEL_13 02839 * @arg @ref LL_MDMA_CHANNEL_14 02840 * @arg @ref LL_MDMA_CHANNEL_15 02841 * @param LinkAddress Between 0 to 0xFFFFFFFF 02842 * @retval None 02843 */ 02844 __STATIC_INLINE void LL_MDMA_SetLinkAddress(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t LinkAddress) 02845 { 02846 uint32_t mdma_base_addr = (uint32_t)MDMAx; 02847 02848 WRITE_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CLAR, LinkAddress); 02849 } 02850 02851 /** 02852 * @brief Get transfer Link Address. 02853 * @rmtoll CLAR LAR LL_MDMA_GetLinkAddress 02854 * @param MDMAx MDMAx Instance 02855 * @param Channel This parameter can be one of the following values: 02856 * @arg @ref LL_MDMA_CHANNEL_0 02857 * @arg @ref LL_MDMA_CHANNEL_1 02858 * @arg @ref LL_MDMA_CHANNEL_2 02859 * @arg @ref LL_MDMA_CHANNEL_3 02860 * @arg @ref LL_MDMA_CHANNEL_4 02861 * @arg @ref LL_MDMA_CHANNEL_5 02862 * @arg @ref LL_MDMA_CHANNEL_6 02863 * @arg @ref LL_MDMA_CHANNEL_7 02864 * @arg @ref LL_MDMA_CHANNEL_8 02865 * @arg @ref LL_MDMA_CHANNEL_9 02866 * @arg @ref LL_MDMA_CHANNEL_10 02867 * @arg @ref LL_MDMA_CHANNEL_11 02868 * @arg @ref LL_MDMA_CHANNEL_12 02869 * @arg @ref LL_MDMA_CHANNEL_13 02870 * @arg @ref LL_MDMA_CHANNEL_14 02871 * @arg @ref LL_MDMA_CHANNEL_15 02872 * @retval Between 0 to 0xFFFFFFFF 02873 * @retval None 02874 */ 02875 __STATIC_INLINE uint32_t LL_MDMA_GetLinkAddress(MDMA_TypeDef *MDMAx, uint32_t Channel) 02876 { 02877 uint32_t mdma_base_addr = (uint32_t)MDMAx; 02878 02879 return (READ_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CLAR)); 02880 } 02881 02882 /** 02883 * @brief Configure MDMA source and destination bus selection. 02884 * @rmtoll CTBR DBUS LL_MDMA_ConfigBusSelection\n 02885 * @rmtoll CTBR SBUS LL_MDMA_ConfigBusSelection 02886 * @param MDMAx MDMAx Instance 02887 * @param Channel This parameter can be one of the following values: 02888 * @arg @ref LL_MDMA_CHANNEL_0 02889 * @arg @ref LL_MDMA_CHANNEL_1 02890 * @arg @ref LL_MDMA_CHANNEL_2 02891 * @arg @ref LL_MDMA_CHANNEL_3 02892 * @arg @ref LL_MDMA_CHANNEL_4 02893 * @arg @ref LL_MDMA_CHANNEL_5 02894 * @arg @ref LL_MDMA_CHANNEL_6 02895 * @arg @ref LL_MDMA_CHANNEL_7 02896 * @arg @ref LL_MDMA_CHANNEL_8 02897 * @arg @ref LL_MDMA_CHANNEL_9 02898 * @arg @ref LL_MDMA_CHANNEL_10 02899 * @arg @ref LL_MDMA_CHANNEL_11 02900 * @arg @ref LL_MDMA_CHANNEL_12 02901 * @arg @ref LL_MDMA_CHANNEL_13 02902 * @arg @ref LL_MDMA_CHANNEL_14 02903 * @arg @ref LL_MDMA_CHANNEL_15 02904 * @param Configuration This parameter must be a combination of all the following values: 02905 * @arg @ref LL_MDMA_DEST_BUS_SYSTEM_AXI or @ref LL_MDMA_DEST_BUS_AHB_TCM 02906 * @arg @ref LL_MDMA_SRC_BUS_SYSTEM_AXI or @ref LL_MDMA_SRC_BUS_AHB_TCM 02907 * @retval None 02908 */ 02909 __STATIC_INLINE void LL_MDMA_ConfigBusSelection(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t Configuration) 02910 { 02911 uint32_t mdma_base_addr = (uint32_t)MDMAx; 02912 02913 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTBR, 02914 MDMA_CTBR_DBUS | MDMA_CTBR_SBUS, 02915 Configuration); 02916 } 02917 02918 /** 02919 * @brief Set Destination Bus Selection. 02920 * @rmtoll CTBR DBUS LL_MDMA_SetDestBusSelection 02921 * @param MDMAx MDMAx Instance 02922 * @param Channel This parameter can be one of the following values: 02923 * @arg @ref LL_MDMA_CHANNEL_0 02924 * @arg @ref LL_MDMA_CHANNEL_1 02925 * @arg @ref LL_MDMA_CHANNEL_2 02926 * @arg @ref LL_MDMA_CHANNEL_3 02927 * @arg @ref LL_MDMA_CHANNEL_4 02928 * @arg @ref LL_MDMA_CHANNEL_5 02929 * @arg @ref LL_MDMA_CHANNEL_6 02930 * @arg @ref LL_MDMA_CHANNEL_7 02931 * @arg @ref LL_MDMA_CHANNEL_8 02932 * @arg @ref LL_MDMA_CHANNEL_9 02933 * @arg @ref LL_MDMA_CHANNEL_10 02934 * @arg @ref LL_MDMA_CHANNEL_11 02935 * @arg @ref LL_MDMA_CHANNEL_12 02936 * @arg @ref LL_MDMA_CHANNEL_13 02937 * @arg @ref LL_MDMA_CHANNEL_14 02938 * @arg @ref LL_MDMA_CHANNEL_15 02939 * @param DestBus This parameter can be one of the following values: 02940 * @arg @ref LL_MDMA_DEST_BUS_SYSTEM_AXI 02941 * @arg @ref LL_MDMA_DEST_BUS_AHB_TCM 02942 * @retval None 02943 */ 02944 __STATIC_INLINE void LL_MDMA_SetDestBusSelection(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t DestBus) 02945 { 02946 uint32_t mdma_base_addr = (uint32_t)MDMAx; 02947 02948 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTBR, MDMA_CTBR_DBUS, DestBus); 02949 } 02950 02951 /** 02952 * @brief Get Destination Bus Selection. 02953 * @rmtoll CTBR DBUS LL_MDMA_GetDestBusSelection 02954 * @param MDMAx MDMAx Instance 02955 * @param Channel This parameter can be one of the following values: 02956 * @arg @ref LL_MDMA_CHANNEL_0 02957 * @arg @ref LL_MDMA_CHANNEL_1 02958 * @arg @ref LL_MDMA_CHANNEL_2 02959 * @arg @ref LL_MDMA_CHANNEL_3 02960 * @arg @ref LL_MDMA_CHANNEL_4 02961 * @arg @ref LL_MDMA_CHANNEL_5 02962 * @arg @ref LL_MDMA_CHANNEL_6 02963 * @arg @ref LL_MDMA_CHANNEL_7 02964 * @arg @ref LL_MDMA_CHANNEL_8 02965 * @arg @ref LL_MDMA_CHANNEL_9 02966 * @arg @ref LL_MDMA_CHANNEL_10 02967 * @arg @ref LL_MDMA_CHANNEL_11 02968 * @arg @ref LL_MDMA_CHANNEL_12 02969 * @arg @ref LL_MDMA_CHANNEL_13 02970 * @arg @ref LL_MDMA_CHANNEL_14 02971 * @arg @ref LL_MDMA_CHANNEL_15 02972 * @retval Returned value can be one of the following values: 02973 * @arg @ref LL_MDMA_DEST_BUS_SYSTEM_AXI 02974 * @arg @ref LL_MDMA_DEST_BUS_AHB_TCM 02975 * @retval None 02976 */ 02977 __STATIC_INLINE uint32_t LL_MDMA_GetDestBusSelection(MDMA_TypeDef *MDMAx, uint32_t Channel) 02978 { 02979 uint32_t mdma_base_addr = (uint32_t)MDMAx; 02980 02981 return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTBR, MDMA_CTBR_DBUS)); 02982 } 02983 02984 /** 02985 * @brief Set Source Bus Selection. 02986 * @rmtoll CTBR SBUS LL_MDMA_SetSrcBusSelection 02987 * @param MDMAx MDMAx Instance 02988 * @param Channel This parameter can be one of the following values: 02989 * @arg @ref LL_MDMA_CHANNEL_0 02990 * @arg @ref LL_MDMA_CHANNEL_1 02991 * @arg @ref LL_MDMA_CHANNEL_2 02992 * @arg @ref LL_MDMA_CHANNEL_3 02993 * @arg @ref LL_MDMA_CHANNEL_4 02994 * @arg @ref LL_MDMA_CHANNEL_5 02995 * @arg @ref LL_MDMA_CHANNEL_6 02996 * @arg @ref LL_MDMA_CHANNEL_7 02997 * @arg @ref LL_MDMA_CHANNEL_8 02998 * @arg @ref LL_MDMA_CHANNEL_9 02999 * @arg @ref LL_MDMA_CHANNEL_10 03000 * @arg @ref LL_MDMA_CHANNEL_11 03001 * @arg @ref LL_MDMA_CHANNEL_12 03002 * @arg @ref LL_MDMA_CHANNEL_13 03003 * @arg @ref LL_MDMA_CHANNEL_14 03004 * @arg @ref LL_MDMA_CHANNEL_15 03005 * @param SrcBus This parameter can be one of the following values: 03006 * @arg @ref LL_MDMA_SRC_BUS_SYSTEM_AXI 03007 * @arg @ref LL_MDMA_SRC_BUS_AHB_TCM 03008 * @retval None 03009 */ 03010 __STATIC_INLINE void LL_MDMA_SetSrcBusSelection(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t SrcBus) 03011 { 03012 uint32_t mdma_base_addr = (uint32_t)MDMAx; 03013 03014 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTBR, MDMA_CTBR_SBUS, SrcBus); 03015 } 03016 03017 /** 03018 * @brief Get Source Bus Selection. 03019 * @rmtoll CTBR SBUS LL_MDMA_GetSrcBusSelection 03020 * @param MDMAx MDMAx Instance 03021 * @param Channel This parameter can be one of the following values: 03022 * @arg @ref LL_MDMA_CHANNEL_0 03023 * @arg @ref LL_MDMA_CHANNEL_1 03024 * @arg @ref LL_MDMA_CHANNEL_2 03025 * @arg @ref LL_MDMA_CHANNEL_3 03026 * @arg @ref LL_MDMA_CHANNEL_4 03027 * @arg @ref LL_MDMA_CHANNEL_5 03028 * @arg @ref LL_MDMA_CHANNEL_6 03029 * @arg @ref LL_MDMA_CHANNEL_7 03030 * @arg @ref LL_MDMA_CHANNEL_8 03031 * @arg @ref LL_MDMA_CHANNEL_9 03032 * @arg @ref LL_MDMA_CHANNEL_10 03033 * @arg @ref LL_MDMA_CHANNEL_11 03034 * @arg @ref LL_MDMA_CHANNEL_12 03035 * @arg @ref LL_MDMA_CHANNEL_13 03036 * @arg @ref LL_MDMA_CHANNEL_14 03037 * @arg @ref LL_MDMA_CHANNEL_15 03038 * @retval Returned value can be one of the following values: 03039 * @arg @ref LL_MDMA_SRC_BUS_SYSTEM_AXI 03040 * @arg @ref LL_MDMA_SRC_BUS_AHB_TCM 03041 * @retval None 03042 */ 03043 __STATIC_INLINE uint32_t LL_MDMA_GetSrcBusSelection(MDMA_TypeDef *MDMAx, uint32_t Channel) 03044 { 03045 uint32_t mdma_base_addr = (uint32_t)MDMAx; 03046 03047 return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTBR, MDMA_CTBR_SBUS)); 03048 } 03049 03050 /** 03051 * @brief Set Transfer hardware trigger (Request). 03052 * @rmtoll CTBR TSEL LL_MDMA_SetHWTrigger 03053 * @param MDMAx MDMAx Instance 03054 * @param Channel This parameter can be one of the following values: 03055 * @arg @ref LL_MDMA_CHANNEL_0 03056 * @arg @ref LL_MDMA_CHANNEL_1 03057 * @arg @ref LL_MDMA_CHANNEL_2 03058 * @arg @ref LL_MDMA_CHANNEL_3 03059 * @arg @ref LL_MDMA_CHANNEL_4 03060 * @arg @ref LL_MDMA_CHANNEL_5 03061 * @arg @ref LL_MDMA_CHANNEL_6 03062 * @arg @ref LL_MDMA_CHANNEL_7 03063 * @arg @ref LL_MDMA_CHANNEL_8 03064 * @arg @ref LL_MDMA_CHANNEL_9 03065 * @arg @ref LL_MDMA_CHANNEL_10 03066 * @arg @ref LL_MDMA_CHANNEL_11 03067 * @arg @ref LL_MDMA_CHANNEL_12 03068 * @arg @ref LL_MDMA_CHANNEL_13 03069 * @arg @ref LL_MDMA_CHANNEL_14 03070 * @arg @ref LL_MDMA_CHANNEL_15 03071 * @param HWRequest This parameter can be one of the following values: 03072 * @arg @ref LL_MDMA_REQ_DMA1_STREAM0_TC 03073 * @arg @ref LL_MDMA_REQ_DMA1_STREAM1_TC 03074 * @arg @ref LL_MDMA_REQ_DMA1_STREAM2_TC 03075 * @arg @ref LL_MDMA_REQ_DMA1_STREAM3_TC 03076 * @arg @ref LL_MDMA_REQ_DMA1_STREAM4_TC 03077 * @arg @ref LL_MDMA_REQ_DMA1_STREAM5_TC 03078 * @arg @ref LL_MDMA_REQ_DMA1_STREAM6_TC 03079 * @arg @ref LL_MDMA_REQ_DMA1_STREAM7_TC 03080 * @arg @ref LL_MDMA_REQ_DMA2_STREAM0_TC 03081 * @arg @ref LL_MDMA_REQ_DMA2_STREAM1_TC 03082 * @arg @ref LL_MDMA_REQ_DMA2_STREAM2_TC 03083 * @arg @ref LL_MDMA_REQ_DMA2_STREAM3_TC 03084 * @arg @ref LL_MDMA_REQ_DMA2_STREAM4_TC 03085 * @arg @ref LL_MDMA_REQ_DMA2_STREAM5_TC 03086 * @arg @ref LL_MDMA_REQ_DMA2_STREAM6_TC 03087 * @arg @ref LL_MDMA_REQ_DMA2_STREAM7_TC 03088 * @arg @ref LL_MDMA_REQ_LTDC_LINE_IT (*) 03089 * @arg @ref LL_MDMA_REQ_JPEG_INFIFO_TH (*) 03090 * @arg @ref LL_MDMA_REQ_JPEG_INFIFO_NF (*) 03091 * @arg @ref LL_MDMA_REQ_JPEG_OUTFIFO_TH (*) 03092 * @arg @ref LL_MDMA_REQ_JPEG_OUTFIFO_NE (*) 03093 * @arg @ref LL_MDMA_REQ_JPEG_END_CONVERSION (*) 03094 * @arg @ref LL_MDMA_REQ_QUADSPI_FIFO_TH (*) 03095 * @arg @ref LL_MDMA_REQ_QUADSPI_TC (*) 03096 * @arg @ref LL_MDMA_REQ_OCTOSPI1_FIFO_TH (*) 03097 * @arg @ref LL_MDMA_REQ_OCTOSPI1_TC (*) 03098 * @arg @ref LL_MDMA_REQ_DMA2D_CLUT_TC 03099 * @arg @ref LL_MDMA_REQ_DMA2D_TC 03100 * @arg @ref LL_MDMA_REQ_DMA2D_TW 03101 * @arg @ref LL_MDMA_REQ_DSI_TEARING_EFFECT (*) 03102 * @arg @ref LL_MDMA_REQ_DSI_END_REFRESH (*) 03103 * @arg @ref LL_MDMA_REQ_SDMMC1_END_DATA 03104 * @arg @ref LL_MDMA_REQ_SDMMC1_DMA_ENDBUFFER (*) 03105 * @arg @ref LL_MDMA_REQ_SDMMC1_COMMAND_END (*) 03106 * @arg @ref LL_MDMA_REQ_OCTOSPI2_FIFO_TH (*) 03107 * @arg @ref LL_MDMA_REQ_OCTOSPI2_TC (*) 03108 * @note (*) Availability depends on devices. 03109 * @retval None 03110 */ 03111 __STATIC_INLINE void LL_MDMA_SetHWTrigger(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t HWRequest) 03112 { 03113 uint32_t mdma_base_addr = (uint32_t)MDMAx; 03114 03115 MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTBR, MDMA_CTBR_TSEL, HWRequest); 03116 } 03117 03118 /** 03119 * @brief Get Transfer hardware trigger (Request). 03120 * @rmtoll CTBR TSEL LL_MDMA_GetHWTrigger 03121 * @param MDMAx MDMAx Instance 03122 * @param Channel This parameter can be one of the following values: 03123 * @arg @ref LL_MDMA_CHANNEL_0 03124 * @arg @ref LL_MDMA_CHANNEL_1 03125 * @arg @ref LL_MDMA_CHANNEL_2 03126 * @arg @ref LL_MDMA_CHANNEL_3 03127 * @arg @ref LL_MDMA_CHANNEL_4 03128 * @arg @ref LL_MDMA_CHANNEL_5 03129 * @arg @ref LL_MDMA_CHANNEL_6 03130 * @arg @ref LL_MDMA_CHANNEL_7 03131 * @arg @ref LL_MDMA_CHANNEL_8 03132 * @arg @ref LL_MDMA_CHANNEL_9 03133 * @arg @ref LL_MDMA_CHANNEL_10 03134 * @arg @ref LL_MDMA_CHANNEL_11 03135 * @arg @ref LL_MDMA_CHANNEL_12 03136 * @arg @ref LL_MDMA_CHANNEL_13 03137 * @arg @ref LL_MDMA_CHANNEL_14 03138 * @arg @ref LL_MDMA_CHANNEL_15 03139 * @retval Returned value can be one of the following values: 03140 * @arg @ref LL_MDMA_REQ_DMA1_STREAM0_TC 03141 * @arg @ref LL_MDMA_REQ_DMA1_STREAM1_TC 03142 * @arg @ref LL_MDMA_REQ_DMA1_STREAM2_TC 03143 * @arg @ref LL_MDMA_REQ_DMA1_STREAM3_TC 03144 * @arg @ref LL_MDMA_REQ_DMA1_STREAM4_TC 03145 * @arg @ref LL_MDMA_REQ_DMA1_STREAM5_TC 03146 * @arg @ref LL_MDMA_REQ_DMA1_STREAM6_TC 03147 * @arg @ref LL_MDMA_REQ_DMA1_STREAM7_TC 03148 * @arg @ref LL_MDMA_REQ_DMA2_STREAM0_TC 03149 * @arg @ref LL_MDMA_REQ_DMA2_STREAM1_TC 03150 * @arg @ref LL_MDMA_REQ_DMA2_STREAM2_TC 03151 * @arg @ref LL_MDMA_REQ_DMA2_STREAM3_TC 03152 * @arg @ref LL_MDMA_REQ_DMA2_STREAM4_TC 03153 * @arg @ref LL_MDMA_REQ_DMA2_STREAM5_TC 03154 * @arg @ref LL_MDMA_REQ_DMA2_STREAM6_TC 03155 * @arg @ref LL_MDMA_REQ_DMA2_STREAM7_TC 03156 * @arg @ref LL_MDMA_REQ_LTDC_LINE_IT (*) 03157 * @arg @ref LL_MDMA_REQ_JPEG_INFIFO_TH (*) 03158 * @arg @ref LL_MDMA_REQ_JPEG_INFIFO_NF (*) 03159 * @arg @ref LL_MDMA_REQ_JPEG_OUTFIFO_TH (*) 03160 * @arg @ref LL_MDMA_REQ_JPEG_OUTFIFO_NE (*) 03161 * @arg @ref LL_MDMA_REQ_JPEG_END_CONVERSION (*) 03162 * @arg @ref LL_MDMA_REQ_QUADSPI_FIFO_TH (*) 03163 * @arg @ref LL_MDMA_REQ_QUADSPI_TC (*) 03164 * @arg @ref LL_MDMA_REQ_OCTOSPI1_FIFO_TH (*) 03165 * @arg @ref LL_MDMA_REQ_OCTOSPI1_TC (*) 03166 * @arg @ref LL_MDMA_REQ_DMA2D_CLUT_TC 03167 * @arg @ref LL_MDMA_REQ_DMA2D_TC 03168 * @arg @ref LL_MDMA_REQ_DMA2D_TW 03169 * @arg @ref LL_MDMA_REQ_DSI_TEARING_EFFECT (*) 03170 * @arg @ref LL_MDMA_REQ_DSI_END_REFRESH (*) 03171 * @arg @ref LL_MDMA_REQ_SDMMC1_END_DATA 03172 * @arg @ref LL_MDMA_REQ_SDMMC1_DMA_ENDBUFFER (*) 03173 * @arg @ref LL_MDMA_REQ_SDMMC1_COMMAND_END (*) 03174 * @arg @ref LL_MDMA_REQ_OCTOSPI2_FIFO_TH (*) 03175 * @arg @ref LL_MDMA_REQ_OCTOSPI2_TC (*) 03176 * @note (*) Availability depends on devices. 03177 * @retval None 03178 */ 03179 __STATIC_INLINE uint32_t LL_MDMA_GetHWTrigger(MDMA_TypeDef *MDMAx, uint32_t Channel) 03180 { 03181 uint32_t mdma_base_addr = (uint32_t)MDMAx; 03182 03183 return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTBR, MDMA_CTBR_TSEL)); 03184 } 03185 03186 /** 03187 * @brief Set Mask Address. 03188 * @rmtoll CMAR MAR LL_MDMA_SetMaskAddress 03189 * @param MDMAx MDMAx Instance 03190 * @param Channel This parameter can be one of the following values: 03191 * @arg @ref LL_MDMA_CHANNEL_0 03192 * @arg @ref LL_MDMA_CHANNEL_1 03193 * @arg @ref LL_MDMA_CHANNEL_2 03194 * @arg @ref LL_MDMA_CHANNEL_3 03195 * @arg @ref LL_MDMA_CHANNEL_4 03196 * @arg @ref LL_MDMA_CHANNEL_5 03197 * @arg @ref LL_MDMA_CHANNEL_6 03198 * @arg @ref LL_MDMA_CHANNEL_7 03199 * @arg @ref LL_MDMA_CHANNEL_8 03200 * @arg @ref LL_MDMA_CHANNEL_9 03201 * @arg @ref LL_MDMA_CHANNEL_10 03202 * @arg @ref LL_MDMA_CHANNEL_11 03203 * @arg @ref LL_MDMA_CHANNEL_12 03204 * @arg @ref LL_MDMA_CHANNEL_13 03205 * @arg @ref LL_MDMA_CHANNEL_14 03206 * @arg @ref LL_MDMA_CHANNEL_15 03207 * @param MaskAddress Between 0 to 0xFFFFFFFF 03208 * @retval None 03209 */ 03210 __STATIC_INLINE void LL_MDMA_SetMaskAddress(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t MaskAddress) 03211 { 03212 uint32_t mdma_base_addr = (uint32_t)MDMAx; 03213 03214 WRITE_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CMAR, MaskAddress); 03215 } 03216 03217 /** 03218 * @brief Get Mask Address. 03219 * @rmtoll CMAR MAR LL_MDMA_GetMaskAddress 03220 * @param MDMAx MDMAx Instance 03221 * @param Channel This parameter can be one of the following values: 03222 * @arg @ref LL_MDMA_CHANNEL_0 03223 * @arg @ref LL_MDMA_CHANNEL_1 03224 * @arg @ref LL_MDMA_CHANNEL_2 03225 * @arg @ref LL_MDMA_CHANNEL_3 03226 * @arg @ref LL_MDMA_CHANNEL_4 03227 * @arg @ref LL_MDMA_CHANNEL_5 03228 * @arg @ref LL_MDMA_CHANNEL_6 03229 * @arg @ref LL_MDMA_CHANNEL_7 03230 * @arg @ref LL_MDMA_CHANNEL_8 03231 * @arg @ref LL_MDMA_CHANNEL_9 03232 * @arg @ref LL_MDMA_CHANNEL_10 03233 * @arg @ref LL_MDMA_CHANNEL_11 03234 * @arg @ref LL_MDMA_CHANNEL_12 03235 * @arg @ref LL_MDMA_CHANNEL_13 03236 * @arg @ref LL_MDMA_CHANNEL_14 03237 * @arg @ref LL_MDMA_CHANNEL_15 03238 * @retval Between 0 to 0xFFFFFFFF 03239 * @retval None 03240 */ 03241 __STATIC_INLINE uint32_t LL_MDMA_GetMaskAddress(MDMA_TypeDef *MDMAx, uint32_t Channel) 03242 { 03243 uint32_t mdma_base_addr = (uint32_t)MDMAx; 03244 03245 return (READ_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CMAR)); 03246 } 03247 03248 /** 03249 * @brief Set Mask Data. 03250 * @rmtoll CMDR MDR LL_MDMA_SetMaskData 03251 * @param MDMAx MDMAx Instance 03252 * @param Channel This parameter can be one of the following values: 03253 * @arg @ref LL_MDMA_CHANNEL_0 03254 * @arg @ref LL_MDMA_CHANNEL_1 03255 * @arg @ref LL_MDMA_CHANNEL_2 03256 * @arg @ref LL_MDMA_CHANNEL_3 03257 * @arg @ref LL_MDMA_CHANNEL_4 03258 * @arg @ref LL_MDMA_CHANNEL_5 03259 * @arg @ref LL_MDMA_CHANNEL_6 03260 * @arg @ref LL_MDMA_CHANNEL_7 03261 * @arg @ref LL_MDMA_CHANNEL_8 03262 * @arg @ref LL_MDMA_CHANNEL_9 03263 * @arg @ref LL_MDMA_CHANNEL_10 03264 * @arg @ref LL_MDMA_CHANNEL_11 03265 * @arg @ref LL_MDMA_CHANNEL_12 03266 * @arg @ref LL_MDMA_CHANNEL_13 03267 * @arg @ref LL_MDMA_CHANNEL_14 03268 * @arg @ref LL_MDMA_CHANNEL_15 03269 * @param MaskData Between 0 to 0xFFFFFFFF 03270 * @retval None 03271 */ 03272 __STATIC_INLINE void LL_MDMA_SetMaskData(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t MaskData) 03273 { 03274 uint32_t mdma_base_addr = (uint32_t)MDMAx; 03275 03276 WRITE_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CMDR, MaskData); 03277 } 03278 03279 /** 03280 * @brief Get Mask Data. 03281 * @rmtoll CMDR MDR LL_MDMA_GetMaskData 03282 * @param MDMAx MDMAx Instance 03283 * @param Channel This parameter can be one of the following values: 03284 * @arg @ref LL_MDMA_CHANNEL_0 03285 * @arg @ref LL_MDMA_CHANNEL_1 03286 * @arg @ref LL_MDMA_CHANNEL_2 03287 * @arg @ref LL_MDMA_CHANNEL_3 03288 * @arg @ref LL_MDMA_CHANNEL_4 03289 * @arg @ref LL_MDMA_CHANNEL_5 03290 * @arg @ref LL_MDMA_CHANNEL_6 03291 * @arg @ref LL_MDMA_CHANNEL_7 03292 * @arg @ref LL_MDMA_CHANNEL_8 03293 * @arg @ref LL_MDMA_CHANNEL_9 03294 * @arg @ref LL_MDMA_CHANNEL_10 03295 * @arg @ref LL_MDMA_CHANNEL_11 03296 * @arg @ref LL_MDMA_CHANNEL_12 03297 * @arg @ref LL_MDMA_CHANNEL_13 03298 * @arg @ref LL_MDMA_CHANNEL_14 03299 * @arg @ref LL_MDMA_CHANNEL_15 03300 * @retval Between 0 to 0xFFFFFFFF 03301 * @retval None 03302 */ 03303 __STATIC_INLINE uint32_t LL_MDMA_GetMaskData(MDMA_TypeDef *MDMAx, uint32_t Channel) 03304 { 03305 uint32_t mdma_base_addr = (uint32_t)MDMAx; 03306 03307 return (READ_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CMDR)); 03308 } 03309 03310 /** 03311 * @brief Get Transfer Error Direction. 03312 * @rmtoll CESR TED LL_MDMA_GetXferErrorDirection 03313 * @param MDMAx MDMAx Instance 03314 * @param Channel This parameter can be one of the following values: 03315 * @arg @ref LL_MDMA_CHANNEL_0 03316 * @arg @ref LL_MDMA_CHANNEL_1 03317 * @arg @ref LL_MDMA_CHANNEL_2 03318 * @arg @ref LL_MDMA_CHANNEL_3 03319 * @arg @ref LL_MDMA_CHANNEL_4 03320 * @arg @ref LL_MDMA_CHANNEL_5 03321 * @arg @ref LL_MDMA_CHANNEL_6 03322 * @arg @ref LL_MDMA_CHANNEL_7 03323 * @arg @ref LL_MDMA_CHANNEL_8 03324 * @arg @ref LL_MDMA_CHANNEL_9 03325 * @arg @ref LL_MDMA_CHANNEL_10 03326 * @arg @ref LL_MDMA_CHANNEL_11 03327 * @arg @ref LL_MDMA_CHANNEL_12 03328 * @arg @ref LL_MDMA_CHANNEL_13 03329 * @arg @ref LL_MDMA_CHANNEL_14 03330 * @arg @ref LL_MDMA_CHANNEL_15 03331 * @retval Returned value can be one of the following values: 03332 * @arg @ref LL_MDMA_READ_ERROR 03333 * @arg @ref LL_MDMA_WRITE_ERROR 03334 * @retval None 03335 */ 03336 __STATIC_INLINE uint32_t LL_MDMA_GetXferErrorDirection(MDMA_TypeDef *MDMAx, uint32_t Channel) 03337 { 03338 uint32_t mdma_base_addr = (uint32_t)MDMAx; 03339 03340 return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CESR, MDMA_CESR_TED)); 03341 } 03342 03343 /** 03344 * @brief Get Transfer Error LSB Address. 03345 * @rmtoll CESR TEA LL_MDMA_GetXferErrorLSBAddress 03346 * @param MDMAx MDMAx Instance 03347 * @param Channel This parameter can be one of the following values: 03348 * @arg @ref LL_MDMA_CHANNEL_0 03349 * @arg @ref LL_MDMA_CHANNEL_1 03350 * @arg @ref LL_MDMA_CHANNEL_2 03351 * @arg @ref LL_MDMA_CHANNEL_3 03352 * @arg @ref LL_MDMA_CHANNEL_4 03353 * @arg @ref LL_MDMA_CHANNEL_5 03354 * @arg @ref LL_MDMA_CHANNEL_6 03355 * @arg @ref LL_MDMA_CHANNEL_7 03356 * @arg @ref LL_MDMA_CHANNEL_8 03357 * @arg @ref LL_MDMA_CHANNEL_9 03358 * @arg @ref LL_MDMA_CHANNEL_10 03359 * @arg @ref LL_MDMA_CHANNEL_11 03360 * @arg @ref LL_MDMA_CHANNEL_12 03361 * @arg @ref LL_MDMA_CHANNEL_13 03362 * @arg @ref LL_MDMA_CHANNEL_14 03363 * @arg @ref LL_MDMA_CHANNEL_15 03364 * @retval Between 0 to 0x0000007F 03365 * @retval None 03366 */ 03367 __STATIC_INLINE uint32_t LL_MDMA_GetXferErrorLSBAddress(MDMA_TypeDef *MDMAx, uint32_t Channel) 03368 { 03369 uint32_t mdma_base_addr = (uint32_t)MDMAx; 03370 03371 return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CESR, MDMA_CESR_TEA)); 03372 } 03373 03374 /** 03375 * @} 03376 */ 03377 03378 /** @defgroup MDMA_LL_EF_FLAG_Management FLAG_Management 03379 * @{ 03380 */ 03381 03382 /** 03383 * @brief Get MDMA Channel x Global Interrupt flag. 03384 * @rmtoll GISR0 GIFx LL_MDMA_IsActiveFlag_GI 03385 * @param MDMAx MDMAx Instance 03386 * @param Channel This parameter can be one of the following values: 03387 * @arg @ref LL_MDMA_CHANNEL_0 03388 * @arg @ref LL_MDMA_CHANNEL_1 03389 * @arg @ref LL_MDMA_CHANNEL_2 03390 * @arg @ref LL_MDMA_CHANNEL_3 03391 * @arg @ref LL_MDMA_CHANNEL_4 03392 * @arg @ref LL_MDMA_CHANNEL_5 03393 * @arg @ref LL_MDMA_CHANNEL_6 03394 * @arg @ref LL_MDMA_CHANNEL_7 03395 * @arg @ref LL_MDMA_CHANNEL_8 03396 * @arg @ref LL_MDMA_CHANNEL_9 03397 * @arg @ref LL_MDMA_CHANNEL_10 03398 * @arg @ref LL_MDMA_CHANNEL_11 03399 * @arg @ref LL_MDMA_CHANNEL_12 03400 * @arg @ref LL_MDMA_CHANNEL_13 03401 * @arg @ref LL_MDMA_CHANNEL_14 03402 * @arg @ref LL_MDMA_CHANNEL_15 03403 * @retval State of bit (1 or 0). 03404 */ 03405 __STATIC_INLINE uint32_t LL_MDMA_IsActiveFlag_GI(MDMA_TypeDef *MDMAx, uint32_t Channel) 03406 { 03407 return ((READ_BIT(MDMAx->GISR0 ,(MDMA_GISR0_GIF0 << (Channel & 0x0000000FU)))==(MDMA_GISR0_GIF0 << (Channel & 0x0000000FU))) ? 1UL : 0UL); 03408 } 03409 03410 /** 03411 * @brief Get MDMA Channel x Transfer Error interrupt flag. 03412 * @rmtoll CISR TEIF LL_MDMA_IsActiveFlag_TE 03413 * @param MDMAx MDMAx Instance 03414 * @param Channel This parameter can be one of the following values: 03415 * @arg @ref LL_MDMA_CHANNEL_0 03416 * @arg @ref LL_MDMA_CHANNEL_1 03417 * @arg @ref LL_MDMA_CHANNEL_2 03418 * @arg @ref LL_MDMA_CHANNEL_3 03419 * @arg @ref LL_MDMA_CHANNEL_4 03420 * @arg @ref LL_MDMA_CHANNEL_5 03421 * @arg @ref LL_MDMA_CHANNEL_6 03422 * @arg @ref LL_MDMA_CHANNEL_7 03423 * @arg @ref LL_MDMA_CHANNEL_8 03424 * @arg @ref LL_MDMA_CHANNEL_9 03425 * @arg @ref LL_MDMA_CHANNEL_10 03426 * @arg @ref LL_MDMA_CHANNEL_11 03427 * @arg @ref LL_MDMA_CHANNEL_12 03428 * @arg @ref LL_MDMA_CHANNEL_13 03429 * @arg @ref LL_MDMA_CHANNEL_14 03430 * @arg @ref LL_MDMA_CHANNEL_15 03431 * @retval State of bit (1 or 0). 03432 */ 03433 __STATIC_INLINE uint32_t LL_MDMA_IsActiveFlag_TE(MDMA_TypeDef *MDMAx, uint32_t Channel) 03434 { 03435 uint32_t mdma_base_addr = (uint32_t)MDMAx; 03436 03437 return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CISR, MDMA_CISR_TEIF) == (MDMA_CISR_TEIF)) ? 1UL : 0UL); 03438 } 03439 03440 /** 03441 * @brief Get MDMA Channel x Channel Transfer Complete interrupt flag. 03442 * @rmtoll CISR CTCIF LL_MDMA_IsActiveFlag_CTC 03443 * @param MDMAx MDMAx Instance 03444 * @param Channel This parameter can be one of the following values: 03445 * @arg @ref LL_MDMA_CHANNEL_0 03446 * @arg @ref LL_MDMA_CHANNEL_1 03447 * @arg @ref LL_MDMA_CHANNEL_2 03448 * @arg @ref LL_MDMA_CHANNEL_3 03449 * @arg @ref LL_MDMA_CHANNEL_4 03450 * @arg @ref LL_MDMA_CHANNEL_5 03451 * @arg @ref LL_MDMA_CHANNEL_6 03452 * @arg @ref LL_MDMA_CHANNEL_7 03453 * @arg @ref LL_MDMA_CHANNEL_8 03454 * @arg @ref LL_MDMA_CHANNEL_9 03455 * @arg @ref LL_MDMA_CHANNEL_10 03456 * @arg @ref LL_MDMA_CHANNEL_11 03457 * @arg @ref LL_MDMA_CHANNEL_12 03458 * @arg @ref LL_MDMA_CHANNEL_13 03459 * @arg @ref LL_MDMA_CHANNEL_14 03460 * @arg @ref LL_MDMA_CHANNEL_15 03461 * @retval State of bit (1 or 0). 03462 */ 03463 __STATIC_INLINE uint32_t LL_MDMA_IsActiveFlag_CTC(MDMA_TypeDef *MDMAx, uint32_t Channel) 03464 { 03465 uint32_t mdma_base_addr = (uint32_t)MDMAx; 03466 03467 return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CISR, MDMA_CISR_CTCIF) == (MDMA_CISR_CTCIF)) ? 1UL : 0UL); 03468 } 03469 03470 /** 03471 * @brief Get MDMA Channel x Block Repeat Transfer complete interrupt flag. 03472 * @rmtoll CISR BRTIF LL_MDMA_IsActiveFlag_BRT 03473 * @param MDMAx MDMAx Instance 03474 * @param Channel This parameter can be one of the following values: 03475 * @arg @ref LL_MDMA_CHANNEL_0 03476 * @arg @ref LL_MDMA_CHANNEL_1 03477 * @arg @ref LL_MDMA_CHANNEL_2 03478 * @arg @ref LL_MDMA_CHANNEL_3 03479 * @arg @ref LL_MDMA_CHANNEL_4 03480 * @arg @ref LL_MDMA_CHANNEL_5 03481 * @arg @ref LL_MDMA_CHANNEL_6 03482 * @arg @ref LL_MDMA_CHANNEL_7 03483 * @arg @ref LL_MDMA_CHANNEL_8 03484 * @arg @ref LL_MDMA_CHANNEL_9 03485 * @arg @ref LL_MDMA_CHANNEL_10 03486 * @arg @ref LL_MDMA_CHANNEL_11 03487 * @arg @ref LL_MDMA_CHANNEL_12 03488 * @arg @ref LL_MDMA_CHANNEL_13 03489 * @arg @ref LL_MDMA_CHANNEL_14 03490 * @arg @ref LL_MDMA_CHANNEL_15 03491 * @retval State of bit (1 or 0). 03492 */ 03493 __STATIC_INLINE uint32_t LL_MDMA_IsActiveFlag_BRT(MDMA_TypeDef *MDMAx, uint32_t Channel) 03494 { 03495 uint32_t mdma_base_addr = (uint32_t)MDMAx; 03496 03497 return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CISR, MDMA_CISR_BRTIF) == (MDMA_CISR_BRTIF)) ? 1UL : 0UL); 03498 } 03499 03500 /** 03501 * @brief Get MDMA Channel x Block Transfer complete interrupt flag. 03502 * @rmtoll CISR BTIF LL_MDMA_IsActiveFlag_BT 03503 * @param MDMAx MDMAx Instance 03504 * @param Channel This parameter can be one of the following values: 03505 * @arg @ref LL_MDMA_CHANNEL_0 03506 * @arg @ref LL_MDMA_CHANNEL_1 03507 * @arg @ref LL_MDMA_CHANNEL_2 03508 * @arg @ref LL_MDMA_CHANNEL_3 03509 * @arg @ref LL_MDMA_CHANNEL_4 03510 * @arg @ref LL_MDMA_CHANNEL_5 03511 * @arg @ref LL_MDMA_CHANNEL_6 03512 * @arg @ref LL_MDMA_CHANNEL_7 03513 * @arg @ref LL_MDMA_CHANNEL_8 03514 * @arg @ref LL_MDMA_CHANNEL_9 03515 * @arg @ref LL_MDMA_CHANNEL_10 03516 * @arg @ref LL_MDMA_CHANNEL_11 03517 * @arg @ref LL_MDMA_CHANNEL_12 03518 * @arg @ref LL_MDMA_CHANNEL_13 03519 * @arg @ref LL_MDMA_CHANNEL_14 03520 * @arg @ref LL_MDMA_CHANNEL_15 03521 * @retval State of bit (1 or 0). 03522 */ 03523 __STATIC_INLINE uint32_t LL_MDMA_IsActiveFlag_BT(MDMA_TypeDef *MDMAx, uint32_t Channel) 03524 { 03525 uint32_t mdma_base_addr = (uint32_t)MDMAx; 03526 03527 return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CISR, MDMA_CISR_BTIF) == (MDMA_CISR_BTIF)) ? 1UL : 0UL); 03528 } 03529 03530 /** 03531 * @brief Get MDMA Channel x buffer transfer complete interrupt flag. 03532 * @rmtoll CISR TCIF LL_MDMA_IsActiveFlag_TC 03533 * @param MDMAx MDMAx Instance 03534 * @param Channel This parameter can be one of the following values: 03535 * @arg @ref LL_MDMA_CHANNEL_0 03536 * @arg @ref LL_MDMA_CHANNEL_1 03537 * @arg @ref LL_MDMA_CHANNEL_2 03538 * @arg @ref LL_MDMA_CHANNEL_3 03539 * @arg @ref LL_MDMA_CHANNEL_4 03540 * @arg @ref LL_MDMA_CHANNEL_5 03541 * @arg @ref LL_MDMA_CHANNEL_6 03542 * @arg @ref LL_MDMA_CHANNEL_7 03543 * @arg @ref LL_MDMA_CHANNEL_8 03544 * @arg @ref LL_MDMA_CHANNEL_9 03545 * @arg @ref LL_MDMA_CHANNEL_10 03546 * @arg @ref LL_MDMA_CHANNEL_11 03547 * @arg @ref LL_MDMA_CHANNEL_12 03548 * @arg @ref LL_MDMA_CHANNEL_13 03549 * @arg @ref LL_MDMA_CHANNEL_14 03550 * @arg @ref LL_MDMA_CHANNEL_15 03551 * @retval State of bit (1 or 0). 03552 */ 03553 __STATIC_INLINE uint32_t LL_MDMA_IsActiveFlag_TC(MDMA_TypeDef *MDMAx, uint32_t Channel) 03554 { 03555 uint32_t mdma_base_addr = (uint32_t)MDMAx; 03556 03557 return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CISR, MDMA_CISR_TCIF) == (MDMA_CISR_TCIF)) ? 1UL : 0UL); 03558 } 03559 03560 /** 03561 * @brief Get MDMA Channel x ReQuest Active flag. 03562 * @rmtoll CISR CRQA LL_MDMA_IsActiveFlag_CRQA 03563 * @param MDMAx MDMAx Instance 03564 * @param Channel This parameter can be one of the following values: 03565 * @arg @ref LL_MDMA_CHANNEL_0 03566 * @arg @ref LL_MDMA_CHANNEL_1 03567 * @arg @ref LL_MDMA_CHANNEL_2 03568 * @arg @ref LL_MDMA_CHANNEL_3 03569 * @arg @ref LL_MDMA_CHANNEL_4 03570 * @arg @ref LL_MDMA_CHANNEL_5 03571 * @arg @ref LL_MDMA_CHANNEL_6 03572 * @arg @ref LL_MDMA_CHANNEL_7 03573 * @arg @ref LL_MDMA_CHANNEL_8 03574 * @arg @ref LL_MDMA_CHANNEL_9 03575 * @arg @ref LL_MDMA_CHANNEL_10 03576 * @arg @ref LL_MDMA_CHANNEL_11 03577 * @arg @ref LL_MDMA_CHANNEL_12 03578 * @arg @ref LL_MDMA_CHANNEL_13 03579 * @arg @ref LL_MDMA_CHANNEL_14 03580 * @arg @ref LL_MDMA_CHANNEL_15 03581 * @retval State of bit (1 or 0). 03582 */ 03583 __STATIC_INLINE uint32_t LL_MDMA_IsActiveFlag_CRQA(MDMA_TypeDef *MDMAx, uint32_t Channel) 03584 { 03585 uint32_t mdma_base_addr = (uint32_t)MDMAx; 03586 03587 return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CISR, MDMA_CISR_CRQA) == (MDMA_CISR_CRQA)) ? 1UL : 0UL); 03588 } 03589 03590 /** 03591 * @brief Get MDMA Channel x Block Size Error flag. 03592 * @rmtoll CESR BSE LL_MDMA_IsActiveFlag_BSE 03593 * @param MDMAx MDMAx Instance 03594 * @param Channel This parameter can be one of the following values: 03595 * @arg @ref LL_MDMA_CHANNEL_0 03596 * @arg @ref LL_MDMA_CHANNEL_1 03597 * @arg @ref LL_MDMA_CHANNEL_2 03598 * @arg @ref LL_MDMA_CHANNEL_3 03599 * @arg @ref LL_MDMA_CHANNEL_4 03600 * @arg @ref LL_MDMA_CHANNEL_5 03601 * @arg @ref LL_MDMA_CHANNEL_6 03602 * @arg @ref LL_MDMA_CHANNEL_7 03603 * @arg @ref LL_MDMA_CHANNEL_8 03604 * @arg @ref LL_MDMA_CHANNEL_9 03605 * @arg @ref LL_MDMA_CHANNEL_10 03606 * @arg @ref LL_MDMA_CHANNEL_11 03607 * @arg @ref LL_MDMA_CHANNEL_12 03608 * @arg @ref LL_MDMA_CHANNEL_13 03609 * @arg @ref LL_MDMA_CHANNEL_14 03610 * @arg @ref LL_MDMA_CHANNEL_15 03611 * @retval State of bit (1 or 0). 03612 */ 03613 __STATIC_INLINE uint32_t LL_MDMA_IsActiveFlag_BSE(MDMA_TypeDef *MDMAx, uint32_t Channel) 03614 { 03615 uint32_t mdma_base_addr = (uint32_t)MDMAx; 03616 03617 return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CESR, MDMA_CESR_BSE) == (MDMA_CESR_BSE)) ? 1UL : 0UL); 03618 } 03619 03620 /** 03621 * @brief Get MDMA Channel x Address/Size Error flag. 03622 * @rmtoll CESR ASE LL_MDMA_IsActiveFlag_ASE 03623 * @param MDMAx MDMAx Instance 03624 * @param Channel This parameter can be one of the following values: 03625 * @arg @ref LL_MDMA_CHANNEL_0 03626 * @arg @ref LL_MDMA_CHANNEL_1 03627 * @arg @ref LL_MDMA_CHANNEL_2 03628 * @arg @ref LL_MDMA_CHANNEL_3 03629 * @arg @ref LL_MDMA_CHANNEL_4 03630 * @arg @ref LL_MDMA_CHANNEL_5 03631 * @arg @ref LL_MDMA_CHANNEL_6 03632 * @arg @ref LL_MDMA_CHANNEL_7 03633 * @arg @ref LL_MDMA_CHANNEL_8 03634 * @arg @ref LL_MDMA_CHANNEL_9 03635 * @arg @ref LL_MDMA_CHANNEL_10 03636 * @arg @ref LL_MDMA_CHANNEL_11 03637 * @arg @ref LL_MDMA_CHANNEL_12 03638 * @arg @ref LL_MDMA_CHANNEL_13 03639 * @arg @ref LL_MDMA_CHANNEL_14 03640 * @arg @ref LL_MDMA_CHANNEL_15 03641 * @retval State of bit (1 or 0). 03642 */ 03643 __STATIC_INLINE uint32_t LL_MDMA_IsActiveFlag_ASE(MDMA_TypeDef *MDMAx, uint32_t Channel) 03644 { 03645 uint32_t mdma_base_addr = (uint32_t)MDMAx; 03646 03647 return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CESR, MDMA_CESR_ASE) == (MDMA_CESR_ASE)) ? 1UL : 0UL); 03648 } 03649 03650 /** 03651 * @brief Get MDMA Channel x Transfer Error Mask Data flag. 03652 * @rmtoll CESR TEMD LL_MDMA_IsActiveFlag_TEMD 03653 * @param MDMAx MDMAx Instance 03654 * @param Channel This parameter can be one of the following values: 03655 * @arg @ref LL_MDMA_CHANNEL_0 03656 * @arg @ref LL_MDMA_CHANNEL_1 03657 * @arg @ref LL_MDMA_CHANNEL_2 03658 * @arg @ref LL_MDMA_CHANNEL_3 03659 * @arg @ref LL_MDMA_CHANNEL_4 03660 * @arg @ref LL_MDMA_CHANNEL_5 03661 * @arg @ref LL_MDMA_CHANNEL_6 03662 * @arg @ref LL_MDMA_CHANNEL_7 03663 * @arg @ref LL_MDMA_CHANNEL_8 03664 * @arg @ref LL_MDMA_CHANNEL_9 03665 * @arg @ref LL_MDMA_CHANNEL_10 03666 * @arg @ref LL_MDMA_CHANNEL_11 03667 * @arg @ref LL_MDMA_CHANNEL_12 03668 * @arg @ref LL_MDMA_CHANNEL_13 03669 * @arg @ref LL_MDMA_CHANNEL_14 03670 * @arg @ref LL_MDMA_CHANNEL_15 03671 * @retval State of bit (1 or 0). 03672 */ 03673 __STATIC_INLINE uint32_t LL_MDMA_IsActiveFlag_TEMD(MDMA_TypeDef *MDMAx, uint32_t Channel) 03674 { 03675 uint32_t mdma_base_addr = (uint32_t)MDMAx; 03676 03677 return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CESR, MDMA_CESR_TEMD) == (MDMA_CESR_TEMD)) ? 1UL : 0UL); 03678 } 03679 03680 /** 03681 * @brief Get MDMA Channel x Transfer Error Link Data flag. 03682 * @rmtoll CESR TELD LL_MDMA_IsActiveFlag_TELD 03683 * @param MDMAx MDMAx Instance 03684 * @param Channel This parameter can be one of the following values: 03685 * @arg @ref LL_MDMA_CHANNEL_0 03686 * @arg @ref LL_MDMA_CHANNEL_1 03687 * @arg @ref LL_MDMA_CHANNEL_2 03688 * @arg @ref LL_MDMA_CHANNEL_3 03689 * @arg @ref LL_MDMA_CHANNEL_4 03690 * @arg @ref LL_MDMA_CHANNEL_5 03691 * @arg @ref LL_MDMA_CHANNEL_6 03692 * @arg @ref LL_MDMA_CHANNEL_7 03693 * @arg @ref LL_MDMA_CHANNEL_8 03694 * @arg @ref LL_MDMA_CHANNEL_9 03695 * @arg @ref LL_MDMA_CHANNEL_10 03696 * @arg @ref LL_MDMA_CHANNEL_11 03697 * @arg @ref LL_MDMA_CHANNEL_12 03698 * @arg @ref LL_MDMA_CHANNEL_13 03699 * @arg @ref LL_MDMA_CHANNEL_14 03700 * @arg @ref LL_MDMA_CHANNEL_15 03701 * @retval State of bit (1 or 0). 03702 */ 03703 __STATIC_INLINE uint32_t LL_MDMA_IsActiveFlag_TELD(MDMA_TypeDef *MDMAx, uint32_t Channel) 03704 { 03705 uint32_t mdma_base_addr = (uint32_t)MDMAx; 03706 03707 return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CESR, MDMA_CESR_TELD) == (MDMA_CESR_TELD)) ? 1UL : 0UL); 03708 } 03709 03710 /** 03711 * @brief Clear MDMA Channel x Transfer Error interrupt flag. 03712 * @rmtoll CIFCR CTEIF LL_MDMA_ClearFlag_TE 03713 * @param MDMAx MDMAx Instance 03714 * @param Channel This parameter can be one of the following values: 03715 * @arg @ref LL_MDMA_CHANNEL_0 03716 * @arg @ref LL_MDMA_CHANNEL_1 03717 * @arg @ref LL_MDMA_CHANNEL_2 03718 * @arg @ref LL_MDMA_CHANNEL_3 03719 * @arg @ref LL_MDMA_CHANNEL_4 03720 * @arg @ref LL_MDMA_CHANNEL_5 03721 * @arg @ref LL_MDMA_CHANNEL_6 03722 * @arg @ref LL_MDMA_CHANNEL_7 03723 * @arg @ref LL_MDMA_CHANNEL_8 03724 * @arg @ref LL_MDMA_CHANNEL_9 03725 * @arg @ref LL_MDMA_CHANNEL_10 03726 * @arg @ref LL_MDMA_CHANNEL_11 03727 * @arg @ref LL_MDMA_CHANNEL_12 03728 * @arg @ref LL_MDMA_CHANNEL_13 03729 * @arg @ref LL_MDMA_CHANNEL_14 03730 * @arg @ref LL_MDMA_CHANNEL_15 03731 * @retval None 03732 */ 03733 __STATIC_INLINE void LL_MDMA_ClearFlag_TE(MDMA_TypeDef *MDMAx, uint32_t Channel) 03734 { 03735 uint32_t mdma_base_addr = (uint32_t)MDMAx; 03736 03737 WRITE_REG(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CIFCR ,MDMA_CIFCR_CTEIF); 03738 } 03739 03740 /** 03741 * @brief Clear MDMA Channel x Channel Transfer Complete interrupt flag. 03742 * @rmtoll CIFCR CCTCIF LL_MDMA_ClearFlag_CTC 03743 * @param MDMAx MDMAx Instance 03744 * @param Channel This parameter can be one of the following values: 03745 * @arg @ref LL_MDMA_CHANNEL_0 03746 * @arg @ref LL_MDMA_CHANNEL_1 03747 * @arg @ref LL_MDMA_CHANNEL_2 03748 * @arg @ref LL_MDMA_CHANNEL_3 03749 * @arg @ref LL_MDMA_CHANNEL_4 03750 * @arg @ref LL_MDMA_CHANNEL_5 03751 * @arg @ref LL_MDMA_CHANNEL_6 03752 * @arg @ref LL_MDMA_CHANNEL_7 03753 * @arg @ref LL_MDMA_CHANNEL_8 03754 * @arg @ref LL_MDMA_CHANNEL_9 03755 * @arg @ref LL_MDMA_CHANNEL_10 03756 * @arg @ref LL_MDMA_CHANNEL_11 03757 * @arg @ref LL_MDMA_CHANNEL_12 03758 * @arg @ref LL_MDMA_CHANNEL_13 03759 * @arg @ref LL_MDMA_CHANNEL_14 03760 * @arg @ref LL_MDMA_CHANNEL_15 03761 * @retval None 03762 */ 03763 __STATIC_INLINE void LL_MDMA_ClearFlag_CTC(MDMA_TypeDef *MDMAx, uint32_t Channel) 03764 { 03765 uint32_t mdma_base_addr = (uint32_t)MDMAx; 03766 03767 WRITE_REG(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CIFCR ,MDMA_CIFCR_CCTCIF); 03768 } 03769 03770 /** 03771 * @brief Clear MDMA Channel x Block Repeat Transfer complete interrupt flag. 03772 * @rmtoll CIFCR CBRTIF LL_MDMA_ClearFlag_BRT 03773 * @param MDMAx MDMAx Instance 03774 * @param Channel This parameter can be one of the following values: 03775 * @arg @ref LL_MDMA_CHANNEL_0 03776 * @arg @ref LL_MDMA_CHANNEL_1 03777 * @arg @ref LL_MDMA_CHANNEL_2 03778 * @arg @ref LL_MDMA_CHANNEL_3 03779 * @arg @ref LL_MDMA_CHANNEL_4 03780 * @arg @ref LL_MDMA_CHANNEL_5 03781 * @arg @ref LL_MDMA_CHANNEL_6 03782 * @arg @ref LL_MDMA_CHANNEL_7 03783 * @arg @ref LL_MDMA_CHANNEL_8 03784 * @arg @ref LL_MDMA_CHANNEL_9 03785 * @arg @ref LL_MDMA_CHANNEL_10 03786 * @arg @ref LL_MDMA_CHANNEL_11 03787 * @arg @ref LL_MDMA_CHANNEL_12 03788 * @arg @ref LL_MDMA_CHANNEL_13 03789 * @arg @ref LL_MDMA_CHANNEL_14 03790 * @arg @ref LL_MDMA_CHANNEL_15 03791 * @retval None 03792 */ 03793 __STATIC_INLINE void LL_MDMA_ClearFlag_BRT(MDMA_TypeDef *MDMAx, uint32_t Channel) 03794 { 03795 uint32_t mdma_base_addr = (uint32_t)MDMAx; 03796 03797 WRITE_REG(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CIFCR ,MDMA_CIFCR_CBRTIF); 03798 } 03799 03800 /** 03801 * @brief Clear MDMA Channel x Block Transfer complete interrupt flag. 03802 * @rmtoll CIFCR CBTIF LL_MDMA_ClearFlag_BT 03803 * @param MDMAx MDMAx Instance 03804 * @param Channel This parameter can be one of the following values: 03805 * @arg @ref LL_MDMA_CHANNEL_0 03806 * @arg @ref LL_MDMA_CHANNEL_1 03807 * @arg @ref LL_MDMA_CHANNEL_2 03808 * @arg @ref LL_MDMA_CHANNEL_3 03809 * @arg @ref LL_MDMA_CHANNEL_4 03810 * @arg @ref LL_MDMA_CHANNEL_5 03811 * @arg @ref LL_MDMA_CHANNEL_6 03812 * @arg @ref LL_MDMA_CHANNEL_7 03813 * @arg @ref LL_MDMA_CHANNEL_8 03814 * @arg @ref LL_MDMA_CHANNEL_9 03815 * @arg @ref LL_MDMA_CHANNEL_10 03816 * @arg @ref LL_MDMA_CHANNEL_11 03817 * @arg @ref LL_MDMA_CHANNEL_12 03818 * @arg @ref LL_MDMA_CHANNEL_13 03819 * @arg @ref LL_MDMA_CHANNEL_14 03820 * @arg @ref LL_MDMA_CHANNEL_15 03821 * @retval None 03822 */ 03823 __STATIC_INLINE void LL_MDMA_ClearFlag_BT(MDMA_TypeDef *MDMAx, uint32_t Channel) 03824 { 03825 uint32_t mdma_base_addr = (uint32_t)MDMAx; 03826 03827 WRITE_REG(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CIFCR ,MDMA_CIFCR_CBTIF); 03828 } 03829 03830 /** 03831 * @brief Clear MDMA Channel x buffer transfer Complete Interrupt Flag. 03832 * @rmtoll CIFCR CLTCIF LL_MDMA_ClearFlag_TC 03833 * @param MDMAx MDMAx Instance 03834 * @param Channel This parameter can be one of the following values: 03835 * @arg @ref LL_MDMA_CHANNEL_0 03836 * @arg @ref LL_MDMA_CHANNEL_1 03837 * @arg @ref LL_MDMA_CHANNEL_2 03838 * @arg @ref LL_MDMA_CHANNEL_3 03839 * @arg @ref LL_MDMA_CHANNEL_4 03840 * @arg @ref LL_MDMA_CHANNEL_5 03841 * @arg @ref LL_MDMA_CHANNEL_6 03842 * @arg @ref LL_MDMA_CHANNEL_7 03843 * @arg @ref LL_MDMA_CHANNEL_8 03844 * @arg @ref LL_MDMA_CHANNEL_9 03845 * @arg @ref LL_MDMA_CHANNEL_10 03846 * @arg @ref LL_MDMA_CHANNEL_11 03847 * @arg @ref LL_MDMA_CHANNEL_12 03848 * @arg @ref LL_MDMA_CHANNEL_13 03849 * @arg @ref LL_MDMA_CHANNEL_14 03850 * @arg @ref LL_MDMA_CHANNEL_15 03851 * @retval None 03852 */ 03853 __STATIC_INLINE void LL_MDMA_ClearFlag_TC(MDMA_TypeDef *MDMAx, uint32_t Channel) 03854 { 03855 uint32_t mdma_base_addr = (uint32_t)MDMAx; 03856 03857 WRITE_REG(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CIFCR ,MDMA_CIFCR_CLTCIF); 03858 } 03859 03860 /** 03861 * @} 03862 */ 03863 03864 /** @defgroup MDMA_LL_EF_IT_Management IT_Management 03865 * @{ 03866 */ 03867 03868 /** 03869 * @brief Enable MDMA Channel x Transfer Error interrupt. 03870 * @rmtoll CCR TEIE LL_MDMA_EnableIT_TE 03871 * @param MDMAx MDMAx Instance 03872 * @param Channel This parameter can be one of the following values: 03873 * @arg @ref LL_MDMA_CHANNEL_0 03874 * @arg @ref LL_MDMA_CHANNEL_1 03875 * @arg @ref LL_MDMA_CHANNEL_2 03876 * @arg @ref LL_MDMA_CHANNEL_3 03877 * @arg @ref LL_MDMA_CHANNEL_4 03878 * @arg @ref LL_MDMA_CHANNEL_5 03879 * @arg @ref LL_MDMA_CHANNEL_6 03880 * @arg @ref LL_MDMA_CHANNEL_7 03881 * @arg @ref LL_MDMA_CHANNEL_8 03882 * @arg @ref LL_MDMA_CHANNEL_9 03883 * @arg @ref LL_MDMA_CHANNEL_10 03884 * @arg @ref LL_MDMA_CHANNEL_11 03885 * @arg @ref LL_MDMA_CHANNEL_12 03886 * @arg @ref LL_MDMA_CHANNEL_13 03887 * @arg @ref LL_MDMA_CHANNEL_14 03888 * @arg @ref LL_MDMA_CHANNEL_15 03889 * @retval None 03890 */ 03891 __STATIC_INLINE void LL_MDMA_EnableIT_TE(MDMA_TypeDef *MDMAx, uint32_t Channel) 03892 { 03893 uint32_t mdma_base_addr = (uint32_t)MDMAx; 03894 03895 SET_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR ,MDMA_CCR_TEIE); 03896 } 03897 03898 /** 03899 * @brief Enable MDMA Channel x Channel Transfer Complete interrupt. 03900 * @rmtoll CCR CTCIE LL_MDMA_EnableIT_CTC 03901 * @param MDMAx MDMAx Instance 03902 * @param Channel This parameter can be one of the following values: 03903 * @arg @ref LL_MDMA_CHANNEL_0 03904 * @arg @ref LL_MDMA_CHANNEL_1 03905 * @arg @ref LL_MDMA_CHANNEL_2 03906 * @arg @ref LL_MDMA_CHANNEL_3 03907 * @arg @ref LL_MDMA_CHANNEL_4 03908 * @arg @ref LL_MDMA_CHANNEL_5 03909 * @arg @ref LL_MDMA_CHANNEL_6 03910 * @arg @ref LL_MDMA_CHANNEL_7 03911 * @arg @ref LL_MDMA_CHANNEL_8 03912 * @arg @ref LL_MDMA_CHANNEL_9 03913 * @arg @ref LL_MDMA_CHANNEL_10 03914 * @arg @ref LL_MDMA_CHANNEL_11 03915 * @arg @ref LL_MDMA_CHANNEL_12 03916 * @arg @ref LL_MDMA_CHANNEL_13 03917 * @arg @ref LL_MDMA_CHANNEL_14 03918 * @arg @ref LL_MDMA_CHANNEL_15 03919 * @retval None 03920 */ 03921 __STATIC_INLINE void LL_MDMA_EnableIT_CTC(MDMA_TypeDef *MDMAx, uint32_t Channel) 03922 { 03923 uint32_t mdma_base_addr = (uint32_t)MDMAx; 03924 03925 SET_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR ,MDMA_CCR_CTCIE); 03926 } 03927 03928 /** 03929 * @brief Enable MDMA Channel x Block Repeat Transfer interrupt. 03930 * @rmtoll CCR BRTIE LL_MDMA_EnableIT_BRT 03931 * @param MDMAx MDMAx Instance 03932 * @param Channel This parameter can be one of the following values: 03933 * @arg @ref LL_MDMA_CHANNEL_0 03934 * @arg @ref LL_MDMA_CHANNEL_1 03935 * @arg @ref LL_MDMA_CHANNEL_2 03936 * @arg @ref LL_MDMA_CHANNEL_3 03937 * @arg @ref LL_MDMA_CHANNEL_4 03938 * @arg @ref LL_MDMA_CHANNEL_5 03939 * @arg @ref LL_MDMA_CHANNEL_6 03940 * @arg @ref LL_MDMA_CHANNEL_7 03941 * @arg @ref LL_MDMA_CHANNEL_8 03942 * @arg @ref LL_MDMA_CHANNEL_9 03943 * @arg @ref LL_MDMA_CHANNEL_10 03944 * @arg @ref LL_MDMA_CHANNEL_11 03945 * @arg @ref LL_MDMA_CHANNEL_12 03946 * @arg @ref LL_MDMA_CHANNEL_13 03947 * @arg @ref LL_MDMA_CHANNEL_14 03948 * @arg @ref LL_MDMA_CHANNEL_15 03949 * @retval None 03950 */ 03951 __STATIC_INLINE void LL_MDMA_EnableIT_BRT(MDMA_TypeDef *MDMAx, uint32_t Channel) 03952 { 03953 uint32_t mdma_base_addr = (uint32_t)MDMAx; 03954 03955 SET_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR ,MDMA_CCR_BRTIE); 03956 } 03957 03958 /** 03959 * @brief Enable MDMA Channel x Block Transfer interrupt. 03960 * @rmtoll CCR BTIE LL_MDMA_EnableIT_BT 03961 * @param MDMAx MDMAx Instance 03962 * @param Channel This parameter can be one of the following values: 03963 * @arg @ref LL_MDMA_CHANNEL_0 03964 * @arg @ref LL_MDMA_CHANNEL_1 03965 * @arg @ref LL_MDMA_CHANNEL_2 03966 * @arg @ref LL_MDMA_CHANNEL_3 03967 * @arg @ref LL_MDMA_CHANNEL_4 03968 * @arg @ref LL_MDMA_CHANNEL_5 03969 * @arg @ref LL_MDMA_CHANNEL_6 03970 * @arg @ref LL_MDMA_CHANNEL_7 03971 * @arg @ref LL_MDMA_CHANNEL_8 03972 * @arg @ref LL_MDMA_CHANNEL_9 03973 * @arg @ref LL_MDMA_CHANNEL_10 03974 * @arg @ref LL_MDMA_CHANNEL_11 03975 * @arg @ref LL_MDMA_CHANNEL_12 03976 * @arg @ref LL_MDMA_CHANNEL_13 03977 * @arg @ref LL_MDMA_CHANNEL_14 03978 * @arg @ref LL_MDMA_CHANNEL_15 03979 * @retval None 03980 */ 03981 __STATIC_INLINE void LL_MDMA_EnableIT_BT(MDMA_TypeDef *MDMAx, uint32_t Channel) 03982 { 03983 uint32_t mdma_base_addr = (uint32_t)MDMAx; 03984 03985 SET_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR ,MDMA_CCR_BTIE); 03986 } 03987 03988 /** 03989 * @brief Enable MDMA Channel x buffer transfer complete interrupt. 03990 * @rmtoll CCR TCIE LL_MDMA_EnableIT_TC 03991 * @param MDMAx MDMAx Instance 03992 * @param Channel This parameter can be one of the following values: 03993 * @arg @ref LL_MDMA_CHANNEL_0 03994 * @arg @ref LL_MDMA_CHANNEL_1 03995 * @arg @ref LL_MDMA_CHANNEL_2 03996 * @arg @ref LL_MDMA_CHANNEL_3 03997 * @arg @ref LL_MDMA_CHANNEL_4 03998 * @arg @ref LL_MDMA_CHANNEL_5 03999 * @arg @ref LL_MDMA_CHANNEL_6 04000 * @arg @ref LL_MDMA_CHANNEL_7 04001 * @arg @ref LL_MDMA_CHANNEL_8 04002 * @arg @ref LL_MDMA_CHANNEL_9 04003 * @arg @ref LL_MDMA_CHANNEL_10 04004 * @arg @ref LL_MDMA_CHANNEL_11 04005 * @arg @ref LL_MDMA_CHANNEL_12 04006 * @arg @ref LL_MDMA_CHANNEL_13 04007 * @arg @ref LL_MDMA_CHANNEL_14 04008 * @arg @ref LL_MDMA_CHANNEL_15 04009 * @retval None 04010 */ 04011 __STATIC_INLINE void LL_MDMA_EnableIT_TC(MDMA_TypeDef *MDMAx, uint32_t Channel) 04012 { 04013 uint32_t mdma_base_addr = (uint32_t)MDMAx; 04014 04015 SET_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR ,MDMA_CCR_TCIE); 04016 } 04017 04018 /** 04019 * @brief Disable MDMA Channel x Transfer Error interrupt. 04020 * @rmtoll CCR TEIE LL_MDMA_DisableIT_TE 04021 * @param MDMAx MDMAx Instance 04022 * @param Channel This parameter can be one of the following values: 04023 * @arg @ref LL_MDMA_CHANNEL_0 04024 * @arg @ref LL_MDMA_CHANNEL_1 04025 * @arg @ref LL_MDMA_CHANNEL_2 04026 * @arg @ref LL_MDMA_CHANNEL_3 04027 * @arg @ref LL_MDMA_CHANNEL_4 04028 * @arg @ref LL_MDMA_CHANNEL_5 04029 * @arg @ref LL_MDMA_CHANNEL_6 04030 * @arg @ref LL_MDMA_CHANNEL_7 04031 * @arg @ref LL_MDMA_CHANNEL_8 04032 * @arg @ref LL_MDMA_CHANNEL_9 04033 * @arg @ref LL_MDMA_CHANNEL_10 04034 * @arg @ref LL_MDMA_CHANNEL_11 04035 * @arg @ref LL_MDMA_CHANNEL_12 04036 * @arg @ref LL_MDMA_CHANNEL_13 04037 * @arg @ref LL_MDMA_CHANNEL_14 04038 * @arg @ref LL_MDMA_CHANNEL_15 04039 * @retval None 04040 */ 04041 __STATIC_INLINE void LL_MDMA_DisableIT_TE(MDMA_TypeDef *MDMAx, uint32_t Channel) 04042 { 04043 uint32_t mdma_base_addr = (uint32_t)MDMAx; 04044 04045 CLEAR_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR ,MDMA_CCR_TEIE); 04046 } 04047 04048 /** 04049 * @brief Disable MDMA Channel x Channel Transfer Complete interrupt. 04050 * @rmtoll CCR CTCIE LL_MDMA_DisableIT_CTC 04051 * @param MDMAx MDMAx Instance 04052 * @param Channel This parameter can be one of the following values: 04053 * @arg @ref LL_MDMA_CHANNEL_0 04054 * @arg @ref LL_MDMA_CHANNEL_1 04055 * @arg @ref LL_MDMA_CHANNEL_2 04056 * @arg @ref LL_MDMA_CHANNEL_3 04057 * @arg @ref LL_MDMA_CHANNEL_4 04058 * @arg @ref LL_MDMA_CHANNEL_5 04059 * @arg @ref LL_MDMA_CHANNEL_6 04060 * @arg @ref LL_MDMA_CHANNEL_7 04061 * @arg @ref LL_MDMA_CHANNEL_8 04062 * @arg @ref LL_MDMA_CHANNEL_9 04063 * @arg @ref LL_MDMA_CHANNEL_10 04064 * @arg @ref LL_MDMA_CHANNEL_11 04065 * @arg @ref LL_MDMA_CHANNEL_12 04066 * @arg @ref LL_MDMA_CHANNEL_13 04067 * @arg @ref LL_MDMA_CHANNEL_14 04068 * @arg @ref LL_MDMA_CHANNEL_15 04069 * @retval None 04070 */ 04071 __STATIC_INLINE void LL_MDMA_DisableIT_CTC(MDMA_TypeDef *MDMAx, uint32_t Channel) 04072 { 04073 uint32_t mdma_base_addr = (uint32_t)MDMAx; 04074 04075 CLEAR_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR ,MDMA_CCR_CTCIE); 04076 } 04077 04078 /** 04079 * @brief Disable MDMA Channel x Block Repeat Transfer interrupt. 04080 * @rmtoll CCR BRTIE LL_MDMA_DisableIT_BRT 04081 * @param MDMAx MDMAx Instance 04082 * @param Channel This parameter can be one of the following values: 04083 * @arg @ref LL_MDMA_CHANNEL_0 04084 * @arg @ref LL_MDMA_CHANNEL_1 04085 * @arg @ref LL_MDMA_CHANNEL_2 04086 * @arg @ref LL_MDMA_CHANNEL_3 04087 * @arg @ref LL_MDMA_CHANNEL_4 04088 * @arg @ref LL_MDMA_CHANNEL_5 04089 * @arg @ref LL_MDMA_CHANNEL_6 04090 * @arg @ref LL_MDMA_CHANNEL_7 04091 * @arg @ref LL_MDMA_CHANNEL_8 04092 * @arg @ref LL_MDMA_CHANNEL_9 04093 * @arg @ref LL_MDMA_CHANNEL_10 04094 * @arg @ref LL_MDMA_CHANNEL_11 04095 * @arg @ref LL_MDMA_CHANNEL_12 04096 * @arg @ref LL_MDMA_CHANNEL_13 04097 * @arg @ref LL_MDMA_CHANNEL_14 04098 * @arg @ref LL_MDMA_CHANNEL_15 04099 * @retval None 04100 */ 04101 __STATIC_INLINE void LL_MDMA_DisableIT_BRT(MDMA_TypeDef *MDMAx, uint32_t Channel) 04102 { 04103 uint32_t mdma_base_addr = (uint32_t)MDMAx; 04104 04105 CLEAR_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR ,MDMA_CCR_BRTIE); 04106 } 04107 04108 /** 04109 * @brief Disable MDMA Channel x Block Transfer interrupt. 04110 * @rmtoll CCR BTIE LL_MDMA_DisableIT_BT 04111 * @param MDMAx MDMAx Instance 04112 * @param Channel This parameter can be one of the following values: 04113 * @arg @ref LL_MDMA_CHANNEL_0 04114 * @arg @ref LL_MDMA_CHANNEL_1 04115 * @arg @ref LL_MDMA_CHANNEL_2 04116 * @arg @ref LL_MDMA_CHANNEL_3 04117 * @arg @ref LL_MDMA_CHANNEL_4 04118 * @arg @ref LL_MDMA_CHANNEL_5 04119 * @arg @ref LL_MDMA_CHANNEL_6 04120 * @arg @ref LL_MDMA_CHANNEL_7 04121 * @arg @ref LL_MDMA_CHANNEL_8 04122 * @arg @ref LL_MDMA_CHANNEL_9 04123 * @arg @ref LL_MDMA_CHANNEL_10 04124 * @arg @ref LL_MDMA_CHANNEL_11 04125 * @arg @ref LL_MDMA_CHANNEL_12 04126 * @arg @ref LL_MDMA_CHANNEL_13 04127 * @arg @ref LL_MDMA_CHANNEL_14 04128 * @arg @ref LL_MDMA_CHANNEL_15 04129 * @retval None 04130 */ 04131 __STATIC_INLINE void LL_MDMA_DisableIT_BT(MDMA_TypeDef *MDMAx, uint32_t Channel) 04132 { 04133 uint32_t mdma_base_addr = (uint32_t)MDMAx; 04134 04135 CLEAR_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR ,MDMA_CCR_BTIE); 04136 } 04137 04138 /** 04139 * @brief Disable MDMA Channel x buffer transfer complete interrupt. 04140 * @rmtoll CCR TCIE LL_MDMA_DisableIT_TC 04141 * @param MDMAx MDMAx Instance 04142 * @param Channel This parameter can be one of the following values: 04143 * @arg @ref LL_MDMA_CHANNEL_0 04144 * @arg @ref LL_MDMA_CHANNEL_1 04145 * @arg @ref LL_MDMA_CHANNEL_2 04146 * @arg @ref LL_MDMA_CHANNEL_3 04147 * @arg @ref LL_MDMA_CHANNEL_4 04148 * @arg @ref LL_MDMA_CHANNEL_5 04149 * @arg @ref LL_MDMA_CHANNEL_6 04150 * @arg @ref LL_MDMA_CHANNEL_7 04151 * @arg @ref LL_MDMA_CHANNEL_8 04152 * @arg @ref LL_MDMA_CHANNEL_9 04153 * @arg @ref LL_MDMA_CHANNEL_10 04154 * @arg @ref LL_MDMA_CHANNEL_11 04155 * @arg @ref LL_MDMA_CHANNEL_12 04156 * @arg @ref LL_MDMA_CHANNEL_13 04157 * @arg @ref LL_MDMA_CHANNEL_14 04158 * @arg @ref LL_MDMA_CHANNEL_15 04159 * @retval None 04160 */ 04161 __STATIC_INLINE void LL_MDMA_DisableIT_TC(MDMA_TypeDef *MDMAx, uint32_t Channel) 04162 { 04163 uint32_t mdma_base_addr = (uint32_t)MDMAx; 04164 04165 CLEAR_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR ,MDMA_CCR_TCIE); 04166 } 04167 04168 /** 04169 * @brief Check if MDMA Channel x Transfer Error interrupt is enabled. 04170 * @rmtoll CCR TEIE LL_MDMA_IsEnabledIT_TE 04171 * @param MDMAx MDMAx Instance 04172 * @param Channel This parameter can be one of the following values: 04173 * @arg @ref LL_MDMA_CHANNEL_0 04174 * @arg @ref LL_MDMA_CHANNEL_1 04175 * @arg @ref LL_MDMA_CHANNEL_2 04176 * @arg @ref LL_MDMA_CHANNEL_3 04177 * @arg @ref LL_MDMA_CHANNEL_4 04178 * @arg @ref LL_MDMA_CHANNEL_5 04179 * @arg @ref LL_MDMA_CHANNEL_6 04180 * @arg @ref LL_MDMA_CHANNEL_7 04181 * @arg @ref LL_MDMA_CHANNEL_8 04182 * @arg @ref LL_MDMA_CHANNEL_9 04183 * @arg @ref LL_MDMA_CHANNEL_10 04184 * @arg @ref LL_MDMA_CHANNEL_11 04185 * @arg @ref LL_MDMA_CHANNEL_12 04186 * @arg @ref LL_MDMA_CHANNEL_13 04187 * @arg @ref LL_MDMA_CHANNEL_14 04188 * @arg @ref LL_MDMA_CHANNEL_15 04189 * @retval State of bit (1 or 0). 04190 */ 04191 __STATIC_INLINE uint32_t LL_MDMA_IsEnabledIT_TE(MDMA_TypeDef *MDMAx, uint32_t Channel) 04192 { 04193 uint32_t mdma_base_addr = (uint32_t)MDMAx; 04194 04195 return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR ,MDMA_CCR_TEIE) == MDMA_CCR_TEIE) ? 1UL : 0UL); 04196 } 04197 04198 /** 04199 * @brief Check if MDMA Channel x Channel Transfer Complete interrupt is enabled. 04200 * @rmtoll CCR CTCIE LL_MDMA_IsEnabledIT_CTC 04201 * @param MDMAx MDMAx Instance 04202 * @param Channel This parameter can be one of the following values: 04203 * @arg @ref LL_MDMA_CHANNEL_0 04204 * @arg @ref LL_MDMA_CHANNEL_1 04205 * @arg @ref LL_MDMA_CHANNEL_2 04206 * @arg @ref LL_MDMA_CHANNEL_3 04207 * @arg @ref LL_MDMA_CHANNEL_4 04208 * @arg @ref LL_MDMA_CHANNEL_5 04209 * @arg @ref LL_MDMA_CHANNEL_6 04210 * @arg @ref LL_MDMA_CHANNEL_7 04211 * @arg @ref LL_MDMA_CHANNEL_8 04212 * @arg @ref LL_MDMA_CHANNEL_9 04213 * @arg @ref LL_MDMA_CHANNEL_10 04214 * @arg @ref LL_MDMA_CHANNEL_11 04215 * @arg @ref LL_MDMA_CHANNEL_12 04216 * @arg @ref LL_MDMA_CHANNEL_13 04217 * @arg @ref LL_MDMA_CHANNEL_14 04218 * @arg @ref LL_MDMA_CHANNEL_15 04219 * @retval State of bit (1 or 0). 04220 */ 04221 __STATIC_INLINE uint32_t LL_MDMA_IsEnabledIT_CTC(MDMA_TypeDef *MDMAx, uint32_t Channel) 04222 { 04223 uint32_t mdma_base_addr = (uint32_t)MDMAx; 04224 04225 return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR ,MDMA_CCR_CTCIE) == MDMA_CCR_CTCIE) ? 1UL : 0UL); 04226 } 04227 04228 /** 04229 * @brief Check if MDMA Channel x Block Repeat Transfer complete interrupt is enabled. 04230 * @rmtoll CCR BRTIE LL_MDMA_IsEnabledIT_BRT 04231 * @param MDMAx MDMAx Instance 04232 * @param Channel This parameter can be one of the following values: 04233 * @arg @ref LL_MDMA_CHANNEL_0 04234 * @arg @ref LL_MDMA_CHANNEL_1 04235 * @arg @ref LL_MDMA_CHANNEL_2 04236 * @arg @ref LL_MDMA_CHANNEL_3 04237 * @arg @ref LL_MDMA_CHANNEL_4 04238 * @arg @ref LL_MDMA_CHANNEL_5 04239 * @arg @ref LL_MDMA_CHANNEL_6 04240 * @arg @ref LL_MDMA_CHANNEL_7 04241 * @arg @ref LL_MDMA_CHANNEL_8 04242 * @arg @ref LL_MDMA_CHANNEL_9 04243 * @arg @ref LL_MDMA_CHANNEL_10 04244 * @arg @ref LL_MDMA_CHANNEL_11 04245 * @arg @ref LL_MDMA_CHANNEL_12 04246 * @arg @ref LL_MDMA_CHANNEL_13 04247 * @arg @ref LL_MDMA_CHANNEL_14 04248 * @arg @ref LL_MDMA_CHANNEL_15 04249 * @retval State of bit (1 or 0). 04250 */ 04251 __STATIC_INLINE uint32_t LL_MDMA_IsEnabledIT_BRT(MDMA_TypeDef *MDMAx, uint32_t Channel) 04252 { 04253 uint32_t mdma_base_addr = (uint32_t)MDMAx; 04254 04255 return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR ,MDMA_CCR_BRTIE) == MDMA_CCR_BRTIE) ? 1UL : 0UL); 04256 } 04257 04258 /** 04259 * @brief Check if MDMA Channel x Block Transfer interrupt is enabled. 04260 * @rmtoll CCR BTIE LL_MDMA_IsEnabledIT_BT 04261 * @param MDMAx MDMAx Instance 04262 * @param Channel This parameter can be one of the following values: 04263 * @arg @ref LL_MDMA_CHANNEL_0 04264 * @arg @ref LL_MDMA_CHANNEL_1 04265 * @arg @ref LL_MDMA_CHANNEL_2 04266 * @arg @ref LL_MDMA_CHANNEL_3 04267 * @arg @ref LL_MDMA_CHANNEL_4 04268 * @arg @ref LL_MDMA_CHANNEL_5 04269 * @arg @ref LL_MDMA_CHANNEL_6 04270 * @arg @ref LL_MDMA_CHANNEL_7 04271 * @arg @ref LL_MDMA_CHANNEL_8 04272 * @arg @ref LL_MDMA_CHANNEL_9 04273 * @arg @ref LL_MDMA_CHANNEL_10 04274 * @arg @ref LL_MDMA_CHANNEL_11 04275 * @arg @ref LL_MDMA_CHANNEL_12 04276 * @arg @ref LL_MDMA_CHANNEL_13 04277 * @arg @ref LL_MDMA_CHANNEL_14 04278 * @arg @ref LL_MDMA_CHANNEL_15 04279 * @retval State of bit (1 or 0). 04280 */ 04281 __STATIC_INLINE uint32_t LL_MDMA_IsEnabledIT_BT(MDMA_TypeDef *MDMAx, uint32_t Channel) 04282 { 04283 uint32_t mdma_base_addr = (uint32_t)MDMAx; 04284 04285 return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR ,MDMA_CCR_BTIE) == MDMA_CCR_BTIE) ? 1UL : 0UL); 04286 } 04287 04288 /** 04289 * @brief Check if MDMA Channel x buffer transfer complete interrupt is enabled. 04290 * @rmtoll CCR TCIE LL_MDMA_IsEnabledIT_TC 04291 * @param MDMAx MDMAx Instance 04292 * @param Channel This parameter can be one of the following values: 04293 * @arg @ref LL_MDMA_CHANNEL_0 04294 * @arg @ref LL_MDMA_CHANNEL_1 04295 * @arg @ref LL_MDMA_CHANNEL_2 04296 * @arg @ref LL_MDMA_CHANNEL_3 04297 * @arg @ref LL_MDMA_CHANNEL_4 04298 * @arg @ref LL_MDMA_CHANNEL_5 04299 * @arg @ref LL_MDMA_CHANNEL_6 04300 * @arg @ref LL_MDMA_CHANNEL_7 04301 * @arg @ref LL_MDMA_CHANNEL_8 04302 * @arg @ref LL_MDMA_CHANNEL_9 04303 * @arg @ref LL_MDMA_CHANNEL_10 04304 * @arg @ref LL_MDMA_CHANNEL_11 04305 * @arg @ref LL_MDMA_CHANNEL_12 04306 * @arg @ref LL_MDMA_CHANNEL_13 04307 * @arg @ref LL_MDMA_CHANNEL_14 04308 * @arg @ref LL_MDMA_CHANNEL_15 04309 * @retval State of bit (1 or 0). 04310 */ 04311 __STATIC_INLINE uint32_t LL_MDMA_IsEnabledIT_TC(MDMA_TypeDef *MDMAx, uint32_t Channel) 04312 { 04313 uint32_t mdma_base_addr = (uint32_t)MDMAx; 04314 04315 return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR ,MDMA_CCR_TCIE) == MDMA_CCR_TCIE) ? 1UL : 0UL); 04316 } 04317 04318 /** 04319 * @} 04320 */ 04321 04322 #if defined(USE_FULL_LL_DRIVER) 04323 /** @defgroup MDMA_LL_EF_Init Initialization and de-initialization functions 04324 * @{ 04325 */ 04326 04327 uint32_t LL_MDMA_Init(MDMA_TypeDef *MDMAx, uint32_t Channel, LL_MDMA_InitTypeDef *MDMA_InitStruct); 04328 uint32_t LL_MDMA_DeInit(MDMA_TypeDef *MDMAx, uint32_t Channel); 04329 void LL_MDMA_StructInit(LL_MDMA_InitTypeDef *MDMA_InitStruct); 04330 void LL_MDMA_CreateLinkNode(LL_MDMA_InitTypeDef *MDMA_InitStruct, LL_MDMA_LinkNodeTypeDef *pNode); 04331 void LL_MDMA_ConnectLinkNode(LL_MDMA_LinkNodeTypeDef *pPrevLinkNode, LL_MDMA_LinkNodeTypeDef *pNewLinkNode); 04332 void LL_MDMA_DisconnectNextLinkNode(LL_MDMA_LinkNodeTypeDef *pLinkNode); 04333 04334 /** 04335 * @} 04336 */ 04337 #endif /* USE_FULL_LL_DRIVER */ 04338 04339 /** 04340 * @} 04341 */ 04342 04343 /** 04344 * @} 04345 */ 04346 04347 #endif /* MDMA */ 04348 04349 /** 04350 * @} 04351 */ 04352 04353 #ifdef __cplusplus 04354 } 04355 #endif 04356 04357 #endif /* STM32H7xx_LL_MDMA_H */ 04358