1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322 |
- /**
- ******************************************************************************
- * @file stm32h7xx_ll_dma.h
- * @author MCD Application Team
- * @brief Header file of DMA LL module.
- ******************************************************************************
- * @attention
- *
- * Copyright (c) 2017 STMicroelectronics.
- * All rights reserved.
- *
- * This software is licensed under terms that can be found in the LICENSE file
- * in the root directory of this software component.
- * If no LICENSE file comes with this software, it is provided AS-IS.
- *
- ******************************************************************************
- */
- /* Define to prevent recursive inclusion -------------------------------------*/
- #ifndef STM32H7xx_LL_DMA_H
- #define STM32H7xx_LL_DMA_H
- #ifdef __cplusplus
- extern "C" {
- #endif
- /* Includes ------------------------------------------------------------------*/
- #include "stm32h7xx.h"
- #include "stm32h7xx_ll_dmamux.h"
- /** @addtogroup STM32H7xx_LL_Driver
- * @{
- */
- #if defined (DMA1) || defined (DMA2)
- /** @defgroup DMA_LL DMA
- * @{
- */
- /* Private types -------------------------------------------------------------*/
- /* Private variables ---------------------------------------------------------*/
- /** @defgroup DMA_LL_Private_Variables DMA Private Variables
- * @{
- */
- /* Array used to get the DMA stream register offset versus stream index LL_DMA_STREAM_x */
- static const uint8_t LL_DMA_STR_OFFSET_TAB[] =
- {
- (uint8_t)(DMA1_Stream0_BASE - DMA1_BASE),
- (uint8_t)(DMA1_Stream1_BASE - DMA1_BASE),
- (uint8_t)(DMA1_Stream2_BASE - DMA1_BASE),
- (uint8_t)(DMA1_Stream3_BASE - DMA1_BASE),
- (uint8_t)(DMA1_Stream4_BASE - DMA1_BASE),
- (uint8_t)(DMA1_Stream5_BASE - DMA1_BASE),
- (uint8_t)(DMA1_Stream6_BASE - DMA1_BASE),
- (uint8_t)(DMA1_Stream7_BASE - DMA1_BASE)
- };
- /**
- * @}
- */
- /* Private macros ------------------------------------------------------------*/
- /** @defgroup DMA_LL_Private_Macros DMA LL Private Macros
- * @{
- */
- /**
- * @brief Helper macro to convert DMA Instance DMAx into DMAMUX channel
- * @note DMAMUX channel 0 to 7 are mapped to DMA1 stream 0 to 7.
- * DMAMUX channel 8 to 15 are mapped to DMA2 stream 0 to 7.
- * @param __DMA_INSTANCE__ DMAx
- * @retval Channel_Offset (LL_DMAMUX_CHANNEL_8 or 0).
- */
- #define LL_DMA_INSTANCE_TO_DMAMUX_CHANNEL(__DMA_INSTANCE__) \
- (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) ? 0UL : 8UL)
- /**
- * @}
- */
- /* Exported types ------------------------------------------------------------*/
- #if defined(USE_FULL_LL_DRIVER)
- /** @defgroup DMA_LL_ES_INIT DMA Exported Init structure
- * @{
- */
- typedef struct
- {
- uint32_t PeriphOrM2MSrcAddress; /*!< Specifies the peripheral base address for DMA transfer
- or as Source base address in case of memory to memory transfer direction.
- This parameter must be a value between Min_Data = 0 and Max_Data = 0xFFFFFFFF. */
- uint32_t MemoryOrM2MDstAddress; /*!< Specifies the memory base address for DMA transfer
- or as Destination base address in case of memory to memory transfer direction.
- This parameter must be a value between Min_Data = 0 and Max_Data = 0xFFFFFFFF. */
- uint32_t Direction; /*!< Specifies if the data will be transferred from memory to peripheral,
- from memory to memory or from peripheral to memory.
- This parameter can be a value of @ref DMA_LL_EC_DIRECTION
- This feature can be modified afterwards using unitary function @ref LL_DMA_SetDataTransferDirection(). */
- uint32_t Mode; /*!< Specifies the normal or circular operation mode.
- This parameter can be a value of @ref DMA_LL_EC_MODE
- @note The circular buffer mode cannot be used if the memory to memory
- data transfer direction is configured on the selected Stream
- This feature can be modified afterwards using unitary function @ref LL_DMA_SetMode(). */
- uint32_t PeriphOrM2MSrcIncMode; /*!< Specifies whether the Peripheral address or Source address in case of memory to memory transfer direction
- is incremented or not.
- This parameter can be a value of @ref DMA_LL_EC_PERIPH
- This feature can be modified afterwards using unitary function @ref LL_DMA_SetPeriphIncMode(). */
- uint32_t MemoryOrM2MDstIncMode; /*!< Specifies whether the Memory address or Destination address in case of memory to memory transfer direction
- is incremented or not.
- This parameter can be a value of @ref DMA_LL_EC_MEMORY
- This feature can be modified afterwards using unitary function @ref LL_DMA_SetMemoryIncMode(). */
- uint32_t PeriphOrM2MSrcDataSize; /*!< Specifies the Peripheral data size alignment or Source data size alignment (byte, half word, word)
- in case of memory to memory transfer direction.
- This parameter can be a value of @ref DMA_LL_EC_PDATAALIGN
- This feature can be modified afterwards using unitary function @ref LL_DMA_SetPeriphSize(). */
- uint32_t MemoryOrM2MDstDataSize; /*!< Specifies the Memory data size alignment or Destination data size alignment (byte, half word, word)
- in case of memory to memory transfer direction.
- This parameter can be a value of @ref DMA_LL_EC_MDATAALIGN
- This feature can be modified afterwards using unitary function @ref LL_DMA_SetMemorySize(). */
- uint32_t NbData; /*!< Specifies the number of data to transfer, in data unit.
- The data unit is equal to the source buffer configuration set in PeripheralSize
- or MemorySize parameters depending in the transfer direction.
- This parameter must be a value between Min_Data = 0 and Max_Data = 0x0000FFFF
- This feature can be modified afterwards using unitary function @ref LL_DMA_SetDataLength(). */
- uint32_t PeriphRequest; /*!< Specifies the peripheral request.
- This parameter can be a value of @ref DMAMUX1_Request_selection
- This feature can be modified afterwards using unitary function @ref LL_DMA_SetPeriphRequest(). */
- uint32_t Priority; /*!< Specifies the channel priority level.
- This parameter can be a value of @ref DMA_LL_EC_PRIORITY
- This feature can be modified afterwards using unitary function @ref LL_DMA_SetStreamPriorityLevel(). */
- uint32_t FIFOMode; /*!< Specifies if the FIFO mode or Direct mode will be used for the specified stream.
- This parameter can be a value of @ref DMA_LL_FIFOMODE
- @note The Direct mode (FIFO mode disabled) cannot be used if the
- memory-to-memory data transfer is configured on the selected stream
- This feature can be modified afterwards using unitary functions @ref LL_DMA_EnableFifoMode() or @ref LL_DMA_EnableFifoMode() . */
- uint32_t FIFOThreshold; /*!< Specifies the FIFO threshold level.
- This parameter can be a value of @ref DMA_LL_EC_FIFOTHRESHOLD
- This feature can be modified afterwards using unitary function @ref LL_DMA_SetFIFOThreshold(). */
- uint32_t MemBurst; /*!< Specifies the Burst transfer configuration for the memory transfers.
- It specifies the amount of data to be transferred in a single non interruptible
- transaction.
- This parameter can be a value of @ref DMA_LL_EC_MBURST
- @note The burst mode is possible only if the address Increment mode is enabled.
- This feature can be modified afterwards using unitary function @ref LL_DMA_SetMemoryBurstxfer(). */
- uint32_t PeriphBurst; /*!< Specifies the Burst transfer configuration for the peripheral transfers.
- It specifies the amount of data to be transferred in a single non interruptible
- transaction.
- This parameter can be a value of @ref DMA_LL_EC_PBURST
- @note The burst mode is possible only if the address Increment mode is enabled.
- This feature can be modified afterwards using unitary function @ref LL_DMA_SetPeriphBurstxfer(). */
- uint32_t DoubleBufferMode; /*!< Specifies the double buffer mode.
- This parameter can be a value of @ref DMA_LL_EC_DOUBLEBUFFER_MODE
- This feature can be modified afterwards using unitary function @ref LL_DMA_EnableDoubleBufferMode() & LL_DMA_DisableDoubleBufferMode(). */
- uint32_t TargetMemInDoubleBufferMode; /*!< Specifies the target memory in double buffer mode.
- This parameter can be a value of @ref DMA_LL_EC_CURRENTTARGETMEM
- This feature can be modified afterwards using unitary function @ref LL_DMA_SetCurrentTargetMem(). */
- } LL_DMA_InitTypeDef;
- /**
- * @}
- */
- #endif /*USE_FULL_LL_DRIVER*/
- /* Exported constants --------------------------------------------------------*/
- /** @defgroup DMA_LL_Exported_Constants DMA Exported Constants
- * @{
- */
- /** @defgroup DMA_LL_EC_STREAM STREAM
- * @{
- */
- #define LL_DMA_STREAM_0 0x00000000U
- #define LL_DMA_STREAM_1 0x00000001U
- #define LL_DMA_STREAM_2 0x00000002U
- #define LL_DMA_STREAM_3 0x00000003U
- #define LL_DMA_STREAM_4 0x00000004U
- #define LL_DMA_STREAM_5 0x00000005U
- #define LL_DMA_STREAM_6 0x00000006U
- #define LL_DMA_STREAM_7 0x00000007U
- #define LL_DMA_STREAM_ALL 0xFFFF0000U
- /**
- * @}
- */
- /** @defgroup DMA_LL_EC_DIRECTION DIRECTION
- * @{
- */
- #define LL_DMA_DIRECTION_PERIPH_TO_MEMORY 0x00000000U /*!< Peripheral to memory direction */
- #define LL_DMA_DIRECTION_MEMORY_TO_PERIPH DMA_SxCR_DIR_0 /*!< Memory to peripheral direction */
- #define LL_DMA_DIRECTION_MEMORY_TO_MEMORY DMA_SxCR_DIR_1 /*!< Memory to memory direction */
- /**
- * @}
- */
- /** @defgroup DMA_LL_EC_MODE MODE
- * @{
- */
- #define LL_DMA_MODE_NORMAL 0x00000000U /*!< Normal Mode */
- #define LL_DMA_MODE_CIRCULAR DMA_SxCR_CIRC /*!< Circular Mode */
- #define LL_DMA_MODE_PFCTRL DMA_SxCR_PFCTRL /*!< Peripheral flow control mode */
- /**
- * @}
- */
- /** @defgroup DMA_LL_EC_DOUBLEBUFFER_MODE DOUBLE BUFFER MODE
- * @{
- */
- #define LL_DMA_DOUBLEBUFFER_MODE_DISABLE 0x00000000U /*!< Disable double buffering mode */
- #define LL_DMA_DOUBLEBUFFER_MODE_ENABLE DMA_SxCR_DBM /*!< Enable double buffering mode */
- /**
- * @}
- */
- /** @defgroup DMA_LL_EC_CURRENTTARGETMEM CURRENTTARGETMEM
- * @{
- */
- #define LL_DMA_CURRENTTARGETMEM0 0x00000000U /*!< Set CurrentTarget Memory to Memory 0 */
- #define LL_DMA_CURRENTTARGETMEM1 DMA_SxCR_CT /*!< Set CurrentTarget Memory to Memory 1 */
- /**
- * @}
- */
- /** @defgroup DMA_LL_EC_PERIPH PERIPH
- * @{
- */
- #define LL_DMA_PERIPH_NOINCREMENT 0x00000000U /*!< Peripheral increment mode Disable */
- #define LL_DMA_PERIPH_INCREMENT DMA_SxCR_PINC /*!< Peripheral increment mode Enable */
- /**
- * @}
- */
- /** @defgroup DMA_LL_EC_MEMORY MEMORY
- * @{
- */
- #define LL_DMA_MEMORY_NOINCREMENT 0x00000000U /*!< Memory increment mode Disable */
- #define LL_DMA_MEMORY_INCREMENT DMA_SxCR_MINC /*!< Memory increment mode Enable */
- /**
- * @}
- */
- /** @defgroup DMA_LL_EC_PDATAALIGN PDATAALIGN
- * @{
- */
- #define LL_DMA_PDATAALIGN_BYTE 0x00000000U /*!< Peripheral data alignment : Byte */
- #define LL_DMA_PDATAALIGN_HALFWORD DMA_SxCR_PSIZE_0 /*!< Peripheral data alignment : HalfWord */
- #define LL_DMA_PDATAALIGN_WORD DMA_SxCR_PSIZE_1 /*!< Peripheral data alignment : Word */
- /**
- * @}
- */
- /** @defgroup DMA_LL_EC_MDATAALIGN MDATAALIGN
- * @{
- */
- #define LL_DMA_MDATAALIGN_BYTE 0x00000000U /*!< Memory data alignment : Byte */
- #define LL_DMA_MDATAALIGN_HALFWORD DMA_SxCR_MSIZE_0 /*!< Memory data alignment : HalfWord */
- #define LL_DMA_MDATAALIGN_WORD DMA_SxCR_MSIZE_1 /*!< Memory data alignment : Word */
- /**
- * @}
- */
- /** @defgroup DMA_LL_EC_OFFSETSIZE OFFSETSIZE
- * @{
- */
- #define LL_DMA_OFFSETSIZE_PSIZE 0x00000000U /*!< Peripheral increment offset size is linked to the PSIZE */
- #define LL_DMA_OFFSETSIZE_FIXEDTO4 DMA_SxCR_PINCOS /*!< Peripheral increment offset size is fixed to 4 (32-bit alignment) */
- /**
- * @}
- */
- /** @defgroup DMA_LL_EC_PRIORITY PRIORITY
- * @{
- */
- #define LL_DMA_PRIORITY_LOW 0x00000000U /*!< Priority level : Low */
- #define LL_DMA_PRIORITY_MEDIUM DMA_SxCR_PL_0 /*!< Priority level : Medium */
- #define LL_DMA_PRIORITY_HIGH DMA_SxCR_PL_1 /*!< Priority level : High */
- #define LL_DMA_PRIORITY_VERYHIGH DMA_SxCR_PL /*!< Priority level : Very_High */
- /**
- * @}
- */
- /** @defgroup DMA_LL_EC_MBURST MBURST
- * @{
- */
- #define LL_DMA_MBURST_SINGLE 0x00000000U /*!< Memory burst single transfer configuration */
- #define LL_DMA_MBURST_INC4 DMA_SxCR_MBURST_0 /*!< Memory burst of 4 beats transfer configuration */
- #define LL_DMA_MBURST_INC8 DMA_SxCR_MBURST_1 /*!< Memory burst of 8 beats transfer configuration */
- #define LL_DMA_MBURST_INC16 (DMA_SxCR_MBURST_0 | DMA_SxCR_MBURST_1) /*!< Memory burst of 16 beats transfer configuration */
- /**
- * @}
- */
- /** @defgroup DMA_LL_EC_PBURST PBURST
- * @{
- */
- #define LL_DMA_PBURST_SINGLE 0x00000000U /*!< Peripheral burst single transfer configuration */
- #define LL_DMA_PBURST_INC4 DMA_SxCR_PBURST_0 /*!< Peripheral burst of 4 beats transfer configuration */
- #define LL_DMA_PBURST_INC8 DMA_SxCR_PBURST_1 /*!< Peripheral burst of 8 beats transfer configuration */
- #define LL_DMA_PBURST_INC16 (DMA_SxCR_PBURST_0 | DMA_SxCR_PBURST_1) /*!< Peripheral burst of 16 beats transfer configuration */
- /**
- * @}
- */
- /** @defgroup DMA_LL_FIFOMODE DMA_LL_FIFOMODE
- * @{
- */
- #define LL_DMA_FIFOMODE_DISABLE 0x00000000U /*!< FIFO mode disable (direct mode is enabled) */
- #define LL_DMA_FIFOMODE_ENABLE DMA_SxFCR_DMDIS /*!< FIFO mode enable */
- /**
- * @}
- */
- /** @defgroup DMA_LL_EC_FIFOSTATUS_0 FIFOSTATUS 0
- * @{
- */
- #define LL_DMA_FIFOSTATUS_0_25 0x00000000U /*!< 0 < fifo_level < 1/4 */
- #define LL_DMA_FIFOSTATUS_25_50 DMA_SxFCR_FS_0 /*!< 1/4 < fifo_level < 1/2 */
- #define LL_DMA_FIFOSTATUS_50_75 DMA_SxFCR_FS_1 /*!< 1/2 < fifo_level < 3/4 */
- #define LL_DMA_FIFOSTATUS_75_100 (DMA_SxFCR_FS_1 | DMA_SxFCR_FS_0) /*!< 3/4 < fifo_level < full */
- #define LL_DMA_FIFOSTATUS_EMPTY DMA_SxFCR_FS_2 /*!< FIFO is empty */
- #define LL_DMA_FIFOSTATUS_FULL (DMA_SxFCR_FS_2 | DMA_SxFCR_FS_0) /*!< FIFO is full */
- /**
- * @}
- */
- /** @defgroup DMA_LL_EC_FIFOTHRESHOLD FIFOTHRESHOLD
- * @{
- */
- #define LL_DMA_FIFOTHRESHOLD_1_4 0x00000000U /*!< FIFO threshold 1 quart full configuration */
- #define LL_DMA_FIFOTHRESHOLD_1_2 DMA_SxFCR_FTH_0 /*!< FIFO threshold half full configuration */
- #define LL_DMA_FIFOTHRESHOLD_3_4 DMA_SxFCR_FTH_1 /*!< FIFO threshold 3 quarts full configuration */
- #define LL_DMA_FIFOTHRESHOLD_FULL DMA_SxFCR_FTH /*!< FIFO threshold full configuration */
- /**
- * @}
- */
- /**
- * @}
- */
- /* Exported macro ------------------------------------------------------------*/
- /** @defgroup DMA_LL_Exported_Macros DMA Exported Macros
- * @{
- */
- /** @defgroup DMA_LL_EM_WRITE_READ Common Write and read registers macros
- * @{
- */
- /**
- * @brief Write a value in DMA register
- * @param __INSTANCE__ DMA Instance
- * @param __REG__ Register to be written
- * @param __VALUE__ Value to be written in the register
- * @retval None
- */
- #define LL_DMA_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG((__INSTANCE__)->__REG__, (__VALUE__))
- /**
- * @brief Read a value in DMA register
- * @param __INSTANCE__ DMA Instance
- * @param __REG__ Register to be read
- * @retval Register value
- */
- #define LL_DMA_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__)
- /**
- * @}
- */
- /** @defgroup DMA_LL_EM_CONVERT_DMAxCHANNELy Convert DMAxStreamy
- * @{
- */
- /**
- * @brief Convert DMAx_Streamy into DMAx
- * @param __STREAM_INSTANCE__ DMAx_Streamy
- * @retval DMAx
- */
- #define __LL_DMA_GET_INSTANCE(__STREAM_INSTANCE__) \
- (((uint32_t)(__STREAM_INSTANCE__) > ((uint32_t)DMA1_Stream7)) ? DMA2 : DMA1)
- /**
- * @brief Convert DMAx_Streamy into LL_DMA_STREAM_y
- * @param __STREAM_INSTANCE__ DMAx_Streamy
- * @retval LL_DMA_STREAM_y
- */
- #define __LL_DMA_GET_STREAM(__STREAM_INSTANCE__) \
- (((uint32_t)(__STREAM_INSTANCE__) == ((uint32_t)DMA1_Stream0)) ? LL_DMA_STREAM_0 : \
- ((uint32_t)(__STREAM_INSTANCE__) == ((uint32_t)DMA2_Stream0)) ? LL_DMA_STREAM_0 : \
- ((uint32_t)(__STREAM_INSTANCE__) == ((uint32_t)DMA1_Stream1)) ? LL_DMA_STREAM_1 : \
- ((uint32_t)(__STREAM_INSTANCE__) == ((uint32_t)DMA2_Stream1)) ? LL_DMA_STREAM_1 : \
- ((uint32_t)(__STREAM_INSTANCE__) == ((uint32_t)DMA1_Stream2)) ? LL_DMA_STREAM_2 : \
- ((uint32_t)(__STREAM_INSTANCE__) == ((uint32_t)DMA2_Stream2)) ? LL_DMA_STREAM_2 : \
- ((uint32_t)(__STREAM_INSTANCE__) == ((uint32_t)DMA1_Stream3)) ? LL_DMA_STREAM_3 : \
- ((uint32_t)(__STREAM_INSTANCE__) == ((uint32_t)DMA2_Stream3)) ? LL_DMA_STREAM_3 : \
- ((uint32_t)(__STREAM_INSTANCE__) == ((uint32_t)DMA1_Stream4)) ? LL_DMA_STREAM_4 : \
- ((uint32_t)(__STREAM_INSTANCE__) == ((uint32_t)DMA2_Stream4)) ? LL_DMA_STREAM_4 : \
- ((uint32_t)(__STREAM_INSTANCE__) == ((uint32_t)DMA1_Stream5)) ? LL_DMA_STREAM_5 : \
- ((uint32_t)(__STREAM_INSTANCE__) == ((uint32_t)DMA2_Stream5)) ? LL_DMA_STREAM_5 : \
- ((uint32_t)(__STREAM_INSTANCE__) == ((uint32_t)DMA1_Stream6)) ? LL_DMA_STREAM_6 : \
- ((uint32_t)(__STREAM_INSTANCE__) == ((uint32_t)DMA2_Stream6)) ? LL_DMA_STREAM_6 : \
- LL_DMA_STREAM_7)
- /**
- * @brief Convert DMA Instance DMAx and LL_DMA_STREAM_y into DMAx_Streamy
- * @param __DMA_INSTANCE__ DMAx
- * @param __STREAM__ LL_DMA_STREAM_y
- * @retval DMAx_Streamy
- */
- #define __LL_DMA_GET_STREAM_INSTANCE(__DMA_INSTANCE__, __STREAM__) \
- ((((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__STREAM__) == ((uint32_t)LL_DMA_STREAM_0))) ? DMA1_Stream0 : \
- (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA2)) && ((uint32_t)(__STREAM__) == ((uint32_t)LL_DMA_STREAM_0))) ? DMA2_Stream0 : \
- (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__STREAM__) == ((uint32_t)LL_DMA_STREAM_1))) ? DMA1_Stream1 : \
- (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA2)) && ((uint32_t)(__STREAM__) == ((uint32_t)LL_DMA_STREAM_1))) ? DMA2_Stream1 : \
- (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__STREAM__) == ((uint32_t)LL_DMA_STREAM_2))) ? DMA1_Stream2 : \
- (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA2)) && ((uint32_t)(__STREAM__) == ((uint32_t)LL_DMA_STREAM_2))) ? DMA2_Stream2 : \
- (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__STREAM__) == ((uint32_t)LL_DMA_STREAM_3))) ? DMA1_Stream3 : \
- (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA2)) && ((uint32_t)(__STREAM__) == ((uint32_t)LL_DMA_STREAM_3))) ? DMA2_Stream3 : \
- (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__STREAM__) == ((uint32_t)LL_DMA_STREAM_4))) ? DMA1_Stream4 : \
- (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA2)) && ((uint32_t)(__STREAM__) == ((uint32_t)LL_DMA_STREAM_4))) ? DMA2_Stream4 : \
- (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__STREAM__) == ((uint32_t)LL_DMA_STREAM_5))) ? DMA1_Stream5 : \
- (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA2)) && ((uint32_t)(__STREAM__) == ((uint32_t)LL_DMA_STREAM_5))) ? DMA2_Stream5 : \
- (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__STREAM__) == ((uint32_t)LL_DMA_STREAM_6))) ? DMA1_Stream6 : \
- (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA2)) && ((uint32_t)(__STREAM__) == ((uint32_t)LL_DMA_STREAM_6))) ? DMA2_Stream6 : \
- (((uint32_t)(__DMA_INSTANCE__) == ((uint32_t)DMA1)) && ((uint32_t)(__STREAM__) == ((uint32_t)LL_DMA_STREAM_7))) ? DMA1_Stream7 : \
- DMA2_Stream7)
- /**
- * @}
- */
- /**
- * @}
- */
- /* Exported functions --------------------------------------------------------*/
- /** @defgroup DMA_LL_Exported_Functions DMA Exported Functions
- * @{
- */
- /** @defgroup DMA_LL_EF_Configuration Configuration
- * @{
- */
- /**
- * @brief Enable DMA stream.
- * @rmtoll CR EN LL_DMA_EnableStream
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_EnableStream(DMA_TypeDef *DMAx, uint32_t Stream)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- SET_BIT(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->CR, DMA_SxCR_EN);
- }
- /**
- * @brief Disable DMA stream.
- * @rmtoll CR EN LL_DMA_DisableStream
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_DisableStream(DMA_TypeDef *DMAx, uint32_t Stream)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- CLEAR_BIT(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->CR, DMA_SxCR_EN);
- }
- /**
- * @brief Check if DMA stream is enabled or disabled.
- * @rmtoll CR EN LL_DMA_IsEnabledStream
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_DMA_IsEnabledStream(DMA_TypeDef *DMAx, uint32_t Stream)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- return ((READ_BIT(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->CR, DMA_SxCR_EN) == (DMA_SxCR_EN)) ? 1UL : 0UL);
- }
- /**
- * @brief Configure all parameters linked to DMA transfer.
- * @rmtoll CR DIR LL_DMA_ConfigTransfer\n
- * CR CIRC LL_DMA_ConfigTransfer\n
- * CR PINC LL_DMA_ConfigTransfer\n
- * CR MINC LL_DMA_ConfigTransfer\n
- * CR PSIZE LL_DMA_ConfigTransfer\n
- * CR MSIZE LL_DMA_ConfigTransfer\n
- * CR PL LL_DMA_ConfigTransfer\n
- * CR PFCTRL LL_DMA_ConfigTransfer\n
- * CR DBM LL_DMA_ConfigTransfer\n
- * CR CT LL_DMA_ConfigTransfer
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @param Configuration This parameter must be a combination of all the following values:
- * @arg @ref LL_DMA_DIRECTION_PERIPH_TO_MEMORY or @ref LL_DMA_DIRECTION_MEMORY_TO_PERIPH or @ref LL_DMA_DIRECTION_MEMORY_TO_MEMORY
- * @arg @ref LL_DMA_MODE_NORMAL or @ref LL_DMA_MODE_CIRCULAR or @ref LL_DMA_MODE_PFCTRL
- * @arg @ref LL_DMA_PERIPH_INCREMENT or @ref LL_DMA_PERIPH_NOINCREMENT
- * @arg @ref LL_DMA_MEMORY_INCREMENT or @ref LL_DMA_MEMORY_NOINCREMENT
- * @arg @ref LL_DMA_PDATAALIGN_BYTE or @ref LL_DMA_PDATAALIGN_HALFWORD or @ref LL_DMA_PDATAALIGN_WORD
- * @arg @ref LL_DMA_MDATAALIGN_BYTE or @ref LL_DMA_MDATAALIGN_HALFWORD or @ref LL_DMA_MDATAALIGN_WORD
- * @arg @ref LL_DMA_PRIORITY_LOW or @ref LL_DMA_PRIORITY_MEDIUM or @ref LL_DMA_PRIORITY_HIGH or @ref LL_DMA_PRIORITY_VERYHIGH
- * @arg @ref LL_DMA_DOUBLEBUFFER_MODE_DISABLE or @ref LL_DMA_DOUBLEBUFFER_MODE_ENABLE
- * @arg @ref LL_DMA_CURRENTTARGETMEM0 or @ref LL_DMA_CURRENTTARGETMEM1
- *@retval None
- */
- __STATIC_INLINE void LL_DMA_ConfigTransfer(DMA_TypeDef *DMAx, uint32_t Stream, uint32_t Configuration)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- MODIFY_REG(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->CR,
- DMA_SxCR_DIR | DMA_SxCR_CIRC | DMA_SxCR_PINC | DMA_SxCR_MINC | DMA_SxCR_PSIZE | DMA_SxCR_MSIZE | DMA_SxCR_PL | \
- DMA_SxCR_PFCTRL | DMA_SxCR_DBM | DMA_SxCR_CT, Configuration);
- }
- /**
- * @brief Set Data transfer direction (read from peripheral or from memory).
- * @rmtoll CR DIR LL_DMA_SetDataTransferDirection
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @param Direction This parameter can be one of the following values:
- * @arg @ref LL_DMA_DIRECTION_PERIPH_TO_MEMORY
- * @arg @ref LL_DMA_DIRECTION_MEMORY_TO_PERIPH
- * @arg @ref LL_DMA_DIRECTION_MEMORY_TO_MEMORY
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_SetDataTransferDirection(DMA_TypeDef *DMAx, uint32_t Stream, uint32_t Direction)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- MODIFY_REG(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->CR, DMA_SxCR_DIR, Direction);
- }
- /**
- * @brief Get Data transfer direction (read from peripheral or from memory).
- * @rmtoll CR DIR LL_DMA_GetDataTransferDirection
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @retval Returned value can be one of the following values:
- * @arg @ref LL_DMA_DIRECTION_PERIPH_TO_MEMORY
- * @arg @ref LL_DMA_DIRECTION_MEMORY_TO_PERIPH
- * @arg @ref LL_DMA_DIRECTION_MEMORY_TO_MEMORY
- */
- __STATIC_INLINE uint32_t LL_DMA_GetDataTransferDirection(DMA_TypeDef *DMAx, uint32_t Stream)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- return (READ_BIT(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->CR, DMA_SxCR_DIR));
- }
- /**
- * @brief Set DMA mode normal, circular or peripheral flow control.
- * @rmtoll CR CIRC LL_DMA_SetMode\n
- * CR PFCTRL LL_DMA_SetMode
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @param Mode This parameter can be one of the following values:
- * @arg @ref LL_DMA_MODE_NORMAL
- * @arg @ref LL_DMA_MODE_CIRCULAR
- * @arg @ref LL_DMA_MODE_PFCTRL
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_SetMode(DMA_TypeDef *DMAx, uint32_t Stream, uint32_t Mode)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- MODIFY_REG(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->CR, DMA_SxCR_CIRC | DMA_SxCR_PFCTRL, Mode);
- }
- /**
- * @brief Get DMA mode normal, circular or peripheral flow control.
- * @rmtoll CR CIRC LL_DMA_GetMode\n
- * CR PFCTRL LL_DMA_GetMode
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @retval Returned value can be one of the following values:
- * @arg @ref LL_DMA_MODE_NORMAL
- * @arg @ref LL_DMA_MODE_CIRCULAR
- * @arg @ref LL_DMA_MODE_PFCTRL
- */
- __STATIC_INLINE uint32_t LL_DMA_GetMode(DMA_TypeDef *DMAx, uint32_t Stream)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- return (READ_BIT(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->CR, DMA_SxCR_CIRC | DMA_SxCR_PFCTRL));
- }
- /**
- * @brief Set Peripheral increment mode.
- * @rmtoll CR PINC LL_DMA_SetPeriphIncMode
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @param IncrementMode This parameter can be one of the following values:
- * @arg @ref LL_DMA_PERIPH_NOINCREMENT
- * @arg @ref LL_DMA_PERIPH_INCREMENT
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_SetPeriphIncMode(DMA_TypeDef *DMAx, uint32_t Stream, uint32_t IncrementMode)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- MODIFY_REG(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->CR, DMA_SxCR_PINC, IncrementMode);
- }
- /**
- * @brief Get Peripheral increment mode.
- * @rmtoll CR PINC LL_DMA_GetPeriphIncMode
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @retval Returned value can be one of the following values:
- * @arg @ref LL_DMA_PERIPH_NOINCREMENT
- * @arg @ref LL_DMA_PERIPH_INCREMENT
- */
- __STATIC_INLINE uint32_t LL_DMA_GetPeriphIncMode(DMA_TypeDef *DMAx, uint32_t Stream)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- return (READ_BIT(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->CR, DMA_SxCR_PINC));
- }
- /**
- * @brief Set Memory increment mode.
- * @rmtoll CR MINC LL_DMA_SetMemoryIncMode
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @param IncrementMode This parameter can be one of the following values:
- * @arg @ref LL_DMA_MEMORY_NOINCREMENT
- * @arg @ref LL_DMA_MEMORY_INCREMENT
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_SetMemoryIncMode(DMA_TypeDef *DMAx, uint32_t Stream, uint32_t IncrementMode)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- MODIFY_REG(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->CR, DMA_SxCR_MINC, IncrementMode);
- }
- /**
- * @brief Get Memory increment mode.
- * @rmtoll CR MINC LL_DMA_GetMemoryIncMode
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @retval Returned value can be one of the following values:
- * @arg @ref LL_DMA_MEMORY_NOINCREMENT
- * @arg @ref LL_DMA_MEMORY_INCREMENT
- */
- __STATIC_INLINE uint32_t LL_DMA_GetMemoryIncMode(DMA_TypeDef *DMAx, uint32_t Stream)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- return (READ_BIT(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->CR, DMA_SxCR_MINC));
- }
- /**
- * @brief Set Peripheral size.
- * @rmtoll CR PSIZE LL_DMA_SetPeriphSize
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @param Size This parameter can be one of the following values:
- * @arg @ref LL_DMA_PDATAALIGN_BYTE
- * @arg @ref LL_DMA_PDATAALIGN_HALFWORD
- * @arg @ref LL_DMA_PDATAALIGN_WORD
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_SetPeriphSize(DMA_TypeDef *DMAx, uint32_t Stream, uint32_t Size)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- MODIFY_REG(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->CR, DMA_SxCR_PSIZE, Size);
- }
- /**
- * @brief Get Peripheral size.
- * @rmtoll CR PSIZE LL_DMA_GetPeriphSize
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @retval Returned value can be one of the following values:
- * @arg @ref LL_DMA_PDATAALIGN_BYTE
- * @arg @ref LL_DMA_PDATAALIGN_HALFWORD
- * @arg @ref LL_DMA_PDATAALIGN_WORD
- */
- __STATIC_INLINE uint32_t LL_DMA_GetPeriphSize(DMA_TypeDef *DMAx, uint32_t Stream)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- return (READ_BIT(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->CR, DMA_SxCR_PSIZE));
- }
- /**
- * @brief Set Memory size.
- * @rmtoll CR MSIZE LL_DMA_SetMemorySize
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @param Size This parameter can be one of the following values:
- * @arg @ref LL_DMA_MDATAALIGN_BYTE
- * @arg @ref LL_DMA_MDATAALIGN_HALFWORD
- * @arg @ref LL_DMA_MDATAALIGN_WORD
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_SetMemorySize(DMA_TypeDef *DMAx, uint32_t Stream, uint32_t Size)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- MODIFY_REG(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->CR, DMA_SxCR_MSIZE, Size);
- }
- /**
- * @brief Get Memory size.
- * @rmtoll CR MSIZE LL_DMA_GetMemorySize
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @retval Returned value can be one of the following values:
- * @arg @ref LL_DMA_MDATAALIGN_BYTE
- * @arg @ref LL_DMA_MDATAALIGN_HALFWORD
- * @arg @ref LL_DMA_MDATAALIGN_WORD
- */
- __STATIC_INLINE uint32_t LL_DMA_GetMemorySize(DMA_TypeDef *DMAx, uint32_t Stream)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- return (READ_BIT(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->CR, DMA_SxCR_MSIZE));
- }
- /**
- * @brief Set Peripheral increment offset size.
- * @rmtoll CR PINCOS LL_DMA_SetIncOffsetSize
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @param OffsetSize This parameter can be one of the following values:
- * @arg @ref LL_DMA_OFFSETSIZE_PSIZE
- * @arg @ref LL_DMA_OFFSETSIZE_FIXEDTO4
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_SetIncOffsetSize(DMA_TypeDef *DMAx, uint32_t Stream, uint32_t OffsetSize)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- MODIFY_REG(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->CR, DMA_SxCR_PINCOS, OffsetSize);
- }
- /**
- * @brief Get Peripheral increment offset size.
- * @rmtoll CR PINCOS LL_DMA_GetIncOffsetSize
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @retval Returned value can be one of the following values:
- * @arg @ref LL_DMA_OFFSETSIZE_PSIZE
- * @arg @ref LL_DMA_OFFSETSIZE_FIXEDTO4
- */
- __STATIC_INLINE uint32_t LL_DMA_GetIncOffsetSize(DMA_TypeDef *DMAx, uint32_t Stream)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- return (READ_BIT(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->CR, DMA_SxCR_PINCOS));
- }
- /**
- * @brief Set Stream priority level.
- * @rmtoll CR PL LL_DMA_SetStreamPriorityLevel
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @param Priority This parameter can be one of the following values:
- * @arg @ref LL_DMA_PRIORITY_LOW
- * @arg @ref LL_DMA_PRIORITY_MEDIUM
- * @arg @ref LL_DMA_PRIORITY_HIGH
- * @arg @ref LL_DMA_PRIORITY_VERYHIGH
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_SetStreamPriorityLevel(DMA_TypeDef *DMAx, uint32_t Stream, uint32_t Priority)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- MODIFY_REG(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->CR, DMA_SxCR_PL, Priority);
- }
- /**
- * @brief Get Stream priority level.
- * @rmtoll CR PL LL_DMA_GetStreamPriorityLevel
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @retval Returned value can be one of the following values:
- * @arg @ref LL_DMA_PRIORITY_LOW
- * @arg @ref LL_DMA_PRIORITY_MEDIUM
- * @arg @ref LL_DMA_PRIORITY_HIGH
- * @arg @ref LL_DMA_PRIORITY_VERYHIGH
- */
- __STATIC_INLINE uint32_t LL_DMA_GetStreamPriorityLevel(DMA_TypeDef *DMAx, uint32_t Stream)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- return (READ_BIT(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->CR, DMA_SxCR_PL));
- }
- /**
- * @brief Enable DMA stream bufferable transfer.
- * @rmtoll CR TRBUFF LL_DMA_EnableBufferableTransfer
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_EnableBufferableTransfer(DMA_TypeDef *DMAx, uint32_t Stream)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- SET_BIT(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->CR, DMA_SxCR_TRBUFF);
- }
- /**
- * @brief Disable DMA stream bufferable transfer.
- * @rmtoll CR TRBUFF LL_DMA_DisableBufferableTransfer
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_DisableBufferableTransfer(DMA_TypeDef *DMAx, uint32_t Stream)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- CLEAR_BIT(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->CR, DMA_SxCR_TRBUFF);
- }
- /**
- * @brief Set Number of data to transfer.
- * @rmtoll NDTR NDT LL_DMA_SetDataLength
- * @note This action has no effect if
- * stream is enabled.
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @param NbData Between 0 to 0xFFFFFFFF
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_SetDataLength(DMA_TypeDef *DMAx, uint32_t Stream, uint32_t NbData)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- MODIFY_REG(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->NDTR, DMA_SxNDT, NbData);
- }
- /**
- * @brief Get Number of data to transfer.
- * @rmtoll NDTR NDT LL_DMA_GetDataLength
- * @note Once the stream is enabled, the return value indicate the
- * remaining bytes to be transmitted.
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @retval Between 0 to 0xFFFFFFFF
- */
- __STATIC_INLINE uint32_t LL_DMA_GetDataLength(DMA_TypeDef *DMAx, uint32_t Stream)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- return (READ_BIT(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->NDTR, DMA_SxNDT));
- }
- /**
- * @brief Set DMA request for DMA Streams on DMAMUX Channel x.
- * @note DMAMUX channel 0 to 7 are mapped to DMA1 stream 0 to 7.
- * DMAMUX channel 8 to 15 are mapped to DMA2 stream 0 to 7.
- * @rmtoll CxCR DMAREQ_ID LL_DMA_SetPeriphRequest
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @param Request This parameter can be one of the following values:
- * @arg @ref LL_DMAMUX1_REQ_MEM2MEM
- * @arg @ref LL_DMAMUX1_REQ_GENERATOR0
- * @arg @ref LL_DMAMUX1_REQ_GENERATOR1
- * @arg @ref LL_DMAMUX1_REQ_GENERATOR2
- * @arg @ref LL_DMAMUX1_REQ_GENERATOR3
- * @arg @ref LL_DMAMUX1_REQ_GENERATOR4
- * @arg @ref LL_DMAMUX1_REQ_GENERATOR5
- * @arg @ref LL_DMAMUX1_REQ_GENERATOR6
- * @arg @ref LL_DMAMUX1_REQ_GENERATOR7
- * @arg @ref LL_DMAMUX1_REQ_ADC1
- * @arg @ref LL_DMAMUX1_REQ_ADC2
- * @arg @ref LL_DMAMUX1_REQ_TIM1_CH1
- * @arg @ref LL_DMAMUX1_REQ_TIM1_CH2
- * @arg @ref LL_DMAMUX1_REQ_TIM1_CH3
- * @arg @ref LL_DMAMUX1_REQ_TIM1_CH4
- * @arg @ref LL_DMAMUX1_REQ_TIM1_UP
- * @arg @ref LL_DMAMUX1_REQ_TIM1_TRIG
- * @arg @ref LL_DMAMUX1_REQ_TIM1_COM
- * @arg @ref LL_DMAMUX1_REQ_TIM2_CH1
- * @arg @ref LL_DMAMUX1_REQ_TIM2_CH2
- * @arg @ref LL_DMAMUX1_REQ_TIM2_CH3
- * @arg @ref LL_DMAMUX1_REQ_TIM2_CH4
- * @arg @ref LL_DMAMUX1_REQ_TIM2_UP
- * @arg @ref LL_DMAMUX1_REQ_TIM3_CH1
- * @arg @ref LL_DMAMUX1_REQ_TIM3_CH2
- * @arg @ref LL_DMAMUX1_REQ_TIM3_CH3
- * @arg @ref LL_DMAMUX1_REQ_TIM3_CH4
- * @arg @ref LL_DMAMUX1_REQ_TIM3_UP
- * @arg @ref LL_DMAMUX1_REQ_TIM3_TRIG
- * @arg @ref LL_DMAMUX1_REQ_TIM4_CH1
- * @arg @ref LL_DMAMUX1_REQ_TIM4_CH2
- * @arg @ref LL_DMAMUX1_REQ_TIM4_CH3
- * @arg @ref LL_DMAMUX1_REQ_TIM4_UP
- * @arg @ref LL_DMAMUX1_REQ_I2C1_RX
- * @arg @ref LL_DMAMUX1_REQ_I2C1_TX
- * @arg @ref LL_DMAMUX1_REQ_I2C2_RX
- * @arg @ref LL_DMAMUX1_REQ_I2C2_TX
- * @arg @ref LL_DMAMUX1_REQ_SPI1_RX
- * @arg @ref LL_DMAMUX1_REQ_SPI1_TX
- * @arg @ref LL_DMAMUX1_REQ_SPI2_RX
- * @arg @ref LL_DMAMUX1_REQ_SPI2_TX
- * @arg @ref LL_DMAMUX1_REQ_USART1_RX
- * @arg @ref LL_DMAMUX1_REQ_USART1_TX
- * @arg @ref LL_DMAMUX1_REQ_USART2_RX
- * @arg @ref LL_DMAMUX1_REQ_USART2_TX
- * @arg @ref LL_DMAMUX1_REQ_USART3_RX
- * @arg @ref LL_DMAMUX1_REQ_USART3_TX
- * @arg @ref LL_DMAMUX1_REQ_TIM8_CH1
- * @arg @ref LL_DMAMUX1_REQ_TIM8_CH2
- * @arg @ref LL_DMAMUX1_REQ_TIM8_CH3
- * @arg @ref LL_DMAMUX1_REQ_TIM8_CH4
- * @arg @ref LL_DMAMUX1_REQ_TIM8_UP
- * @arg @ref LL_DMAMUX1_REQ_TIM8_TRIG
- * @arg @ref LL_DMAMUX1_REQ_TIM8_COM
- * @arg @ref LL_DMAMUX1_REQ_TIM5_CH1
- * @arg @ref LL_DMAMUX1_REQ_TIM5_CH2
- * @arg @ref LL_DMAMUX1_REQ_TIM5_CH3
- * @arg @ref LL_DMAMUX1_REQ_TIM5_CH4
- * @arg @ref LL_DMAMUX1_REQ_TIM5_UP
- * @arg @ref LL_DMAMUX1_REQ_TIM5_TRIG
- * @arg @ref LL_DMAMUX1_REQ_SPI3_RX
- * @arg @ref LL_DMAMUX1_REQ_SPI3_TX
- * @arg @ref LL_DMAMUX1_REQ_UART4_RX
- * @arg @ref LL_DMAMUX1_REQ_UART4_TX
- * @arg @ref LL_DMAMUX1_REQ_UART5_RX
- * @arg @ref LL_DMAMUX1_REQ_UART5_TX
- * @arg @ref LL_DMAMUX1_REQ_DAC1_CH1
- * @arg @ref LL_DMAMUX1_REQ_DAC1_CH2
- * @arg @ref LL_DMAMUX1_REQ_TIM6_UP
- * @arg @ref LL_DMAMUX1_REQ_TIM7_UP
- * @arg @ref LL_DMAMUX1_REQ_USART6_RX
- * @arg @ref LL_DMAMUX1_REQ_USART6_TX
- * @arg @ref LL_DMAMUX1_REQ_I2C3_RX
- * @arg @ref LL_DMAMUX1_REQ_I2C3_TX
- * @arg @ref LL_DMAMUX1_REQ_DCMI_PSSI (*)
- * @arg @ref LL_DMAMUX1_REQ_CRYP_IN
- * @arg @ref LL_DMAMUX1_REQ_CRYP_OUT
- * @arg @ref LL_DMAMUX1_REQ_HASH_IN
- * @arg @ref LL_DMAMUX1_REQ_UART7_RX
- * @arg @ref LL_DMAMUX1_REQ_UART7_TX
- * @arg @ref LL_DMAMUX1_REQ_UART8_RX
- * @arg @ref LL_DMAMUX1_REQ_UART8_TX
- * @arg @ref LL_DMAMUX1_REQ_SPI4_RX
- * @arg @ref LL_DMAMUX1_REQ_SPI4_TX
- * @arg @ref LL_DMAMUX1_REQ_SPI5_RX
- * @arg @ref LL_DMAMUX1_REQ_SPI5_TX
- * @arg @ref LL_DMAMUX1_REQ_SAI1_A
- * @arg @ref LL_DMAMUX1_REQ_SAI1_B
- * @arg @ref LL_DMAMUX1_REQ_SAI2_A (*)
- * @arg @ref LL_DMAMUX1_REQ_SAI2_B (*)
- * @arg @ref LL_DMAMUX1_REQ_SWPMI_RX
- * @arg @ref LL_DMAMUX1_REQ_SWPMI_TX
- * @arg @ref LL_DMAMUX1_REQ_SPDIF_RX_DT
- * @arg @ref LL_DMAMUX1_REQ_SPDIF_RX_CS
- * @arg @ref LL_DMAMUX1_REQ_HRTIM_MASTER (*)
- * @arg @ref LL_DMAMUX1_REQ_HRTIM_TIMER_A (*)
- * @arg @ref LL_DMAMUX1_REQ_HRTIM_TIMER_B (*)
- * @arg @ref LL_DMAMUX1_REQ_HRTIM_TIMER_C (*)
- * @arg @ref LL_DMAMUX1_REQ_HRTIM_TIMER_D (*)
- * @arg @ref LL_DMAMUX1_REQ_HRTIM_TIMER_E (*)
- * @arg @ref LL_DMAMUX1_REQ_DFSDM1_FLT0
- * @arg @ref LL_DMAMUX1_REQ_DFSDM1_FLT1
- * @arg @ref LL_DMAMUX1_REQ_DFSDM1_FLT2
- * @arg @ref LL_DMAMUX1_REQ_DFSDM1_FLT3
- * @arg @ref LL_DMAMUX1_REQ_TIM15_CH1
- * @arg @ref LL_DMAMUX1_REQ_TIM15_UP
- * @arg @ref LL_DMAMUX1_REQ_TIM15_TRIG
- * @arg @ref LL_DMAMUX1_REQ_TIM15_COM
- * @arg @ref LL_DMAMUX1_REQ_TIM16_CH1
- * @arg @ref LL_DMAMUX1_REQ_TIM16_UP
- * @arg @ref LL_DMAMUX1_REQ_TIM17_CH1
- * @arg @ref LL_DMAMUX1_REQ_TIM17_UP
- * @arg @ref LL_DMAMUX1_REQ_SAI3_A (*)
- * @arg @ref LL_DMAMUX1_REQ_SAI3_B (*)
- * @arg @ref LL_DMAMUX1_REQ_ADC3 (*)
- * @arg @ref LL_DMAMUX1_REQ_UART9_RX (*)
- * @arg @ref LL_DMAMUX1_REQ_UART9_TX (*)
- * @arg @ref LL_DMAMUX1_REQ_USART10_RX (*)
- * @arg @ref LL_DMAMUX1_REQ_USART10_TX (*)
- * @arg @ref LL_DMAMUX1_REQ_FMAC_READ (*)
- * @arg @ref LL_DMAMUX1_REQ_FMAC_WRITE (*)
- * @arg @ref LL_DMAMUX1_REQ_CORDIC_READ (*)
- * @arg @ref LL_DMAMUX1_REQ_CORDIC_WRITE(*)
- * @arg @ref LL_DMAMUX1_REQ_I2C5_RX (*)
- * @arg @ref LL_DMAMUX1_REQ_I2C5_TX (*)
- * @arg @ref LL_DMAMUX1_REQ_TIM23_CH1 (*)
- * @arg @ref LL_DMAMUX1_REQ_TIM23_CH2 (*)
- * @arg @ref LL_DMAMUX1_REQ_TIM23_CH3 (*)
- * @arg @ref LL_DMAMUX1_REQ_TIM23_CH4 (*)
- * @arg @ref LL_DMAMUX1_REQ_TIM23_UP (*)
- * @arg @ref LL_DMAMUX1_REQ_TIM23_TRIG (*)
- * @arg @ref LL_DMAMUX1_REQ_TIM24_CH1 (*)
- * @arg @ref LL_DMAMUX1_REQ_TIM24_CH2 (*)
- * @arg @ref LL_DMAMUX1_REQ_TIM24_CH3 (*)
- * @arg @ref LL_DMAMUX1_REQ_TIM24_CH4 (*)
- * @arg @ref LL_DMAMUX1_REQ_TIM24_UP (*)
- * @arg @ref LL_DMAMUX1_REQ_TIM24_TRIG (*)
- *
- * @note (*) Availability depends on devices.
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_SetPeriphRequest(DMA_TypeDef *DMAx, uint32_t Stream, uint32_t Request)
- {
- MODIFY_REG(((DMAMUX_Channel_TypeDef *)(uint32_t)((uint32_t)DMAMUX1_Channel0 + (DMAMUX_CCR_SIZE * (Stream)) + (uint32_t)(DMAMUX_CCR_SIZE * LL_DMA_INSTANCE_TO_DMAMUX_CHANNEL(DMAx))))->CCR, DMAMUX_CxCR_DMAREQ_ID, Request);
- }
- /**
- * @brief Get DMA request for DMA Channels on DMAMUX Channel x.
- * @note DMAMUX channel 0 to 7 are mapped to DMA1 stream 0 to 7.
- * DMAMUX channel 8 to 15 are mapped to DMA2 stream 0 to 7.
- * @rmtoll CxCR DMAREQ_ID LL_DMA_GetPeriphRequest
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @retval Returned value can be one of the following values:
- * @arg @ref LL_DMAMUX1_REQ_MEM2MEM
- * @arg @ref LL_DMAMUX1_REQ_GENERATOR0
- * @arg @ref LL_DMAMUX1_REQ_GENERATOR1
- * @arg @ref LL_DMAMUX1_REQ_GENERATOR2
- * @arg @ref LL_DMAMUX1_REQ_GENERATOR3
- * @arg @ref LL_DMAMUX1_REQ_GENERATOR4
- * @arg @ref LL_DMAMUX1_REQ_GENERATOR5
- * @arg @ref LL_DMAMUX1_REQ_GENERATOR6
- * @arg @ref LL_DMAMUX1_REQ_GENERATOR7
- * @arg @ref LL_DMAMUX1_REQ_ADC1
- * @arg @ref LL_DMAMUX1_REQ_ADC2
- * @arg @ref LL_DMAMUX1_REQ_TIM1_CH1
- * @arg @ref LL_DMAMUX1_REQ_TIM1_CH2
- * @arg @ref LL_DMAMUX1_REQ_TIM1_CH3
- * @arg @ref LL_DMAMUX1_REQ_TIM1_CH4
- * @arg @ref LL_DMAMUX1_REQ_TIM1_UP
- * @arg @ref LL_DMAMUX1_REQ_TIM1_TRIG
- * @arg @ref LL_DMAMUX1_REQ_TIM1_COM
- * @arg @ref LL_DMAMUX1_REQ_TIM2_CH1
- * @arg @ref LL_DMAMUX1_REQ_TIM2_CH2
- * @arg @ref LL_DMAMUX1_REQ_TIM2_CH3
- * @arg @ref LL_DMAMUX1_REQ_TIM2_CH4
- * @arg @ref LL_DMAMUX1_REQ_TIM2_UP
- * @arg @ref LL_DMAMUX1_REQ_TIM3_CH1
- * @arg @ref LL_DMAMUX1_REQ_TIM3_CH2
- * @arg @ref LL_DMAMUX1_REQ_TIM3_CH3
- * @arg @ref LL_DMAMUX1_REQ_TIM3_CH4
- * @arg @ref LL_DMAMUX1_REQ_TIM3_UP
- * @arg @ref LL_DMAMUX1_REQ_TIM3_TRIG
- * @arg @ref LL_DMAMUX1_REQ_TIM4_CH1
- * @arg @ref LL_DMAMUX1_REQ_TIM4_CH2
- * @arg @ref LL_DMAMUX1_REQ_TIM4_CH3
- * @arg @ref LL_DMAMUX1_REQ_TIM4_UP
- * @arg @ref LL_DMAMUX1_REQ_I2C1_RX
- * @arg @ref LL_DMAMUX1_REQ_I2C1_TX
- * @arg @ref LL_DMAMUX1_REQ_I2C2_RX
- * @arg @ref LL_DMAMUX1_REQ_I2C2_TX
- * @arg @ref LL_DMAMUX1_REQ_SPI1_RX
- * @arg @ref LL_DMAMUX1_REQ_SPI1_TX
- * @arg @ref LL_DMAMUX1_REQ_SPI2_RX
- * @arg @ref LL_DMAMUX1_REQ_SPI2_TX
- * @arg @ref LL_DMAMUX1_REQ_USART1_RX
- * @arg @ref LL_DMAMUX1_REQ_USART1_TX
- * @arg @ref LL_DMAMUX1_REQ_USART2_RX
- * @arg @ref LL_DMAMUX1_REQ_USART2_TX
- * @arg @ref LL_DMAMUX1_REQ_USART3_RX
- * @arg @ref LL_DMAMUX1_REQ_USART3_TX
- * @arg @ref LL_DMAMUX1_REQ_TIM8_CH1
- * @arg @ref LL_DMAMUX1_REQ_TIM8_CH2
- * @arg @ref LL_DMAMUX1_REQ_TIM8_CH3
- * @arg @ref LL_DMAMUX1_REQ_TIM8_CH4
- * @arg @ref LL_DMAMUX1_REQ_TIM8_UP
- * @arg @ref LL_DMAMUX1_REQ_TIM8_TRIG
- * @arg @ref LL_DMAMUX1_REQ_TIM8_COM
- * @arg @ref LL_DMAMUX1_REQ_TIM5_CH1
- * @arg @ref LL_DMAMUX1_REQ_TIM5_CH2
- * @arg @ref LL_DMAMUX1_REQ_TIM5_CH3
- * @arg @ref LL_DMAMUX1_REQ_TIM5_CH4
- * @arg @ref LL_DMAMUX1_REQ_TIM5_UP
- * @arg @ref LL_DMAMUX1_REQ_TIM5_TRIG
- * @arg @ref LL_DMAMUX1_REQ_SPI3_RX
- * @arg @ref LL_DMAMUX1_REQ_SPI3_TX
- * @arg @ref LL_DMAMUX1_REQ_UART4_RX
- * @arg @ref LL_DMAMUX1_REQ_UART4_TX
- * @arg @ref LL_DMAMUX1_REQ_UART5_RX
- * @arg @ref LL_DMAMUX1_REQ_UART5_TX
- * @arg @ref LL_DMAMUX1_REQ_DAC1_CH1
- * @arg @ref LL_DMAMUX1_REQ_DAC1_CH2
- * @arg @ref LL_DMAMUX1_REQ_TIM6_UP
- * @arg @ref LL_DMAMUX1_REQ_TIM7_UP
- * @arg @ref LL_DMAMUX1_REQ_USART6_RX
- * @arg @ref LL_DMAMUX1_REQ_USART6_TX
- * @arg @ref LL_DMAMUX1_REQ_I2C3_RX
- * @arg @ref LL_DMAMUX1_REQ_I2C3_TX
- * @arg @ref LL_DMAMUX1_REQ_DCMI_PSSI (*)
- * @arg @ref LL_DMAMUX1_REQ_CRYP_IN
- * @arg @ref LL_DMAMUX1_REQ_CRYP_OUT
- * @arg @ref LL_DMAMUX1_REQ_HASH_IN
- * @arg @ref LL_DMAMUX1_REQ_UART7_RX
- * @arg @ref LL_DMAMUX1_REQ_UART7_TX
- * @arg @ref LL_DMAMUX1_REQ_UART8_RX
- * @arg @ref LL_DMAMUX1_REQ_UART8_TX
- * @arg @ref LL_DMAMUX1_REQ_SPI4_RX
- * @arg @ref LL_DMAMUX1_REQ_SPI4_TX
- * @arg @ref LL_DMAMUX1_REQ_SPI5_RX
- * @arg @ref LL_DMAMUX1_REQ_SPI5_TX
- * @arg @ref LL_DMAMUX1_REQ_SAI1_A
- * @arg @ref LL_DMAMUX1_REQ_SAI1_B
- * @arg @ref LL_DMAMUX1_REQ_SAI2_A (*)
- * @arg @ref LL_DMAMUX1_REQ_SAI2_B (*)
- * @arg @ref LL_DMAMUX1_REQ_SWPMI_RX
- * @arg @ref LL_DMAMUX1_REQ_SWPMI_TX
- * @arg @ref LL_DMAMUX1_REQ_SPDIF_RX_DT
- * @arg @ref LL_DMAMUX1_REQ_SPDIF_RX_CS
- * @arg @ref LL_DMAMUX1_REQ_HRTIM_MASTER (*)
- * @arg @ref LL_DMAMUX1_REQ_HRTIM_TIMER_A (*)
- * @arg @ref LL_DMAMUX1_REQ_HRTIM_TIMER_B (*)
- * @arg @ref LL_DMAMUX1_REQ_HRTIM_TIMER_C (*)
- * @arg @ref LL_DMAMUX1_REQ_HRTIM_TIMER_D (*)
- * @arg @ref LL_DMAMUX1_REQ_HRTIM_TIMER_E (*)
- * @arg @ref LL_DMAMUX1_REQ_DFSDM1_FLT0
- * @arg @ref LL_DMAMUX1_REQ_DFSDM1_FLT1
- * @arg @ref LL_DMAMUX1_REQ_DFSDM1_FLT2
- * @arg @ref LL_DMAMUX1_REQ_DFSDM1_FLT3
- * @arg @ref LL_DMAMUX1_REQ_TIM15_CH1
- * @arg @ref LL_DMAMUX1_REQ_TIM15_UP
- * @arg @ref LL_DMAMUX1_REQ_TIM15_TRIG
- * @arg @ref LL_DMAMUX1_REQ_TIM15_COM
- * @arg @ref LL_DMAMUX1_REQ_TIM16_CH1
- * @arg @ref LL_DMAMUX1_REQ_TIM16_UP
- * @arg @ref LL_DMAMUX1_REQ_TIM17_CH1
- * @arg @ref LL_DMAMUX1_REQ_TIM17_UP
- * @arg @ref LL_DMAMUX1_REQ_SAI3_A (*)
- * @arg @ref LL_DMAMUX1_REQ_SAI3_B (*)
- * @arg @ref LL_DMAMUX1_REQ_ADC3 (*)
- * @arg @ref LL_DMAMUX1_REQ_UART9_RX (*)
- * @arg @ref LL_DMAMUX1_REQ_UART9_TX (*)
- * @arg @ref LL_DMAMUX1_REQ_USART10_RX (*)
- * @arg @ref LL_DMAMUX1_REQ_USART10_TX (*)
- * @arg @ref LL_DMAMUX1_REQ_FMAC_READ (*)
- * @arg @ref LL_DMAMUX1_REQ_FMAC_WRITE (*)
- * @arg @ref LL_DMAMUX1_REQ_CORDIC_READ (*)
- * @arg @ref LL_DMAMUX1_REQ_CORDIC_WRITE(*)
- * @arg @ref LL_DMAMUX1_REQ_I2C5_RX (*)
- * @arg @ref LL_DMAMUX1_REQ_I2C5_TX (*)
- * @arg @ref LL_DMAMUX1_REQ_TIM23_CH1 (*)
- * @arg @ref LL_DMAMUX1_REQ_TIM23_CH2 (*)
- * @arg @ref LL_DMAMUX1_REQ_TIM23_CH3 (*)
- * @arg @ref LL_DMAMUX1_REQ_TIM23_CH4 (*)
- * @arg @ref LL_DMAMUX1_REQ_TIM23_UP (*)
- * @arg @ref LL_DMAMUX1_REQ_TIM23_TRIG (*)
- * @arg @ref LL_DMAMUX1_REQ_TIM24_CH1 (*)
- * @arg @ref LL_DMAMUX1_REQ_TIM24_CH2 (*)
- * @arg @ref LL_DMAMUX1_REQ_TIM24_CH3 (*)
- * @arg @ref LL_DMAMUX1_REQ_TIM24_CH4 (*)
- * @arg @ref LL_DMAMUX1_REQ_TIM24_UP (*)
- * @arg @ref LL_DMAMUX1_REQ_TIM24_TRIG (*)
- *
- * @note (*) Availability depends on devices.
- */
- __STATIC_INLINE uint32_t LL_DMA_GetPeriphRequest(DMA_TypeDef *DMAx, uint32_t Stream)
- {
- return (READ_BIT(((DMAMUX_Channel_TypeDef *)((uint32_t)((uint32_t)DMAMUX1_Channel0 + (DMAMUX_CCR_SIZE * (Stream)) + (uint32_t)(DMAMUX_CCR_SIZE * LL_DMA_INSTANCE_TO_DMAMUX_CHANNEL(DMAx)))))->CCR, DMAMUX_CxCR_DMAREQ_ID));
- }
- /**
- * @brief Set Memory burst transfer configuration.
- * @rmtoll CR MBURST LL_DMA_SetMemoryBurstxfer
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @param Mburst This parameter can be one of the following values:
- * @arg @ref LL_DMA_MBURST_SINGLE
- * @arg @ref LL_DMA_MBURST_INC4
- * @arg @ref LL_DMA_MBURST_INC8
- * @arg @ref LL_DMA_MBURST_INC16
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_SetMemoryBurstxfer(DMA_TypeDef *DMAx, uint32_t Stream, uint32_t Mburst)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- MODIFY_REG(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->CR, DMA_SxCR_MBURST, Mburst);
- }
- /**
- * @brief Get Memory burst transfer configuration.
- * @rmtoll CR MBURST LL_DMA_GetMemoryBurstxfer
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @retval Returned value can be one of the following values:
- * @arg @ref LL_DMA_MBURST_SINGLE
- * @arg @ref LL_DMA_MBURST_INC4
- * @arg @ref LL_DMA_MBURST_INC8
- * @arg @ref LL_DMA_MBURST_INC16
- */
- __STATIC_INLINE uint32_t LL_DMA_GetMemoryBurstxfer(DMA_TypeDef *DMAx, uint32_t Stream)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- return (READ_BIT(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->CR, DMA_SxCR_MBURST));
- }
- /**
- * @brief Set Peripheral burst transfer configuration.
- * @rmtoll CR PBURST LL_DMA_SetPeriphBurstxfer
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @param Pburst This parameter can be one of the following values:
- * @arg @ref LL_DMA_PBURST_SINGLE
- * @arg @ref LL_DMA_PBURST_INC4
- * @arg @ref LL_DMA_PBURST_INC8
- * @arg @ref LL_DMA_PBURST_INC16
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_SetPeriphBurstxfer(DMA_TypeDef *DMAx, uint32_t Stream, uint32_t Pburst)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- MODIFY_REG(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->CR, DMA_SxCR_PBURST, Pburst);
- }
- /**
- * @brief Get Peripheral burst transfer configuration.
- * @rmtoll CR PBURST LL_DMA_GetPeriphBurstxfer
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @retval Returned value can be one of the following values:
- * @arg @ref LL_DMA_PBURST_SINGLE
- * @arg @ref LL_DMA_PBURST_INC4
- * @arg @ref LL_DMA_PBURST_INC8
- * @arg @ref LL_DMA_PBURST_INC16
- */
- __STATIC_INLINE uint32_t LL_DMA_GetPeriphBurstxfer(DMA_TypeDef *DMAx, uint32_t Stream)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- return (READ_BIT(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->CR, DMA_SxCR_PBURST));
- }
- /**
- * @brief Set Current target (only in double buffer mode) to Memory 1 or Memory 0.
- * @rmtoll CR CT LL_DMA_SetCurrentTargetMem
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @param CurrentMemory This parameter can be one of the following values:
- * @arg @ref LL_DMA_CURRENTTARGETMEM0
- * @arg @ref LL_DMA_CURRENTTARGETMEM1
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_SetCurrentTargetMem(DMA_TypeDef *DMAx, uint32_t Stream, uint32_t CurrentMemory)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- MODIFY_REG(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->CR, DMA_SxCR_CT, CurrentMemory);
- }
- /**
- * @brief Set Current target (only in double buffer mode) to Memory 1 or Memory 0.
- * @rmtoll CR CT LL_DMA_GetCurrentTargetMem
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @retval Returned value can be one of the following values:
- * @arg @ref LL_DMA_CURRENTTARGETMEM0
- * @arg @ref LL_DMA_CURRENTTARGETMEM1
- */
- __STATIC_INLINE uint32_t LL_DMA_GetCurrentTargetMem(DMA_TypeDef *DMAx, uint32_t Stream)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- return (READ_BIT(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->CR, DMA_SxCR_CT));
- }
- /**
- * @brief Enable the double buffer mode.
- * @rmtoll CR DBM LL_DMA_EnableDoubleBufferMode
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_EnableDoubleBufferMode(DMA_TypeDef *DMAx, uint32_t Stream)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- SET_BIT(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->CR, DMA_SxCR_DBM);
- }
- /**
- * @brief Disable the double buffer mode.
- * @rmtoll CR DBM LL_DMA_DisableDoubleBufferMode
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_DisableDoubleBufferMode(DMA_TypeDef *DMAx, uint32_t Stream)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- CLEAR_BIT(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->CR, DMA_SxCR_DBM);
- }
- /**
- * @brief Check if double buffer mode is enabled or not.
- * @rmtoll CR DBM LL_DMA_IsEnabledDoubleBufferMode
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_DMA_IsEnabledDoubleBufferMode(DMA_TypeDef *DMAx, uint32_t Stream)
- {
- register uint32_t dma_base_addr = (uint32_t)DMAx;
- return ((READ_BIT(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->CR, DMA_SxCR_DBM) == (DMA_SxCR_DBM)) ? 1UL : 0UL);
- }
- /**
- * @brief Get FIFO status.
- * @rmtoll FCR FS LL_DMA_GetFIFOStatus
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @retval Returned value can be one of the following values:
- * @arg @ref LL_DMA_FIFOSTATUS_0_25
- * @arg @ref LL_DMA_FIFOSTATUS_25_50
- * @arg @ref LL_DMA_FIFOSTATUS_50_75
- * @arg @ref LL_DMA_FIFOSTATUS_75_100
- * @arg @ref LL_DMA_FIFOSTATUS_EMPTY
- * @arg @ref LL_DMA_FIFOSTATUS_FULL
- */
- __STATIC_INLINE uint32_t LL_DMA_GetFIFOStatus(DMA_TypeDef *DMAx, uint32_t Stream)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- return (READ_BIT(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->FCR, DMA_SxFCR_FS));
- }
- /**
- * @brief Disable Fifo mode.
- * @rmtoll FCR DMDIS LL_DMA_DisableFifoMode
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_DisableFifoMode(DMA_TypeDef *DMAx, uint32_t Stream)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- CLEAR_BIT(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->FCR, DMA_SxFCR_DMDIS);
- }
- /**
- * @brief Enable Fifo mode.
- * @rmtoll FCR DMDIS LL_DMA_EnableFifoMode
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_EnableFifoMode(DMA_TypeDef *DMAx, uint32_t Stream)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- SET_BIT(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->FCR, DMA_SxFCR_DMDIS);
- }
- /**
- * @brief Select FIFO threshold.
- * @rmtoll FCR FTH LL_DMA_SetFIFOThreshold
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @param Threshold This parameter can be one of the following values:
- * @arg @ref LL_DMA_FIFOTHRESHOLD_1_4
- * @arg @ref LL_DMA_FIFOTHRESHOLD_1_2
- * @arg @ref LL_DMA_FIFOTHRESHOLD_3_4
- * @arg @ref LL_DMA_FIFOTHRESHOLD_FULL
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_SetFIFOThreshold(DMA_TypeDef *DMAx, uint32_t Stream, uint32_t Threshold)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- MODIFY_REG(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->FCR, DMA_SxFCR_FTH, Threshold);
- }
- /**
- * @brief Get FIFO threshold.
- * @rmtoll FCR FTH LL_DMA_GetFIFOThreshold
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @retval Returned value can be one of the following values:
- * @arg @ref LL_DMA_FIFOTHRESHOLD_1_4
- * @arg @ref LL_DMA_FIFOTHRESHOLD_1_2
- * @arg @ref LL_DMA_FIFOTHRESHOLD_3_4
- * @arg @ref LL_DMA_FIFOTHRESHOLD_FULL
- */
- __STATIC_INLINE uint32_t LL_DMA_GetFIFOThreshold(DMA_TypeDef *DMAx, uint32_t Stream)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- return (READ_BIT(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->FCR, DMA_SxFCR_FTH));
- }
- /**
- * @brief Configure the FIFO .
- * @rmtoll FCR FTH LL_DMA_ConfigFifo\n
- * FCR DMDIS LL_DMA_ConfigFifo
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @param FifoMode This parameter can be one of the following values:
- * @arg @ref LL_DMA_FIFOMODE_ENABLE
- * @arg @ref LL_DMA_FIFOMODE_DISABLE
- * @param FifoThreshold This parameter can be one of the following values:
- * @arg @ref LL_DMA_FIFOTHRESHOLD_1_4
- * @arg @ref LL_DMA_FIFOTHRESHOLD_1_2
- * @arg @ref LL_DMA_FIFOTHRESHOLD_3_4
- * @arg @ref LL_DMA_FIFOTHRESHOLD_FULL
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_ConfigFifo(DMA_TypeDef *DMAx, uint32_t Stream, uint32_t FifoMode, uint32_t FifoThreshold)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- MODIFY_REG(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->FCR, DMA_SxFCR_FTH | DMA_SxFCR_DMDIS, FifoMode | FifoThreshold);
- }
- /**
- * @brief Configure the Source and Destination addresses.
- * @note This API must not be called when the DMA stream is enabled.
- * @rmtoll M0AR M0A LL_DMA_ConfigAddresses\n
- * PAR PA LL_DMA_ConfigAddresses
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @param SrcAddress Between 0 to 0xFFFFFFFF
- * @param DstAddress Between 0 to 0xFFFFFFFF
- * @param Direction This parameter can be one of the following values:
- * @arg @ref LL_DMA_DIRECTION_PERIPH_TO_MEMORY
- * @arg @ref LL_DMA_DIRECTION_MEMORY_TO_PERIPH
- * @arg @ref LL_DMA_DIRECTION_MEMORY_TO_MEMORY
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_ConfigAddresses(DMA_TypeDef *DMAx, uint32_t Stream, uint32_t SrcAddress, uint32_t DstAddress, uint32_t Direction)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- /* Direction Memory to Periph */
- if (Direction == LL_DMA_DIRECTION_MEMORY_TO_PERIPH)
- {
- WRITE_REG(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->M0AR, SrcAddress);
- WRITE_REG(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->PAR, DstAddress);
- }
- /* Direction Periph to Memory and Memory to Memory */
- else
- {
- WRITE_REG(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->PAR, SrcAddress);
- WRITE_REG(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->M0AR, DstAddress);
- }
- }
- /**
- * @brief Set the Memory address.
- * @rmtoll M0AR M0A LL_DMA_SetMemoryAddress
- * @note Interface used for direction LL_DMA_DIRECTION_PERIPH_TO_MEMORY or LL_DMA_DIRECTION_MEMORY_TO_PERIPH only.
- * @note This API must not be called when the DMA stream is enabled.
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @param MemoryAddress Between 0 to 0xFFFFFFFF
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_SetMemoryAddress(DMA_TypeDef *DMAx, uint32_t Stream, uint32_t MemoryAddress)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- WRITE_REG(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->M0AR, MemoryAddress);
- }
- /**
- * @brief Set the Peripheral address.
- * @rmtoll PAR PA LL_DMA_SetPeriphAddress
- * @note Interface used for direction LL_DMA_DIRECTION_PERIPH_TO_MEMORY or LL_DMA_DIRECTION_MEMORY_TO_PERIPH only.
- * @note This API must not be called when the DMA stream is enabled.
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @param PeriphAddress Between 0 to 0xFFFFFFFF
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_SetPeriphAddress(DMA_TypeDef *DMAx, uint32_t Stream, uint32_t PeriphAddress)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- WRITE_REG(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->PAR, PeriphAddress);
- }
- /**
- * @brief Get the Memory address.
- * @rmtoll M0AR M0A LL_DMA_GetMemoryAddress
- * @note Interface used for direction LL_DMA_DIRECTION_PERIPH_TO_MEMORY or LL_DMA_DIRECTION_MEMORY_TO_PERIPH only.
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @retval Between 0 to 0xFFFFFFFF
- */
- __STATIC_INLINE uint32_t LL_DMA_GetMemoryAddress(DMA_TypeDef *DMAx, uint32_t Stream)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- return (READ_REG(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->M0AR));
- }
- /**
- * @brief Get the Peripheral address.
- * @rmtoll PAR PA LL_DMA_GetPeriphAddress
- * @note Interface used for direction LL_DMA_DIRECTION_PERIPH_TO_MEMORY or LL_DMA_DIRECTION_MEMORY_TO_PERIPH only.
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @retval Between 0 to 0xFFFFFFFF
- */
- __STATIC_INLINE uint32_t LL_DMA_GetPeriphAddress(DMA_TypeDef *DMAx, uint32_t Stream)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- return (READ_REG(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->PAR));
- }
- /**
- * @brief Set the Memory to Memory Source address.
- * @rmtoll PAR PA LL_DMA_SetM2MSrcAddress
- * @note Interface used for direction LL_DMA_DIRECTION_MEMORY_TO_MEMORY only.
- * @note This API must not be called when the DMA stream is enabled.
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @param MemoryAddress Between 0 to 0xFFFFFFFF
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_SetM2MSrcAddress(DMA_TypeDef *DMAx, uint32_t Stream, uint32_t MemoryAddress)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- WRITE_REG(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->PAR, MemoryAddress);
- }
- /**
- * @brief Set the Memory to Memory Destination address.
- * @rmtoll M0AR M0A LL_DMA_SetM2MDstAddress
- * @note Interface used for direction LL_DMA_DIRECTION_MEMORY_TO_MEMORY only.
- * @note This API must not be called when the DMA stream is enabled.
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @param MemoryAddress Between 0 to 0xFFFFFFFF
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_SetM2MDstAddress(DMA_TypeDef *DMAx, uint32_t Stream, uint32_t MemoryAddress)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- WRITE_REG(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->M0AR, MemoryAddress);
- }
- /**
- * @brief Get the Memory to Memory Source address.
- * @rmtoll PAR PA LL_DMA_GetM2MSrcAddress
- * @note Interface used for direction LL_DMA_DIRECTION_MEMORY_TO_MEMORY only.
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @retval Between 0 to 0xFFFFFFFF
- */
- __STATIC_INLINE uint32_t LL_DMA_GetM2MSrcAddress(DMA_TypeDef *DMAx, uint32_t Stream)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- return (READ_REG(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->PAR));
- }
- /**
- * @brief Get the Memory to Memory Destination address.
- * @rmtoll M0AR M0A LL_DMA_GetM2MDstAddress
- * @note Interface used for direction LL_DMA_DIRECTION_MEMORY_TO_MEMORY only.
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @retval Between 0 to 0xFFFFFFFF
- */
- __STATIC_INLINE uint32_t LL_DMA_GetM2MDstAddress(DMA_TypeDef *DMAx, uint32_t Stream)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- return (READ_REG(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->M0AR));
- }
- /**
- * @brief Set Memory 1 address (used in case of Double buffer mode).
- * @rmtoll M1AR M1A LL_DMA_SetMemory1Address
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @param Address Between 0 to 0xFFFFFFFF
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_SetMemory1Address(DMA_TypeDef *DMAx, uint32_t Stream, uint32_t Address)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- MODIFY_REG(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->M1AR, DMA_SxM1AR_M1A, Address);
- }
- /**
- * @brief Get Memory 1 address (used in case of Double buffer mode).
- * @rmtoll M1AR M1A LL_DMA_GetMemory1Address
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @retval Between 0 to 0xFFFFFFFF
- */
- __STATIC_INLINE uint32_t LL_DMA_GetMemory1Address(DMA_TypeDef *DMAx, uint32_t Stream)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- return (((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->M1AR);
- }
- /**
- * @}
- */
- /** @defgroup DMA_LL_EF_FLAG_Management FLAG_Management
- * @{
- */
- /**
- * @brief Get Stream 0 half transfer flag.
- * @rmtoll LISR HTIF0 LL_DMA_IsActiveFlag_HT0
- * @param DMAx DMAx Instance
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_HT0(DMA_TypeDef *DMAx)
- {
- return ((READ_BIT(DMAx->LISR, DMA_LISR_HTIF0) == (DMA_LISR_HTIF0)) ? 1UL : 0UL);
- }
- /**
- * @brief Get Stream 1 half transfer flag.
- * @rmtoll LISR HTIF1 LL_DMA_IsActiveFlag_HT1
- * @param DMAx DMAx Instance
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_HT1(DMA_TypeDef *DMAx)
- {
- return ((READ_BIT(DMAx->LISR, DMA_LISR_HTIF1) == (DMA_LISR_HTIF1)) ? 1UL : 0UL);
- }
- /**
- * @brief Get Stream 2 half transfer flag.
- * @rmtoll LISR HTIF2 LL_DMA_IsActiveFlag_HT2
- * @param DMAx DMAx Instance
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_HT2(DMA_TypeDef *DMAx)
- {
- return ((READ_BIT(DMAx->LISR, DMA_LISR_HTIF2) == (DMA_LISR_HTIF2)) ? 1UL : 0UL);
- }
- /**
- * @brief Get Stream 3 half transfer flag.
- * @rmtoll LISR HTIF3 LL_DMA_IsActiveFlag_HT3
- * @param DMAx DMAx Instance
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_HT3(DMA_TypeDef *DMAx)
- {
- return ((READ_BIT(DMAx->LISR, DMA_LISR_HTIF3) == (DMA_LISR_HTIF3)) ? 1UL : 0UL);
- }
- /**
- * @brief Get Stream 4 half transfer flag.
- * @rmtoll HISR HTIF4 LL_DMA_IsActiveFlag_HT4
- * @param DMAx DMAx Instance
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_HT4(DMA_TypeDef *DMAx)
- {
- return ((READ_BIT(DMAx->HISR, DMA_HISR_HTIF4) == (DMA_HISR_HTIF4)) ? 1UL : 0UL);
- }
- /**
- * @brief Get Stream 5 half transfer flag.
- * @rmtoll HISR HTIF0 LL_DMA_IsActiveFlag_HT5
- * @param DMAx DMAx Instance
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_HT5(DMA_TypeDef *DMAx)
- {
- return ((READ_BIT(DMAx->HISR, DMA_HISR_HTIF5) == (DMA_HISR_HTIF5)) ? 1UL : 0UL);
- }
- /**
- * @brief Get Stream 6 half transfer flag.
- * @rmtoll HISR HTIF6 LL_DMA_IsActiveFlag_HT6
- * @param DMAx DMAx Instance
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_HT6(DMA_TypeDef *DMAx)
- {
- return ((READ_BIT(DMAx->HISR, DMA_HISR_HTIF6) == (DMA_HISR_HTIF6)) ? 1UL : 0UL);
- }
- /**
- * @brief Get Stream 7 half transfer flag.
- * @rmtoll HISR HTIF7 LL_DMA_IsActiveFlag_HT7
- * @param DMAx DMAx Instance
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_HT7(DMA_TypeDef *DMAx)
- {
- return ((READ_BIT(DMAx->HISR, DMA_HISR_HTIF7) == (DMA_HISR_HTIF7)) ? 1UL : 0UL);
- }
- /**
- * @brief Get Stream 0 transfer complete flag.
- * @rmtoll LISR TCIF0 LL_DMA_IsActiveFlag_TC0
- * @param DMAx DMAx Instance
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TC0(DMA_TypeDef *DMAx)
- {
- return ((READ_BIT(DMAx->LISR, DMA_LISR_TCIF0) == (DMA_LISR_TCIF0)) ? 1UL : 0UL);
- }
- /**
- * @brief Get Stream 1 transfer complete flag.
- * @rmtoll LISR TCIF1 LL_DMA_IsActiveFlag_TC1
- * @param DMAx DMAx Instance
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TC1(DMA_TypeDef *DMAx)
- {
- return ((READ_BIT(DMAx->LISR, DMA_LISR_TCIF1) == (DMA_LISR_TCIF1)) ? 1UL : 0UL);
- }
- /**
- * @brief Get Stream 2 transfer complete flag.
- * @rmtoll LISR TCIF2 LL_DMA_IsActiveFlag_TC2
- * @param DMAx DMAx Instance
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TC2(DMA_TypeDef *DMAx)
- {
- return ((READ_BIT(DMAx->LISR, DMA_LISR_TCIF2) == (DMA_LISR_TCIF2)) ? 1UL : 0UL);
- }
- /**
- * @brief Get Stream 3 transfer complete flag.
- * @rmtoll LISR TCIF3 LL_DMA_IsActiveFlag_TC3
- * @param DMAx DMAx Instance
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TC3(DMA_TypeDef *DMAx)
- {
- return ((READ_BIT(DMAx->LISR, DMA_LISR_TCIF3) == (DMA_LISR_TCIF3)) ? 1UL : 0UL);
- }
- /**
- * @brief Get Stream 4 transfer complete flag.
- * @rmtoll HISR TCIF4 LL_DMA_IsActiveFlag_TC4
- * @param DMAx DMAx Instance
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TC4(DMA_TypeDef *DMAx)
- {
- return ((READ_BIT(DMAx->HISR, DMA_HISR_TCIF4) == (DMA_HISR_TCIF4)) ? 1UL : 0UL);
- }
- /**
- * @brief Get Stream 5 transfer complete flag.
- * @rmtoll HISR TCIF0 LL_DMA_IsActiveFlag_TC5
- * @param DMAx DMAx Instance
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TC5(DMA_TypeDef *DMAx)
- {
- return ((READ_BIT(DMAx->HISR, DMA_HISR_TCIF5) == (DMA_HISR_TCIF5)) ? 1UL : 0UL);
- }
- /**
- * @brief Get Stream 6 transfer complete flag.
- * @rmtoll HISR TCIF6 LL_DMA_IsActiveFlag_TC6
- * @param DMAx DMAx Instance
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TC6(DMA_TypeDef *DMAx)
- {
- return ((READ_BIT(DMAx->HISR, DMA_HISR_TCIF6) == (DMA_HISR_TCIF6)) ? 1UL : 0UL);
- }
- /**
- * @brief Get Stream 7 transfer complete flag.
- * @rmtoll HISR TCIF7 LL_DMA_IsActiveFlag_TC7
- * @param DMAx DMAx Instance
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TC7(DMA_TypeDef *DMAx)
- {
- return ((READ_BIT(DMAx->HISR, DMA_HISR_TCIF7) == (DMA_HISR_TCIF7)) ? 1UL : 0UL);
- }
- /**
- * @brief Get Stream 0 transfer error flag.
- * @rmtoll LISR TEIF0 LL_DMA_IsActiveFlag_TE0
- * @param DMAx DMAx Instance
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TE0(DMA_TypeDef *DMAx)
- {
- return ((READ_BIT(DMAx->LISR, DMA_LISR_TEIF0) == (DMA_LISR_TEIF0)) ? 1UL : 0UL);
- }
- /**
- * @brief Get Stream 1 transfer error flag.
- * @rmtoll LISR TEIF1 LL_DMA_IsActiveFlag_TE1
- * @param DMAx DMAx Instance
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TE1(DMA_TypeDef *DMAx)
- {
- return ((READ_BIT(DMAx->LISR, DMA_LISR_TEIF1) == (DMA_LISR_TEIF1)) ? 1UL : 0UL);
- }
- /**
- * @brief Get Stream 2 transfer error flag.
- * @rmtoll LISR TEIF2 LL_DMA_IsActiveFlag_TE2
- * @param DMAx DMAx Instance
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TE2(DMA_TypeDef *DMAx)
- {
- return ((READ_BIT(DMAx->LISR, DMA_LISR_TEIF2) == (DMA_LISR_TEIF2)) ? 1UL : 0UL);
- }
- /**
- * @brief Get Stream 3 transfer error flag.
- * @rmtoll LISR TEIF3 LL_DMA_IsActiveFlag_TE3
- * @param DMAx DMAx Instance
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TE3(DMA_TypeDef *DMAx)
- {
- return ((READ_BIT(DMAx->LISR, DMA_LISR_TEIF3) == (DMA_LISR_TEIF3)) ? 1UL : 0UL);
- }
- /**
- * @brief Get Stream 4 transfer error flag.
- * @rmtoll HISR TEIF4 LL_DMA_IsActiveFlag_TE4
- * @param DMAx DMAx Instance
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TE4(DMA_TypeDef *DMAx)
- {
- return ((READ_BIT(DMAx->HISR, DMA_HISR_TEIF4) == (DMA_HISR_TEIF4)) ? 1UL : 0UL);
- }
- /**
- * @brief Get Stream 5 transfer error flag.
- * @rmtoll HISR TEIF0 LL_DMA_IsActiveFlag_TE5
- * @param DMAx DMAx Instance
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TE5(DMA_TypeDef *DMAx)
- {
- return ((READ_BIT(DMAx->HISR, DMA_HISR_TEIF5) == (DMA_HISR_TEIF5)) ? 1UL : 0UL);
- }
- /**
- * @brief Get Stream 6 transfer error flag.
- * @rmtoll HISR TEIF6 LL_DMA_IsActiveFlag_TE6
- * @param DMAx DMAx Instance
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TE6(DMA_TypeDef *DMAx)
- {
- return ((READ_BIT(DMAx->HISR, DMA_HISR_TEIF6) == (DMA_HISR_TEIF6)) ? 1UL : 0UL);
- }
- /**
- * @brief Get Stream 7 transfer error flag.
- * @rmtoll HISR TEIF7 LL_DMA_IsActiveFlag_TE7
- * @param DMAx DMAx Instance
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TE7(DMA_TypeDef *DMAx)
- {
- return ((READ_BIT(DMAx->HISR, DMA_HISR_TEIF7) == (DMA_HISR_TEIF7)) ? 1UL : 0UL);
- }
- /**
- * @brief Get Stream 0 direct mode error flag.
- * @rmtoll LISR DMEIF0 LL_DMA_IsActiveFlag_DME0
- * @param DMAx DMAx Instance
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_DME0(DMA_TypeDef *DMAx)
- {
- return ((READ_BIT(DMAx->LISR, DMA_LISR_DMEIF0) == (DMA_LISR_DMEIF0)) ? 1UL : 0UL);
- }
- /**
- * @brief Get Stream 1 direct mode error flag.
- * @rmtoll LISR DMEIF1 LL_DMA_IsActiveFlag_DME1
- * @param DMAx DMAx Instance
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_DME1(DMA_TypeDef *DMAx)
- {
- return ((READ_BIT(DMAx->LISR, DMA_LISR_DMEIF1) == (DMA_LISR_DMEIF1)) ? 1UL : 0UL);
- }
- /**
- * @brief Get Stream 2 direct mode error flag.
- * @rmtoll LISR DMEIF2 LL_DMA_IsActiveFlag_DME2
- * @param DMAx DMAx Instance
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_DME2(DMA_TypeDef *DMAx)
- {
- return ((READ_BIT(DMAx->LISR, DMA_LISR_DMEIF2) == (DMA_LISR_DMEIF2)) ? 1UL : 0UL);
- }
- /**
- * @brief Get Stream 3 direct mode error flag.
- * @rmtoll LISR DMEIF3 LL_DMA_IsActiveFlag_DME3
- * @param DMAx DMAx Instance
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_DME3(DMA_TypeDef *DMAx)
- {
- return ((READ_BIT(DMAx->LISR, DMA_LISR_DMEIF3) == (DMA_LISR_DMEIF3)) ? 1UL : 0UL);
- }
- /**
- * @brief Get Stream 4 direct mode error flag.
- * @rmtoll HISR DMEIF4 LL_DMA_IsActiveFlag_DME4
- * @param DMAx DMAx Instance
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_DME4(DMA_TypeDef *DMAx)
- {
- return ((READ_BIT(DMAx->HISR, DMA_HISR_DMEIF4) == (DMA_HISR_DMEIF4)) ? 1UL : 0UL);
- }
- /**
- * @brief Get Stream 5 direct mode error flag.
- * @rmtoll HISR DMEIF0 LL_DMA_IsActiveFlag_DME5
- * @param DMAx DMAx Instance
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_DME5(DMA_TypeDef *DMAx)
- {
- return ((READ_BIT(DMAx->HISR, DMA_HISR_DMEIF5) == (DMA_HISR_DMEIF5)) ? 1UL : 0UL);
- }
- /**
- * @brief Get Stream 6 direct mode error flag.
- * @rmtoll HISR DMEIF6 LL_DMA_IsActiveFlag_DME6
- * @param DMAx DMAx Instance
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_DME6(DMA_TypeDef *DMAx)
- {
- return ((READ_BIT(DMAx->HISR, DMA_HISR_DMEIF6) == (DMA_HISR_DMEIF6)) ? 1UL : 0UL);
- }
- /**
- * @brief Get Stream 7 direct mode error flag.
- * @rmtoll HISR DMEIF7 LL_DMA_IsActiveFlag_DME7
- * @param DMAx DMAx Instance
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_DME7(DMA_TypeDef *DMAx)
- {
- return ((READ_BIT(DMAx->HISR, DMA_HISR_DMEIF7) == (DMA_HISR_DMEIF7)) ? 1UL : 0UL);
- }
- /**
- * @brief Get Stream 0 FIFO error flag.
- * @rmtoll LISR FEIF0 LL_DMA_IsActiveFlag_FE0
- * @param DMAx DMAx Instance
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_FE0(DMA_TypeDef *DMAx)
- {
- return ((READ_BIT(DMAx->LISR, DMA_LISR_FEIF0) == (DMA_LISR_FEIF0)) ? 1UL : 0UL);
- }
- /**
- * @brief Get Stream 1 FIFO error flag.
- * @rmtoll LISR FEIF1 LL_DMA_IsActiveFlag_FE1
- * @param DMAx DMAx Instance
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_FE1(DMA_TypeDef *DMAx)
- {
- return ((READ_BIT(DMAx->LISR, DMA_LISR_FEIF1) == (DMA_LISR_FEIF1)) ? 1UL : 0UL);
- }
- /**
- * @brief Get Stream 2 FIFO error flag.
- * @rmtoll LISR FEIF2 LL_DMA_IsActiveFlag_FE2
- * @param DMAx DMAx Instance
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_FE2(DMA_TypeDef *DMAx)
- {
- return ((READ_BIT(DMAx->LISR, DMA_LISR_FEIF2) == (DMA_LISR_FEIF2)) ? 1UL : 0UL);
- }
- /**
- * @brief Get Stream 3 FIFO error flag.
- * @rmtoll LISR FEIF3 LL_DMA_IsActiveFlag_FE3
- * @param DMAx DMAx Instance
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_FE3(DMA_TypeDef *DMAx)
- {
- return ((READ_BIT(DMAx->LISR, DMA_LISR_FEIF3) == (DMA_LISR_FEIF3)) ? 1UL : 0UL);
- }
- /**
- * @brief Get Stream 4 FIFO error flag.
- * @rmtoll HISR FEIF4 LL_DMA_IsActiveFlag_FE4
- * @param DMAx DMAx Instance
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_FE4(DMA_TypeDef *DMAx)
- {
- return ((READ_BIT(DMAx->HISR, DMA_HISR_FEIF4) == (DMA_HISR_FEIF4)) ? 1UL : 0UL);
- }
- /**
- * @brief Get Stream 5 FIFO error flag.
- * @rmtoll HISR FEIF0 LL_DMA_IsActiveFlag_FE5
- * @param DMAx DMAx Instance
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_FE5(DMA_TypeDef *DMAx)
- {
- return ((READ_BIT(DMAx->HISR, DMA_HISR_FEIF5) == (DMA_HISR_FEIF5)) ? 1UL : 0UL);
- }
- /**
- * @brief Get Stream 6 FIFO error flag.
- * @rmtoll HISR FEIF6 LL_DMA_IsActiveFlag_FE6
- * @param DMAx DMAx Instance
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_FE6(DMA_TypeDef *DMAx)
- {
- return ((READ_BIT(DMAx->HISR, DMA_HISR_FEIF6) == (DMA_HISR_FEIF6)) ? 1UL : 0UL);
- }
- /**
- * @brief Get Stream 7 FIFO error flag.
- * @rmtoll HISR FEIF7 LL_DMA_IsActiveFlag_FE7
- * @param DMAx DMAx Instance
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_FE7(DMA_TypeDef *DMAx)
- {
- return ((READ_BIT(DMAx->HISR, DMA_HISR_FEIF7) == (DMA_HISR_FEIF7)) ? 1UL : 0UL);
- }
- /**
- * @brief Clear Stream 0 half transfer flag.
- * @rmtoll LIFCR CHTIF0 LL_DMA_ClearFlag_HT0
- * @param DMAx DMAx Instance
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_ClearFlag_HT0(DMA_TypeDef *DMAx)
- {
- WRITE_REG(DMAx->LIFCR, DMA_LIFCR_CHTIF0);
- }
- /**
- * @brief Clear Stream 1 half transfer flag.
- * @rmtoll LIFCR CHTIF1 LL_DMA_ClearFlag_HT1
- * @param DMAx DMAx Instance
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_ClearFlag_HT1(DMA_TypeDef *DMAx)
- {
- WRITE_REG(DMAx->LIFCR, DMA_LIFCR_CHTIF1);
- }
- /**
- * @brief Clear Stream 2 half transfer flag.
- * @rmtoll LIFCR CHTIF2 LL_DMA_ClearFlag_HT2
- * @param DMAx DMAx Instance
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_ClearFlag_HT2(DMA_TypeDef *DMAx)
- {
- WRITE_REG(DMAx->LIFCR, DMA_LIFCR_CHTIF2);
- }
- /**
- * @brief Clear Stream 3 half transfer flag.
- * @rmtoll LIFCR CHTIF3 LL_DMA_ClearFlag_HT3
- * @param DMAx DMAx Instance
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_ClearFlag_HT3(DMA_TypeDef *DMAx)
- {
- WRITE_REG(DMAx->LIFCR, DMA_LIFCR_CHTIF3);
- }
- /**
- * @brief Clear Stream 4 half transfer flag.
- * @rmtoll HIFCR CHTIF4 LL_DMA_ClearFlag_HT4
- * @param DMAx DMAx Instance
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_ClearFlag_HT4(DMA_TypeDef *DMAx)
- {
- WRITE_REG(DMAx->HIFCR, DMA_HIFCR_CHTIF4);
- }
- /**
- * @brief Clear Stream 5 half transfer flag.
- * @rmtoll HIFCR CHTIF5 LL_DMA_ClearFlag_HT5
- * @param DMAx DMAx Instance
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_ClearFlag_HT5(DMA_TypeDef *DMAx)
- {
- WRITE_REG(DMAx->HIFCR, DMA_HIFCR_CHTIF5);
- }
- /**
- * @brief Clear Stream 6 half transfer flag.
- * @rmtoll HIFCR CHTIF6 LL_DMA_ClearFlag_HT6
- * @param DMAx DMAx Instance
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_ClearFlag_HT6(DMA_TypeDef *DMAx)
- {
- WRITE_REG(DMAx->HIFCR, DMA_HIFCR_CHTIF6);
- }
- /**
- * @brief Clear Stream 7 half transfer flag.
- * @rmtoll HIFCR CHTIF7 LL_DMA_ClearFlag_HT7
- * @param DMAx DMAx Instance
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_ClearFlag_HT7(DMA_TypeDef *DMAx)
- {
- WRITE_REG(DMAx->HIFCR, DMA_HIFCR_CHTIF7);
- }
- /**
- * @brief Clear Stream 0 transfer complete flag.
- * @rmtoll LIFCR CTCIF0 LL_DMA_ClearFlag_TC0
- * @param DMAx DMAx Instance
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_ClearFlag_TC0(DMA_TypeDef *DMAx)
- {
- WRITE_REG(DMAx->LIFCR, DMA_LIFCR_CTCIF0);
- }
- /**
- * @brief Clear Stream 1 transfer complete flag.
- * @rmtoll LIFCR CTCIF1 LL_DMA_ClearFlag_TC1
- * @param DMAx DMAx Instance
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_ClearFlag_TC1(DMA_TypeDef *DMAx)
- {
- WRITE_REG(DMAx->LIFCR, DMA_LIFCR_CTCIF1);
- }
- /**
- * @brief Clear Stream 2 transfer complete flag.
- * @rmtoll LIFCR CTCIF2 LL_DMA_ClearFlag_TC2
- * @param DMAx DMAx Instance
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_ClearFlag_TC2(DMA_TypeDef *DMAx)
- {
- WRITE_REG(DMAx->LIFCR, DMA_LIFCR_CTCIF2);
- }
- /**
- * @brief Clear Stream 3 transfer complete flag.
- * @rmtoll LIFCR CTCIF3 LL_DMA_ClearFlag_TC3
- * @param DMAx DMAx Instance
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_ClearFlag_TC3(DMA_TypeDef *DMAx)
- {
- WRITE_REG(DMAx->LIFCR, DMA_LIFCR_CTCIF3);
- }
- /**
- * @brief Clear Stream 4 transfer complete flag.
- * @rmtoll HIFCR CTCIF4 LL_DMA_ClearFlag_TC4
- * @param DMAx DMAx Instance
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_ClearFlag_TC4(DMA_TypeDef *DMAx)
- {
- WRITE_REG(DMAx->HIFCR, DMA_HIFCR_CTCIF4);
- }
- /**
- * @brief Clear Stream 5 transfer complete flag.
- * @rmtoll HIFCR CTCIF5 LL_DMA_ClearFlag_TC5
- * @param DMAx DMAx Instance
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_ClearFlag_TC5(DMA_TypeDef *DMAx)
- {
- WRITE_REG(DMAx->HIFCR, DMA_HIFCR_CTCIF5);
- }
- /**
- * @brief Clear Stream 6 transfer complete flag.
- * @rmtoll HIFCR CTCIF6 LL_DMA_ClearFlag_TC6
- * @param DMAx DMAx Instance
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_ClearFlag_TC6(DMA_TypeDef *DMAx)
- {
- WRITE_REG(DMAx->HIFCR, DMA_HIFCR_CTCIF6);
- }
- /**
- * @brief Clear Stream 7 transfer complete flag.
- * @rmtoll HIFCR CTCIF7 LL_DMA_ClearFlag_TC7
- * @param DMAx DMAx Instance
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_ClearFlag_TC7(DMA_TypeDef *DMAx)
- {
- WRITE_REG(DMAx->HIFCR, DMA_HIFCR_CTCIF7);
- }
- /**
- * @brief Clear Stream 0 transfer error flag.
- * @rmtoll LIFCR CTEIF0 LL_DMA_ClearFlag_TE0
- * @param DMAx DMAx Instance
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_ClearFlag_TE0(DMA_TypeDef *DMAx)
- {
- WRITE_REG(DMAx->LIFCR, DMA_LIFCR_CTEIF0);
- }
- /**
- * @brief Clear Stream 1 transfer error flag.
- * @rmtoll LIFCR CTEIF1 LL_DMA_ClearFlag_TE1
- * @param DMAx DMAx Instance
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_ClearFlag_TE1(DMA_TypeDef *DMAx)
- {
- WRITE_REG(DMAx->LIFCR, DMA_LIFCR_CTEIF1);
- }
- /**
- * @brief Clear Stream 2 transfer error flag.
- * @rmtoll LIFCR CTEIF2 LL_DMA_ClearFlag_TE2
- * @param DMAx DMAx Instance
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_ClearFlag_TE2(DMA_TypeDef *DMAx)
- {
- WRITE_REG(DMAx->LIFCR, DMA_LIFCR_CTEIF2);
- }
- /**
- * @brief Clear Stream 3 transfer error flag.
- * @rmtoll LIFCR CTEIF3 LL_DMA_ClearFlag_TE3
- * @param DMAx DMAx Instance
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_ClearFlag_TE3(DMA_TypeDef *DMAx)
- {
- WRITE_REG(DMAx->LIFCR, DMA_LIFCR_CTEIF3);
- }
- /**
- * @brief Clear Stream 4 transfer error flag.
- * @rmtoll HIFCR CTEIF4 LL_DMA_ClearFlag_TE4
- * @param DMAx DMAx Instance
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_ClearFlag_TE4(DMA_TypeDef *DMAx)
- {
- WRITE_REG(DMAx->HIFCR, DMA_HIFCR_CTEIF4);
- }
- /**
- * @brief Clear Stream 5 transfer error flag.
- * @rmtoll HIFCR CTEIF5 LL_DMA_ClearFlag_TE5
- * @param DMAx DMAx Instance
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_ClearFlag_TE5(DMA_TypeDef *DMAx)
- {
- WRITE_REG(DMAx->HIFCR, DMA_HIFCR_CTEIF5);
- }
- /**
- * @brief Clear Stream 6 transfer error flag.
- * @rmtoll HIFCR CTEIF6 LL_DMA_ClearFlag_TE6
- * @param DMAx DMAx Instance
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_ClearFlag_TE6(DMA_TypeDef *DMAx)
- {
- WRITE_REG(DMAx->HIFCR, DMA_HIFCR_CTEIF6);
- }
- /**
- * @brief Clear Stream 7 transfer error flag.
- * @rmtoll HIFCR CTEIF7 LL_DMA_ClearFlag_TE7
- * @param DMAx DMAx Instance
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_ClearFlag_TE7(DMA_TypeDef *DMAx)
- {
- WRITE_REG(DMAx->HIFCR, DMA_HIFCR_CTEIF7);
- }
- /**
- * @brief Clear Stream 0 direct mode error flag.
- * @rmtoll LIFCR CDMEIF0 LL_DMA_ClearFlag_DME0
- * @param DMAx DMAx Instance
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_ClearFlag_DME0(DMA_TypeDef *DMAx)
- {
- WRITE_REG(DMAx->LIFCR, DMA_LIFCR_CDMEIF0);
- }
- /**
- * @brief Clear Stream 1 direct mode error flag.
- * @rmtoll LIFCR CDMEIF1 LL_DMA_ClearFlag_DME1
- * @param DMAx DMAx Instance
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_ClearFlag_DME1(DMA_TypeDef *DMAx)
- {
- WRITE_REG(DMAx->LIFCR, DMA_LIFCR_CDMEIF1);
- }
- /**
- * @brief Clear Stream 2 direct mode error flag.
- * @rmtoll LIFCR CDMEIF2 LL_DMA_ClearFlag_DME2
- * @param DMAx DMAx Instance
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_ClearFlag_DME2(DMA_TypeDef *DMAx)
- {
- WRITE_REG(DMAx->LIFCR, DMA_LIFCR_CDMEIF2);
- }
- /**
- * @brief Clear Stream 3 direct mode error flag.
- * @rmtoll LIFCR CDMEIF3 LL_DMA_ClearFlag_DME3
- * @param DMAx DMAx Instance
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_ClearFlag_DME3(DMA_TypeDef *DMAx)
- {
- WRITE_REG(DMAx->LIFCR, DMA_LIFCR_CDMEIF3);
- }
- /**
- * @brief Clear Stream 4 direct mode error flag.
- * @rmtoll HIFCR CDMEIF4 LL_DMA_ClearFlag_DME4
- * @param DMAx DMAx Instance
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_ClearFlag_DME4(DMA_TypeDef *DMAx)
- {
- WRITE_REG(DMAx->HIFCR, DMA_HIFCR_CDMEIF4);
- }
- /**
- * @brief Clear Stream 5 direct mode error flag.
- * @rmtoll HIFCR CDMEIF5 LL_DMA_ClearFlag_DME5
- * @param DMAx DMAx Instance
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_ClearFlag_DME5(DMA_TypeDef *DMAx)
- {
- WRITE_REG(DMAx->HIFCR, DMA_HIFCR_CDMEIF5);
- }
- /**
- * @brief Clear Stream 6 direct mode error flag.
- * @rmtoll HIFCR CDMEIF6 LL_DMA_ClearFlag_DME6
- * @param DMAx DMAx Instance
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_ClearFlag_DME6(DMA_TypeDef *DMAx)
- {
- WRITE_REG(DMAx->HIFCR, DMA_HIFCR_CDMEIF6);
- }
- /**
- * @brief Clear Stream 7 direct mode error flag.
- * @rmtoll HIFCR CDMEIF7 LL_DMA_ClearFlag_DME7
- * @param DMAx DMAx Instance
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_ClearFlag_DME7(DMA_TypeDef *DMAx)
- {
- WRITE_REG(DMAx->HIFCR, DMA_HIFCR_CDMEIF7);
- }
- /**
- * @brief Clear Stream 0 FIFO error flag.
- * @rmtoll LIFCR CFEIF0 LL_DMA_ClearFlag_FE0
- * @param DMAx DMAx Instance
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_ClearFlag_FE0(DMA_TypeDef *DMAx)
- {
- WRITE_REG(DMAx->LIFCR, DMA_LIFCR_CFEIF0);
- }
- /**
- * @brief Clear Stream 1 FIFO error flag.
- * @rmtoll LIFCR CFEIF1 LL_DMA_ClearFlag_FE1
- * @param DMAx DMAx Instance
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_ClearFlag_FE1(DMA_TypeDef *DMAx)
- {
- WRITE_REG(DMAx->LIFCR, DMA_LIFCR_CFEIF1);
- }
- /**
- * @brief Clear Stream 2 FIFO error flag.
- * @rmtoll LIFCR CFEIF2 LL_DMA_ClearFlag_FE2
- * @param DMAx DMAx Instance
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_ClearFlag_FE2(DMA_TypeDef *DMAx)
- {
- WRITE_REG(DMAx->LIFCR, DMA_LIFCR_CFEIF2);
- }
- /**
- * @brief Clear Stream 3 FIFO error flag.
- * @rmtoll LIFCR CFEIF3 LL_DMA_ClearFlag_FE3
- * @param DMAx DMAx Instance
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_ClearFlag_FE3(DMA_TypeDef *DMAx)
- {
- WRITE_REG(DMAx->LIFCR, DMA_LIFCR_CFEIF3);
- }
- /**
- * @brief Clear Stream 4 FIFO error flag.
- * @rmtoll HIFCR CFEIF4 LL_DMA_ClearFlag_FE4
- * @param DMAx DMAx Instance
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_ClearFlag_FE4(DMA_TypeDef *DMAx)
- {
- WRITE_REG(DMAx->HIFCR, DMA_HIFCR_CFEIF4);
- }
- /**
- * @brief Clear Stream 5 FIFO error flag.
- * @rmtoll HIFCR CFEIF5 LL_DMA_ClearFlag_FE5
- * @param DMAx DMAx Instance
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_ClearFlag_FE5(DMA_TypeDef *DMAx)
- {
- WRITE_REG(DMAx->HIFCR, DMA_HIFCR_CFEIF5);
- }
- /**
- * @brief Clear Stream 6 FIFO error flag.
- * @rmtoll HIFCR CFEIF6 LL_DMA_ClearFlag_FE6
- * @param DMAx DMAx Instance
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_ClearFlag_FE6(DMA_TypeDef *DMAx)
- {
- WRITE_REG(DMAx->HIFCR, DMA_HIFCR_CFEIF6);
- }
- /**
- * @brief Clear Stream 7 FIFO error flag.
- * @rmtoll HIFCR CFEIF7 LL_DMA_ClearFlag_FE7
- * @param DMAx DMAx Instance
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_ClearFlag_FE7(DMA_TypeDef *DMAx)
- {
- WRITE_REG(DMAx->HIFCR, DMA_HIFCR_CFEIF7);
- }
- /**
- * @}
- */
- /** @defgroup DMA_LL_EF_IT_Management IT_Management
- * @{
- */
- /**
- * @brief Enable Half transfer interrupt.
- * @rmtoll CR HTIE LL_DMA_EnableIT_HT
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_EnableIT_HT(DMA_TypeDef *DMAx, uint32_t Stream)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- SET_BIT(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->CR, DMA_SxCR_HTIE);
- }
- /**
- * @brief Enable Transfer error interrupt.
- * @rmtoll CR TEIE LL_DMA_EnableIT_TE
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_EnableIT_TE(DMA_TypeDef *DMAx, uint32_t Stream)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- SET_BIT(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->CR, DMA_SxCR_TEIE);
- }
- /**
- * @brief Enable Transfer complete interrupt.
- * @rmtoll CR TCIE LL_DMA_EnableIT_TC
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_EnableIT_TC(DMA_TypeDef *DMAx, uint32_t Stream)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- SET_BIT(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->CR, DMA_SxCR_TCIE);
- }
- /**
- * @brief Enable Direct mode error interrupt.
- * @rmtoll CR DMEIE LL_DMA_EnableIT_DME
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_EnableIT_DME(DMA_TypeDef *DMAx, uint32_t Stream)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- SET_BIT(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->CR, DMA_SxCR_DMEIE);
- }
- /**
- * @brief Enable FIFO error interrupt.
- * @rmtoll FCR FEIE LL_DMA_EnableIT_FE
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_EnableIT_FE(DMA_TypeDef *DMAx, uint32_t Stream)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- SET_BIT(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->FCR, DMA_SxFCR_FEIE);
- }
- /**
- * @brief Disable Half transfer interrupt.
- * @rmtoll CR HTIE LL_DMA_DisableIT_HT
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_DisableIT_HT(DMA_TypeDef *DMAx, uint32_t Stream)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- CLEAR_BIT(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->CR, DMA_SxCR_HTIE);
- }
- /**
- * @brief Disable Transfer error interrupt.
- * @rmtoll CR TEIE LL_DMA_DisableIT_TE
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_DisableIT_TE(DMA_TypeDef *DMAx, uint32_t Stream)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- CLEAR_BIT(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->CR, DMA_SxCR_TEIE);
- }
- /**
- * @brief Disable Transfer complete interrupt.
- * @rmtoll CR TCIE LL_DMA_DisableIT_TC
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_DisableIT_TC(DMA_TypeDef *DMAx, uint32_t Stream)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- CLEAR_BIT(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->CR, DMA_SxCR_TCIE);
- }
- /**
- * @brief Disable Direct mode error interrupt.
- * @rmtoll CR DMEIE LL_DMA_DisableIT_DME
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_DisableIT_DME(DMA_TypeDef *DMAx, uint32_t Stream)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- CLEAR_BIT(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->CR, DMA_SxCR_DMEIE);
- }
- /**
- * @brief Disable FIFO error interrupt.
- * @rmtoll FCR FEIE LL_DMA_DisableIT_FE
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @retval None
- */
- __STATIC_INLINE void LL_DMA_DisableIT_FE(DMA_TypeDef *DMAx, uint32_t Stream)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- CLEAR_BIT(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->FCR, DMA_SxFCR_FEIE);
- }
- /**
- * @brief Check if Half transfer interrupt is enabled.
- * @rmtoll CR HTIE LL_DMA_IsEnabledIT_HT
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_DMA_IsEnabledIT_HT(DMA_TypeDef *DMAx, uint32_t Stream)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- return ((READ_BIT(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->CR, DMA_SxCR_HTIE) == DMA_SxCR_HTIE) ? 1UL : 0UL);
- }
- /**
- * @brief Check if Transfer error nterrup is enabled.
- * @rmtoll CR TEIE LL_DMA_IsEnabledIT_TE
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_DMA_IsEnabledIT_TE(DMA_TypeDef *DMAx, uint32_t Stream)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- return ((READ_BIT(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->CR, DMA_SxCR_TEIE) == DMA_SxCR_TEIE) ? 1UL : 0UL);
- }
- /**
- * @brief Check if Transfer complete interrupt is enabled.
- * @rmtoll CR TCIE LL_DMA_IsEnabledIT_TC
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_DMA_IsEnabledIT_TC(DMA_TypeDef *DMAx, uint32_t Stream)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- return ((READ_BIT(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->CR, DMA_SxCR_TCIE) == DMA_SxCR_TCIE) ? 1UL : 0UL);
- }
- /**
- * @brief Check if Direct mode error interrupt is enabled.
- * @rmtoll CR DMEIE LL_DMA_IsEnabledIT_DME
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_DMA_IsEnabledIT_DME(DMA_TypeDef *DMAx, uint32_t Stream)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- return ((READ_BIT(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->CR, DMA_SxCR_DMEIE) == DMA_SxCR_DMEIE) ? 1UL : 0UL);
- }
- /**
- * @brief Check if FIFO error interrupt is enabled.
- * @rmtoll FCR FEIE LL_DMA_IsEnabledIT_FE
- * @param DMAx DMAx Instance
- * @param Stream This parameter can be one of the following values:
- * @arg @ref LL_DMA_STREAM_0
- * @arg @ref LL_DMA_STREAM_1
- * @arg @ref LL_DMA_STREAM_2
- * @arg @ref LL_DMA_STREAM_3
- * @arg @ref LL_DMA_STREAM_4
- * @arg @ref LL_DMA_STREAM_5
- * @arg @ref LL_DMA_STREAM_6
- * @arg @ref LL_DMA_STREAM_7
- * @retval State of bit (1 or 0).
- */
- __STATIC_INLINE uint32_t LL_DMA_IsEnabledIT_FE(DMA_TypeDef *DMAx, uint32_t Stream)
- {
- uint32_t dma_base_addr = (uint32_t)DMAx;
- return ((READ_BIT(((DMA_Stream_TypeDef *)(dma_base_addr + LL_DMA_STR_OFFSET_TAB[Stream]))->FCR, DMA_SxFCR_FEIE) == DMA_SxFCR_FEIE) ? 1UL : 0UL);
- }
- /**
- * @}
- */
- #if defined(USE_FULL_LL_DRIVER)
- /** @defgroup DMA_LL_EF_Init Initialization and de-initialization functions
- * @{
- */
- uint32_t LL_DMA_Init(DMA_TypeDef *DMAx, uint32_t Stream, LL_DMA_InitTypeDef *DMA_InitStruct);
- uint32_t LL_DMA_DeInit(DMA_TypeDef *DMAx, uint32_t Stream);
- void LL_DMA_StructInit(LL_DMA_InitTypeDef *DMA_InitStruct);
- /**
- * @}
- */
- #endif /* USE_FULL_LL_DRIVER */
- /**
- * @}
- */
- /**
- * @}
- */
- #endif /* DMA1 || DMA2 */
- /**
- * @}
- */
- #ifdef __cplusplus
- }
- #endif
- #endif /* __STM32H7xx_LL_DMA_H */
|