reg_dma.h 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325
  1. ////////////////////////////////////////////////////////////////////////////////
  2. /// @file reg_dma.h
  3. /// @author AE TEAM
  4. /// @brief THIS FILE CONTAINS ALL THE FUNCTIONS PROTOTYPES FOR THE SERIES OF
  5. /// MM32 FIRMWARE LIBRARY.
  6. ////////////////////////////////////////////////////////////////////////////////
  7. /// @attention
  8. ///
  9. /// THE EXISTING FIRMWARE IS ONLY FOR REFERENCE, WHICH IS DESIGNED TO PROVIDE
  10. /// CUSTOMERS WITH CODING INFORMATION ABOUT THEIR PRODUCTS SO THEY CAN SAVE
  11. /// TIME. THEREFORE, MINDMOTION SHALL NOT BE LIABLE FOR ANY DIRECT, INDIRECT OR
  12. /// CONSEQUENTIAL DAMAGES ABOUT ANY CLAIMS ARISING OUT OF THE CONTENT OF SUCH
  13. /// HARDWARE AND/OR THE USE OF THE CODING INFORMATION CONTAINED HEREIN IN
  14. /// CONNECTION WITH PRODUCTS MADE BY CUSTOMERS.
  15. ///
  16. /// <H2><CENTER>&COPY; COPYRIGHT MINDMOTION </CENTER></H2>
  17. ////////////////////////////////////////////////////////////////////////////////
  18. // Define to prevent recursive inclusion
  19. #ifndef __REG_DMA_H
  20. #define __REG_DMA_H
  21. // Files includes
  22. #include <stdint.h>
  23. #include <stdbool.h>
  24. #include "types.h"
  25. #if defined ( __CC_ARM )
  26. #pragma anon_unions
  27. #endif
  28. ////////////////////////////////////////////////////////////////////////////////
  29. /// @brief DMA Base Address Definition
  30. ////////////////////////////////////////////////////////////////////////////////
  31. #define DMA1_BASE (AHBPERIPH_BASE + 0x0000) ///< Base Address: 0x40020000
  32. #define DMA1_Channel1_BASE (AHBPERIPH_BASE + 0x0008) ///< Base Address: 0x40020008
  33. #define DMA1_Channel2_BASE (AHBPERIPH_BASE + 0x001C) ///< Base Address: 0x4002001C
  34. #define DMA1_Channel3_BASE (AHBPERIPH_BASE + 0x0030) ///< Base Address: 0x40020030
  35. #define DMA1_Channel4_BASE (AHBPERIPH_BASE + 0x0044) ///< Base Address: 0x40020044
  36. #define DMA1_Channel5_BASE (AHBPERIPH_BASE + 0x0058) ///< Base Address: 0x40020058
  37. #define DMA1_Channel6_BASE (AHBPERIPH_BASE + 0x006C) ///< Base Address: 0x4002006C
  38. #define DMA1_Channel7_BASE (AHBPERIPH_BASE + 0x0080) ///< Base Address: 0x40020080
  39. #define DMA2_BASE (AHBPERIPH_BASE + 0x0400) ///< Base Address: 0x40020400
  40. #define DMA2_Channel1_BASE (AHBPERIPH_BASE + 0x0408) ///< Base Address: 0x40020408
  41. #define DMA2_Channel2_BASE (AHBPERIPH_BASE + 0x041C) ///< Base Address: 0x4002041C
  42. #define DMA2_Channel3_BASE (AHBPERIPH_BASE + 0x0430) ///< Base Address: 0x40020430
  43. #define DMA2_Channel4_BASE (AHBPERIPH_BASE + 0x0444) ///< Base Address: 0x40020444
  44. #define DMA2_Channel5_BASE (AHBPERIPH_BASE + 0x0458) ///< Base Address: 0x40020458
  45. ////////////////////////////////////////////////////////////////////////////////
  46. /// @brief DMA Register Structure Definition
  47. ////////////////////////////////////////////////////////////////////////////////
  48. typedef struct {
  49. __IO u32 CCR; ///< DMA channel x configuration register offset: 0x00
  50. __IO u32 CNDTR; ///< DMA channel x number of data register offset: 0x04
  51. __IO u32 CPAR; ///< DMA channel x peripheral address register offset: 0x08
  52. __IO u32 CMAR; ///< DMA channel x memory address register offset: 0x0C
  53. } DMA_Channel_TypeDef;
  54. typedef struct {
  55. __IO u32 ISR; ///< Interrupt Status Register offset: 0x00
  56. __IO u32 IFCR; ///< Interrupt Flag Clear Register offset: 0x04
  57. __IO u32 CCRx; ///< Channel X configures registers offset: 0x08
  58. __IO u32 CNDTRx; ///< Channel X transfer quantity register offset: 0x0C
  59. __IO u32 CPARx; ///< Channel X peripheral address register offset: 0x10
  60. __IO u32 CMARx; ///< Channel X memory address register offset: 0x14
  61. } DMA_TypeDef;
  62. ////////////////////////////////////////////////////////////////////////////////
  63. /// @brief DMA type pointer Definition
  64. ////////////////////////////////////////////////////////////////////////////////
  65. #define DMA1 ((DMA_TypeDef*) DMA1_BASE)
  66. #define DMA1_ch1 ((DMA_Channel_TypeDef*) DMA1_Channel1_BASE)
  67. #define DMA1_ch2 ((DMA_Channel_TypeDef*) DMA1_Channel2_BASE)
  68. #define DMA1_ch3 ((DMA_Channel_TypeDef*) DMA1_Channel3_BASE)
  69. #define DMA1_ch4 ((DMA_Channel_TypeDef*) DMA1_Channel4_BASE)
  70. #define DMA1_ch5 ((DMA_Channel_TypeDef*) DMA1_Channel5_BASE)
  71. #define DMA1_Channel1 ((DMA_Channel_TypeDef*) DMA1_Channel1_BASE)
  72. #define DMA1_Channel2 ((DMA_Channel_TypeDef*) DMA1_Channel2_BASE)
  73. #define DMA1_Channel3 ((DMA_Channel_TypeDef*) DMA1_Channel3_BASE)
  74. #define DMA1_Channel4 ((DMA_Channel_TypeDef*) DMA1_Channel4_BASE)
  75. #define DMA1_Channel5 ((DMA_Channel_TypeDef*) DMA1_Channel5_BASE)
  76. #define DMA1_ch6 ((DMA_Channel_TypeDef*) DMA1_Channel6_BASE)
  77. #define DMA1_ch7 ((DMA_Channel_TypeDef*) DMA1_Channel7_BASE)
  78. #define DMA1_Channel6 ((DMA_Channel_TypeDef*) DMA1_Channel6_BASE)
  79. #define DMA1_Channel7 ((DMA_Channel_TypeDef*) DMA1_Channel7_BASE)
  80. #define DMA2 ((DMA_TypeDef*) DMA2_BASE)
  81. #define DMA2_ch1 ((DMA_Channel_TypeDef*) DMA2_Channel1_BASE)
  82. #define DMA2_ch2 ((DMA_Channel_TypeDef*) DMA2_Channel2_BASE)
  83. #define DMA2_ch3 ((DMA_Channel_TypeDef*) DMA2_Channel3_BASE)
  84. #define DMA2_ch4 ((DMA_Channel_TypeDef*) DMA2_Channel4_BASE)
  85. #define DMA2_ch5 ((DMA_Channel_TypeDef*) DMA2_Channel5_BASE)
  86. #define DMA2_Channel1 ((DMA_Channel_TypeDef*) DMA2_Channel1_BASE)
  87. #define DMA2_Channel2 ((DMA_Channel_TypeDef*) DMA2_Channel2_BASE)
  88. #define DMA2_Channel3 ((DMA_Channel_TypeDef*) DMA2_Channel3_BASE)
  89. #define DMA2_Channel4 ((DMA_Channel_TypeDef*) DMA2_Channel4_BASE)
  90. #define DMA2_Channel5 ((DMA_Channel_TypeDef*) DMA2_Channel5_BASE)
  91. ////////////////////////////////////////////////////////////////////////////////
  92. /// @brief DMA_ISR Register Bit Definition
  93. ////////////////////////////////////////////////////////////////////////////////
  94. #define DMA_ISR_GIF1_Pos (0)
  95. #define DMA_ISR_GIF1 (0x01U << DMA_ISR_GIF1_Pos) ///< Channel 1 Global interrupt flag
  96. #define DMA_ISR_TCIF1_Pos (1)
  97. #define DMA_ISR_TCIF1 (0x01U << DMA_ISR_TCIF1_Pos) ///< Channel 1 Transfer Complete flag
  98. #define DMA_ISR_HTIF1_Pos (2)
  99. #define DMA_ISR_HTIF1 (0x01U << DMA_ISR_HTIF1_Pos) ///< Channel 1 Half Transfer flag
  100. #define DMA_ISR_TEIF1_Pos (3)
  101. #define DMA_ISR_TEIF1 (0x01U << DMA_ISR_TEIF1_Pos) ///< Channel 1 Transfer Error flag
  102. #define DMA_ISR_GIF2_Pos (4)
  103. #define DMA_ISR_GIF2 (0x01U << DMA_ISR_GIF2_Pos) ///< Channel 2 Global interrupt flag
  104. #define DMA_ISR_TCIF2_Pos (5)
  105. #define DMA_ISR_TCIF2 (0x01U << DMA_ISR_TCIF2_Pos) ///< Channel 2 Transfer Complete flag
  106. #define DMA_ISR_HTIF2_Pos (6)
  107. #define DMA_ISR_HTIF2 (0x01U << DMA_ISR_HTIF2_Pos) ///< Channel 2 Half Transfer flag
  108. #define DMA_ISR_TEIF2_Pos (7)
  109. #define DMA_ISR_TEIF2 (0x01U << DMA_ISR_TEIF2_Pos) ///< Channel 2 Transfer Error flag
  110. #define DMA_ISR_GIF3_Pos (8)
  111. #define DMA_ISR_GIF3 (0x01U << DMA_ISR_GIF3_Pos) ///< Channel 3 Global interrupt flag
  112. #define DMA_ISR_TCIF3_Pos (9)
  113. #define DMA_ISR_TCIF3 (0x01U << DMA_ISR_TCIF3_Pos) ///< Channel 3 Transfer Complete flag
  114. #define DMA_ISR_HTIF3_Pos (10)
  115. #define DMA_ISR_HTIF3 (0x01U << DMA_ISR_HTIF3_Pos) ///< Channel 3 Half Transfer flag
  116. #define DMA_ISR_TEIF3_Pos (11)
  117. #define DMA_ISR_TEIF3 (0x01U << DMA_ISR_TEIF3_Pos) ///< Channel 3 Transfer Error flag
  118. #define DMA_ISR_GIF4_Pos (12)
  119. #define DMA_ISR_GIF4 (0x01U << DMA_ISR_GIF4_Pos) ///< Channel 4 Global interrupt flag
  120. #define DMA_ISR_TCIF4_Pos (13)
  121. #define DMA_ISR_TCIF4 (0x01U << DMA_ISR_TCIF4_Pos) ///< Channel 4 Transfer Complete flag
  122. #define DMA_ISR_HTIF4_Pos (14)
  123. #define DMA_ISR_HTIF4 (0x01U << DMA_ISR_HTIF4_Pos) ///< Channel 4 Half Transfer flag
  124. #define DMA_ISR_TEIF4_Pos (15)
  125. #define DMA_ISR_TEIF4 (0x01U << DMA_ISR_TEIF4_Pos) ///< Channel 4 Transfer Error flag
  126. #define DMA_ISR_GIF5_Pos (16)
  127. #define DMA_ISR_GIF5 (0x01U << DMA_ISR_GIF5_Pos) ///< Channel 5 Global interrupt flag
  128. #define DMA_ISR_TCIF5_Pos (17)
  129. #define DMA_ISR_TCIF5 (0x01U << DMA_ISR_TCIF5_Pos) ///< Channel 5 Transfer Complete flag
  130. #define DMA_ISR_HTIF5_Pos (18)
  131. #define DMA_ISR_HTIF5 (0x01U << DMA_ISR_HTIF5_Pos) ///< Channel 5 Half Transfer flag
  132. #define DMA_ISR_TEIF5_Pos (19)
  133. #define DMA_ISR_TEIF5 (0x01U << DMA_ISR_TEIF5_Pos) ///< Channel 5 Transfer Error flag
  134. #define DMA_ISR_GIF6_Pos (20)
  135. #define DMA_ISR_GIF6 (0x01U << DMA_ISR_GIF6_Pos) ///< Channel 6 Global interrupt flag
  136. #define DMA_ISR_TCIF6_Pos (21)
  137. #define DMA_ISR_TCIF6 (0x01U << DMA_ISR_TCIF6_Pos) ///< Channel 6 Transfer Complete flag
  138. #define DMA_ISR_HTIF6_Pos (22)
  139. #define DMA_ISR_HTIF6 (0x01U << DMA_ISR_HTIF6_Pos) ///< Channel 6 Half Transfer flag
  140. #define DMA_ISR_TEIF6_Pos (23)
  141. #define DMA_ISR_TEIF6 (0x01U << DMA_ISR_TEIF6_Pos) ///< Channel 6 Transfer Error flag
  142. #define DMA_ISR_GIF7_Pos (24)
  143. #define DMA_ISR_GIF7 (0x01U << DMA_ISR_GIF7_Pos) ///< Channel 7 Global interrupt flag
  144. #define DMA_ISR_TCIF7_Pos (25)
  145. #define DMA_ISR_TCIF7 (0x01U << DMA_ISR_TCIF7_Pos) ///< Channel 7 Transfer Complete flag
  146. #define DMA_ISR_HTIF7_Pos (26)
  147. #define DMA_ISR_HTIF7 (0x01U << DMA_ISR_HTIF7_Pos) ///< Channel 7 Half Transfer flag
  148. #define DMA_ISR_TEIF7_Pos (27)
  149. #define DMA_ISR_TEIF7 (0x01U << DMA_ISR_TEIF7_Pos) ///< Channel 7 Transfer Error flag
  150. ////////////////////////////////////////////////////////////////////////////////
  151. /// @brief DMA_IFCR Register Bit Definition
  152. ////////////////////////////////////////////////////////////////////////////////
  153. #define DMA_IFCR_CGIF1_Pos (0)
  154. #define DMA_IFCR_CGIF1 (0x01U << DMA_IFCR_CGIF1_Pos) ///< Channel 1 Global interrupt clearr
  155. #define DMA_IFCR_CTCIF1_Pos (1)
  156. #define DMA_IFCR_CTCIF1 (0x01U << DMA_IFCR_CTCIF1_Pos) ///< Channel 1 Transfer Complete clear
  157. #define DMA_IFCR_CHTIF1_Pos (2)
  158. #define DMA_IFCR_CHTIF1 (0x01U << DMA_IFCR_CHTIF1_Pos) ///< Channel 1 Half Transfer clear
  159. #define DMA_IFCR_CTEIF1_Pos (3)
  160. #define DMA_IFCR_CTEIF1 (0x01U << DMA_IFCR_CTEIF1_Pos) ///< Channel 1 Transfer Error clear
  161. #define DMA_IFCR_CGIF2_Pos (4)
  162. #define DMA_IFCR_CGIF2 (0x01U << DMA_IFCR_CGIF2_Pos) ///< Channel 2 Global interrupt clear
  163. #define DMA_IFCR_CTCIF2_Pos (5)
  164. #define DMA_IFCR_CTCIF2 (0x01U << DMA_IFCR_CTCIF2_Pos) ///< Channel 2 Transfer Complete clear
  165. #define DMA_IFCR_CHTIF2_Pos (6)
  166. #define DMA_IFCR_CHTIF2 (0x01U << DMA_IFCR_CHTIF2_Pos) ///< Channel 2 Half Transfer clear
  167. #define DMA_IFCR_CTEIF2_Pos (7)
  168. #define DMA_IFCR_CTEIF2 (0x01U << DMA_IFCR_CTEIF2_Pos) ///< Channel 2 Transfer Error clear
  169. #define DMA_IFCR_CGIF3_Pos (8)
  170. #define DMA_IFCR_CGIF3 (0x01U << DMA_IFCR_CGIF3_Pos) ///< Channel 3 Global interrupt clear
  171. #define DMA_IFCR_CTCIF3_Pos (9)
  172. #define DMA_IFCR_CTCIF3 (0x01U << DMA_IFCR_CTCIF3_Pos) ///< Channel 3 Transfer Complete clear
  173. #define DMA_IFCR_CHTIF3_Pos (10)
  174. #define DMA_IFCR_CHTIF3 (0x01U << DMA_IFCR_CHTIF3_Pos) ///< Channel 3 Half Transfer clear
  175. #define DMA_IFCR_CTEIF3_Pos (11)
  176. #define DMA_IFCR_CTEIF3 (0x01U << DMA_IFCR_CTEIF3_Pos) ///< Channel 3 Transfer Error clear
  177. #define DMA_IFCR_CGIF4_Pos (12)
  178. #define DMA_IFCR_CGIF4 (0x01U << DMA_IFCR_CGIF4_Pos) ///< Channel 4 Global interrupt clear
  179. #define DMA_IFCR_CTCIF4_Pos (13)
  180. #define DMA_IFCR_CTCIF4 (0x01U << DMA_IFCR_CTCIF4_Pos) ///< Channel 4 Transfer Complete clear
  181. #define DMA_IFCR_CHTIF4_Pos (14)
  182. #define DMA_IFCR_CHTIF4 (0x01U << DMA_IFCR_CHTIF4_Pos) ///< Channel 4 Half Transfer clear
  183. #define DMA_IFCR_CTEIF4_Pos (15)
  184. #define DMA_IFCR_CTEIF4 (0x01U << DMA_IFCR_CTEIF4_Pos) ///< Channel 4 Transfer Error clear
  185. #define DMA_IFCR_CGIF5_Pos (16)
  186. #define DMA_IFCR_CGIF5 (0x01U << DMA_IFCR_CGIF5_Pos) ///< Channel 5 Global interrupt clear
  187. #define DMA_IFCR_CTCIF5_Pos (17)
  188. #define DMA_IFCR_CTCIF5 (0x01U << DMA_IFCR_CTCIF5_Pos) ///< Channel 5 Transfer Complete clear
  189. #define DMA_IFCR_CHTIF5_Pos (18)
  190. #define DMA_IFCR_CHTIF5 (0x01U << DMA_IFCR_CHTIF5_Pos) ///< Channel 5 Half Transfer clear
  191. #define DMA_IFCR_CTEIF5_Pos (19)
  192. #define DMA_IFCR_CTEIF5 (0x01U << DMA_IFCR_CTEIF5_Pos) ///< Channel 5 Transfer Error clear
  193. #define DMA_IFCR_CGIF6_Pos (20)
  194. #define DMA_IFCR_CGIF6 (0x01U << DMA_IFCR_CGIF6_Pos) ///< Channel 6 Global interrupt clear
  195. #define DMA_IFCR_CTCIF6_Pos (21)
  196. #define DMA_IFCR_CTCIF6 (0x01U << DMA_IFCR_CTCIF6_Pos) ///< Channel 6 Transfer Complete clear
  197. #define DMA_IFCR_CHTIF6_Pos (22)
  198. #define DMA_IFCR_CHTIF6 (0x01U << DMA_IFCR_CHTIF6_Pos) ///< Channel 6 Half Transfer clear
  199. #define DMA_IFCR_CTEIF6_Pos (23)
  200. #define DMA_IFCR_CTEIF6 (0x01U << DMA_IFCR_CTEIF6_Pos) ///< Channel 6 Transfer Error clear
  201. #define DMA_IFCR_CGIF7_Pos (24)
  202. #define DMA_IFCR_CGIF7 (0x01U << DMA_IFCR_CGIF7_Pos) ///< Channel 7 Global interrupt clear
  203. #define DMA_IFCR_CTCIF7_Pos (25)
  204. #define DMA_IFCR_CTCIF7 (0x01U << DMA_IFCR_CTCIF7_Pos) ///< Channel 7 Transfer Complete clear
  205. #define DMA_IFCR_CHTIF7_Pos (26)
  206. #define DMA_IFCR_CHTIF7 (0x01U << DMA_IFCR_CHTIF7_Pos) ///< Channel 7 Half Transfer clear
  207. #define DMA_IFCR_CTEIF7_Pos (27)
  208. #define DMA_IFCR_CTEIF7 (0x01U << DMA_IFCR_CTEIF7_Pos) ///< Channel 7 Transfer Error clear
  209. ////////////////////////////////////////////////////////////////////////////////
  210. /// @brief DMA_CCR Register Bit Definition
  211. ////////////////////////////////////////////////////////////////////////////////
  212. #define DMA_CCR_EN_Pos (0)
  213. #define DMA_CCR_EN (0x01U << DMA_CCR_EN_Pos) ///< Channel enabl
  214. #define DMA_CCR_TCIE_Pos (1)
  215. #define DMA_CCR_TCIE (0x01U << DMA_CCR_TCIE_Pos) ///< Transfer complete interrupt enable
  216. #define DMA_CCR_HTIE_Pos (2)
  217. #define DMA_CCR_HTIE (0x01U << DMA_CCR_HTIE_Pos) ///< Half Transfer interrupt enable
  218. #define DMA_CCR_TEIE_Pos (3)
  219. #define DMA_CCR_TEIE (0x01U << DMA_CCR_TEIE_Pos) ///< Transfer error interrupt enable
  220. #define DMA_CCR_DIR_Pos (4)
  221. #define DMA_CCR_DIR (0x01U << DMA_CCR_DIR_Pos) ///< Data transfer direction
  222. #define DMA_CCR_CIRC_Pos (5)
  223. #define DMA_CCR_CIRC (0x01U << DMA_CCR_CIRC_Pos) ///< Circular mode
  224. #define DMA_CCR_PINC_Pos (6)
  225. #define DMA_CCR_PINC (0x01U << DMA_CCR_PINC_Pos) ///< Peripheral increment mode
  226. #define DMA_CCR_MINC_Pos (7)
  227. #define DMA_CCR_MINC (0x01U << DMA_CCR_MINC_Pos) ///< Memory increment mode
  228. #define DMA_CCR_PSIZE_Pos (8)
  229. #define DMA_CCR_PSIZE (0x03U << DMA_CCR_PSIZE_Pos) ///< PSIZE[1:0] bits (Peripheral size)
  230. #define DMA_CCR_PSIZE_0 (0x01U << DMA_CCR_PSIZE_Pos) ///< Bit0
  231. #define DMA_CCR_PSIZE_1 (0x02U << DMA_CCR_PSIZE_Pos) ///< Bit1
  232. #define DMA_CCR_PSIZE_BYTE (0x00U << DMA_CCR_PSIZE_Pos) ///< DMA Peripheral Data Size Byte
  233. #define DMA_CCR_PSIZE_HALFWORD (0x01U << DMA_CCR_PSIZE_Pos) ///< DMA Peripheral Data Size HalfWord
  234. #define DMA_CCR_PSIZE_WORD (0x02U << DMA_CCR_PSIZE_Pos) ///< DMA Peripheral Data Size Word
  235. #define DMA_CCR_MSIZE_Pos (10)
  236. #define DMA_CCR_MSIZE (0x03U << DMA_CCR_MSIZE_Pos) ///< MSIZE[1:0] bits (Memory size)
  237. #define DMA_CCR_MSIZE_0 (0x01U << DMA_CCR_MSIZE_Pos) ///< Bit0
  238. #define DMA_CCR_MSIZE_1 (0x02U << DMA_CCR_MSIZE_Pos) ///< Bit1
  239. #define DMA_CCR_MSIZE_BYTE (0x00U << DMA_CCR_MSIZE_Pos) ///< DMA Memory Data Size Byte
  240. #define DMA_CCR_MSIZE_HALFWORD (0x01U << DMA_CCR_MSIZE_Pos) ///< DMA Memory Data Size HalfWord
  241. #define DMA_CCR_MSIZE_WORD (0x02U << DMA_CCR_MSIZE_Pos) ///< DMA Memory Data Size Word
  242. #define DMA_CCR_PL_Pos (12)
  243. #define DMA_CCR_PL (0x03U << DMA_CCR_PL_Pos) ///< PL[1:0] bits(Channel Priority level)
  244. #define DMA_CCR_PL_0 (0x01U << DMA_CCR_PL_Pos) ///< Bit0
  245. #define DMA_CCR_PL_1 (0x02U << DMA_CCR_PL_Pos) ///< Bit1
  246. #define DMA_CCR_PL_Low (0x00U << DMA_CCR_PL_Pos) ///< DMA Priority Low
  247. #define DMA_CCR_PL_Medium (0x01U << DMA_CCR_PL_Pos) ///< DMA Priority Medium
  248. #define DMA_CCR_PL_High (0x02U << DMA_CCR_PL_Pos) ///< DMA Priority High
  249. #define DMA_CCR_PL_VeryHigh (0x03U << DMA_CCR_PL_Pos) ///< DMA Priority VeryHigh
  250. #define DMA_CCR_M2M_Pos (14)
  251. #define DMA_CCR_M2M (0x01U << DMA_CCR_M2M_Pos) ///< Memory to memory mode
  252. #define DMA_CCR_ARE_Pos (15)
  253. #define DMA_CCR_ARE (0x01U << DMA_CCR_ARE_Pos) ///< Auto-Reload Enable bit
  254. ////////////////////////////////////////////////////////////////////////////////
  255. /// @brief DMA_CNDTR Register Bit Definition
  256. ////////////////////////////////////////////////////////////////////////////////
  257. #define DMA_CNDTR_NDT_Pos (0)
  258. #define DMA_CNDTR_NDT (0xFFFFU << DMA_CNDTR_NDT_Pos) ///< Number of data to Transfer
  259. ////////////////////////////////////////////////////////////////////////////////
  260. /// @brief DMA_CPAR Register Bit Definition
  261. ////////////////////////////////////////////////////////////////////////////////
  262. #define DMA_CPAR_PA_Pos (0)
  263. #define DMA_CPAR_PA (0xFFFFFFFFU << DMA_CPAR_PA_Pos) ///< Peripheral Address
  264. ////////////////////////////////////////////////////////////////////////////////
  265. /// @brief DMA_CMAR Register Bit Definition
  266. ////////////////////////////////////////////////////////////////////////////////
  267. #define DMA_CMAR_MA_Pos (0)
  268. #define DMA_CMAR_MA (0xFFFFFFFFU << DMA_CMAR_MA_Pos) ///< Peripheral Address
  269. /// @}
  270. /// @}
  271. /// @}
  272. ////////////////////////////////////////////////////////////////////////////////
  273. #endif
  274. ////////////////////////////////////////////////////////////////////////////////