reg_exti.h 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544
  1. ////////////////////////////////////////////////////////////////////////////////
  2. /// @file reg_exti.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_EXTI_H
  20. #define __REG_EXTI_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 EXTI Base Address Definition
  30. ////////////////////////////////////////////////////////////////////////////////
  31. #define EXTI_BASE (APB2PERIPH_BASE + 0x0000) ///< Base Address: 0x40010000
  32. ////////////////////////////////////////////////////////////////////////////////
  33. /// @brief EXTI Registers Structure Definition
  34. ////////////////////////////////////////////////////////////////////////////////
  35. typedef struct {
  36. __IO u32 CFGR; ///< configuration register, offset: 0x00
  37. u32 Reserved; ///< Reserved offset: 0x04
  38. __IO u32 CR[4]; ///< External interrupt configuration register, offset: 0x08 - 0x14
  39. __IO u32 CFGR2; ///< configuration register offset: 0x18
  40. __IO u32 PDETCSR; ///< Power detection configuration status register offset: 0x1C
  41. __IO u32 VOSDLY; ///< VOS delay time offset: 0x20
  42. u32 Reserved1[0x100 - 0x09]; ///< Reserved space
  43. __IO u32 IMR; ///< Interrupt Mask Register offset: 0x00 + 0x400
  44. __IO u32 EMR; ///< Event Mask Register offset: 0x04 + 0x400
  45. __IO u32 RTSR; ///< Rising Trigger Status Register offset: 0x08 + 0x400
  46. __IO u32 FTSR; ///< Falling Trigger Status Register offset: 0x0C + 0x400
  47. __IO u32 SWIER; ///< Software Interrupt Enable Register offset: 0x10 + 0x400
  48. __IO u32 PR; ///< Pending Register offset: 0x14 + 0x400
  49. } EXTI_TypeDef;
  50. ////////////////////////////////////////////////////////////////////////////////
  51. /// @brief EXTI type pointer Definition
  52. ////////////////////////////////////////////////////////////////////////////////
  53. #define EXTI ((EXTI_TypeDef*) EXTI_BASE)
  54. ////////////////////////////////////////////////////////////////////////////////
  55. /// @brief EXTI_CFGR Register Bit Definition
  56. ////////////////////////////////////////////////////////////////////////////////
  57. #define EXTI_CFGR_MEMMODE_Pos (0)
  58. #define EXTI_CFGR_MEMMODE (0x03U << EXTI_CFGR_MEMMODE_Pos) ///< EXTI_Memory Remap Config
  59. #define EXTI_CFGR_MEMMODE_0 (0x01U << EXTI_CFGR_MEMMODE_Pos) ///< EXTI_Memory Remap Config Bit 0
  60. #define EXTI_CFGR_MEMMODE_1 (0x02U << EXTI_CFGR_MEMMODE_Pos) ///< EXTI_Memory Remap Config Bit 1
  61. #define EXTI_CFGR_FLASH_MEMORY (0x00U << EXTI_CFGR_MEMMODE_Pos) ///< EXTI_Memory Remap Config Mode 0
  62. #define EXTI_CFGR_SYSTEM_MEMORY (0x01U << EXTI_CFGR_MEMMODE_Pos) ///< EXTI_Memory Remap Config Mode 1
  63. #define EXTI_CFGR_SRAM_MEMORY (0x03U << EXTI_CFGR_MEMMODE_Pos) ///< EXTI_Memory Remap Config Mode 3
  64. #define EXTI_CFGR_FC_SYNCEN_Pos (27)
  65. #define EXTI_CFGR_FC_SYNCEN (0x01U << EXTI_CFGR_FC_SYNCEN_Pos) ///< FSMC synchronization enable
  66. #define EXTI_CFGR_FC_ODATAEN_Pos (28)
  67. #define EXTI_CFGR_FC_ODATAEN (0x01U << EXTI_CFGR_FC_ODATAEN_Pos) ///< FSMC Only used as data pin
  68. #define EXTI_CFGR_MODESEL_Pos (29) ///< FSMC mode selection
  69. #define EXTI_CFGR_MODESEL0 (0x00U << EXTI_CFGR_MODESEL0_Pos) ///< Compatible with 8080 protocol interface
  70. #define EXTI_CFGR_MODESEL1 (0x01U << EXTI_CFGR_MODESEL1_Pos) ///< Compatible with NOR FLASH protocol interface
  71. ////////////////////////////////////////////////////////////////////////////////
  72. /// @brief EXTI_CR1 Register Bit Definition
  73. ////////////////////////////////////////////////////////////////////////////////
  74. #define EXTI_CR1_EXTI0_Pos (0)
  75. #define EXTI_CR1_EXTI0 (0x0FU << EXTI_CR1_EXTI0_Pos) ///< EXTI 0 configuration
  76. #define EXTI_CR1_EXTI0_PA (0x00U << EXTI_CR1_EXTI0_Pos) ///< PA[0] pin
  77. #define EXTI_CR1_EXTI0_PB (0x01U << EXTI_CR1_EXTI0_Pos) ///< PB[0] pin
  78. #define EXTI_CR1_EXTI0_PC (0x02U << EXTI_CR1_EXTI0_Pos) ///< PC[0] pin
  79. #define EXTI_CR1_EXTI0_PD (0x03U << EXTI_CR1_EXTI0_Pos) ///< PD[0] pin
  80. #define EXTI_CR1_EXTI1_Pos (4)
  81. #define EXTI_CR1_EXTI1 (0x0FU << EXTI_CR1_EXTI1_Pos) ///< EXTI 1 configuration
  82. #define EXTI_CR1_EXTI1_PA (0x00U << EXTI_CR1_EXTI1_Pos) ///< PA[1] pin
  83. #define EXTI_CR1_EXTI1_PB (0x01U << EXTI_CR1_EXTI1_Pos) ///< PB[1] pin
  84. #define EXTI_CR1_EXTI1_PC (0x02U << EXTI_CR1_EXTI1_Pos) ///< PC[1] pin
  85. #define EXTI_CR1_EXTI1_PD (0x03U << EXTI_CR1_EXTI1_Pos) ///< PD[1] pin
  86. #define EXTI_CR1_EXTI2_Pos (8)
  87. #define EXTI_CR1_EXTI2 (0x0FU << EXTI_CR1_EXTI2_Pos) ///< EXTI 2 configuration
  88. #define EXTI_CR1_EXTI2_PA (0x00U << EXTI_CR1_EXTI2_Pos) ///< PA[2] pin
  89. #define EXTI_CR1_EXTI2_PB (0x01U << EXTI_CR1_EXTI2_Pos) ///< PB[2] pin
  90. #define EXTI_CR1_EXTI2_PC (0x02U << EXTI_CR1_EXTI2_Pos) ///< PC[2] pin
  91. #define EXTI_CR1_EXTI2_PD (0x03U << EXTI_CR1_EXTI2_Pos) ///< PD[2] pin
  92. #define EXTI_CR1_EXTI3_Pos (12)
  93. #define EXTI_CR1_EXTI3 (0x0FU << EXTI_CR1_EXTI3_Pos) ///< EXTI 3 configuration
  94. #define EXTI_CR1_EXTI3_PA (0x00U << EXTI_CR1_EXTI3_Pos) ///< PA[3] pin
  95. #define EXTI_CR1_EXTI3_PB (0x01U << EXTI_CR1_EXTI3_Pos) ///< PB[3] pin
  96. #define EXTI_CR1_EXTI3_PC (0x02U << EXTI_CR1_EXTI3_Pos) ///< PC[3] pin
  97. #define EXTI_CR1_EXTI3_PD (0x03U << EXTI_CR1_EXTI3_Pos) ///< PD[3] pin
  98. ////////////////////////////////////////////////////////////////////////////////
  99. /// @brief EXTI_CR2 Register Bit Definition
  100. ////////////////////////////////////////////////////////////////////////////////
  101. #define EXTI_CR2_EXTI4_Pos (0)
  102. #define EXTI_CR2_EXTI4 (0x0FU << EXTI_CR2_EXTI4_Pos) ///< EXTI 4 configuration
  103. #define EXTI_CR2_EXTI4_PA (0x00U << EXTI_CR2_EXTI4_Pos) ///< PA[4] pin
  104. #define EXTI_CR2_EXTI4_PB (0x01U << EXTI_CR2_EXTI4_Pos) ///< PB[4] pin
  105. #define EXTI_CR2_EXTI4_PC (0x02U << EXTI_CR2_EXTI4_Pos) ///< PC[4] pin
  106. #define EXTI_CR2_EXTI4_PD (0x03U << EXTI_CR2_EXTI4_Pos) ///< PD[4] pin
  107. #define EXTI_CR2_EXTI5_Pos (4)
  108. #define EXTI_CR2_EXTI5 (0x0FU << EXTI_CR2_EXTI5_Pos) ///< EXTI 5 configuration
  109. #define EXTI_CR2_EXTI5_PA (0x00U << EXTI_CR2_EXTI5_Pos) ///< PA[5] pin
  110. #define EXTI_CR2_EXTI5_PB (0x01U << EXTI_CR2_EXTI5_Pos) ///< PB[5] pin
  111. #define EXTI_CR2_EXTI5_PC (0x02U << EXTI_CR2_EXTI5_Pos) ///< PC[5] pin
  112. #define EXTI_CR2_EXTI5_PD (0x03U << EXTI_CR2_EXTI5_Pos) ///< PD[5] pin
  113. #define EXTI_CR2_EXTI6_Pos (8)
  114. #define EXTI_CR2_EXTI6 (0x0FU << EXTI_CR2_EXTI6_Pos) ///< EXTI 6 configuration
  115. #define EXTI_CR2_EXTI6_PA (0x00U << EXTI_CR2_EXTI6_Pos) ///< PA[6] pin
  116. #define EXTI_CR2_EXTI6_PB (0x01U << EXTI_CR2_EXTI6_Pos) ///< PB[6] pin
  117. #define EXTI_CR2_EXTI6_PC (0x02U << EXTI_CR2_EXTI6_Pos) ///< PC[6] pin
  118. #define EXTI_CR2_EXTI6_PD (0x03U << EXTI_CR2_EXTI6_Pos) ///< PD[6] pin
  119. #define EXTI_CR2_EXTI7_Pos (12)
  120. #define EXTI_CR2_EXTI7 (0x0FU << EXTI_CR2_EXTI7_Pos) ///< EXTI 7 configuration
  121. #define EXTI_CR2_EXTI7_PA (0x00U << EXTI_CR2_EXTI7_Pos) ///< PA[7] pin
  122. #define EXTI_CR2_EXTI7_PB (0x01U << EXTI_CR2_EXTI7_Pos) ///< PB[7] pin
  123. #define EXTI_CR2_EXTI7_PC (0x02U << EXTI_CR2_EXTI7_Pos) ///< PC[7] pin
  124. #define EXTI_CR2_EXTI7_PD (0x03U << EXTI_CR2_EXTI7_Pos) ///< PD[7] pin
  125. ////////////////////////////////////////////////////////////////////////////////
  126. /// @brief EXTI_CR3 Register Bit Definition
  127. ////////////////////////////////////////////////////////////////////////////////
  128. #define EXTI_CR3_EXTI8_Pos (0)
  129. #define EXTI_CR3_EXTI8 (0x0FU << EXTI_CR3_EXTI8_Pos) ///< EXTI 8 configuration
  130. #define EXTI_CR3_EXTI8_PA (0x00U << EXTI_CR3_EXTI8_Pos) ///< PA[8] pin
  131. #define EXTI_CR3_EXTI8_PB (0x01U << EXTI_CR3_EXTI8_Pos) ///< PB[8] pin
  132. #define EXTI_CR3_EXTI8_PC (0x02U << EXTI_CR3_EXTI8_Pos) ///< PC[8] pin
  133. #define EXTI_CR3_EXTI8_PD (0x03U << EXTI_CR3_EXTI8_Pos) ///< PD[8] pin
  134. #define EXTI_CR3_EXTI9_Pos (4)
  135. #define EXTI_CR3_EXTI9 (0x0FU << EXTI_CR3_EXTI9_Pos) ///< EXTI 9 configuration
  136. #define EXTI_CR3_EXTI9_PA (0x00U << EXTI_CR3_EXTI9_Pos) ///< PA[9] pin
  137. #define EXTI_CR3_EXTI9_PB (0x01U << EXTI_CR3_EXTI9_Pos) ///< PB[9] pin
  138. #define EXTI_CR3_EXTI9_PC (0x02U << EXTI_CR3_EXTI9_Pos) ///< PC[9] pin
  139. #define EXTI_CR3_EXTI9_PD (0x03U << EXTI_CR3_EXTI9_Pos) ///< PD[9] pin
  140. #define EXTI_CR3_EXTI10_Pos (8)
  141. #define EXTI_CR3_EXTI10 (0x0FU << EXTI_CR3_EXTI10_Pos) ///< EXTI 10 configuration
  142. #define EXTI_CR3_EXTI10_PA (0x00U << EXTI_CR3_EXTI10_Pos) ///< PA[10] pin
  143. #define EXTI_CR3_EXTI10_PB (0x01U << EXTI_CR3_EXTI10_Pos) ///< PB[10] pin
  144. #define EXTI_CR3_EXTI10_PC (0x02U << EXTI_CR3_EXTI10_Pos) ///< PC[10] pin
  145. #define EXTI_CR3_EXTI10_PD (0x03U << EXTI_CR3_EXTI10_Pos) ///< PD[10] pin
  146. #define EXTI_CR3_EXTI11_Pos (12)
  147. #define EXTI_CR3_EXTI11 (0x0FU << EXTI_CR3_EXTI11_Pos) ///< EXTI 11 configuration
  148. #define EXTI_CR3_EXTI11_PA (0x00U << EXTI_CR3_EXTI11_Pos) ///< PA[11] pin
  149. #define EXTI_CR3_EXTI11_PB (0x01U << EXTI_CR3_EXTI11_Pos) ///< PB[11] pin
  150. #define EXTI_CR3_EXTI11_PC (0x02U << EXTI_CR3_EXTI11_Pos) ///< PC[11] pin
  151. #define EXTI_CR3_EXTI11_PD (0x03U << EXTI_CR3_EXTI11_Pos) ///< PD[11] pin
  152. ////////////////////////////////////////////////////////////////////////////////
  153. /// @brief EXTI_CR4 Register Bit Definition
  154. ////////////////////////////////////////////////////////////////////////////////
  155. #define EXTI_CR4_EXTI12_Pos (0)
  156. #define EXTI_CR4_EXTI12 (0x0FU << EXTI_CR4_EXTI12_Pos) ///< EXTI 12 configuration
  157. #define EXTI_CR4_EXTI12_PA (0x00U << EXTI_CR4_EXTI12_Pos) ///< PA[12] pin
  158. #define EXTI_CR4_EXTI12_PB (0x01U << EXTI_CR4_EXTI12_Pos) ///< PB[12] pin
  159. #define EXTI_CR4_EXTI12_PC (0x02U << EXTI_CR4_EXTI12_Pos) ///< PC[12] pin
  160. #define EXTI_CR4_EXTI12_PD (0x03U << EXTI_CR4_EXTI12_Pos) ///< PD[12] pin
  161. #define EXTI_CR4_EXTI13_Pos (4)
  162. #define EXTI_CR4_EXTI13 (0x0FU << EXTI_CR4_EXTI13_Pos) ///< EXTI 13 configuration
  163. #define EXTI_CR4_EXTI13_PA (0x00U << EXTI_CR4_EXTI13_Pos) ///< PA[13] pin
  164. #define EXTI_CR4_EXTI13_PB (0x01U << EXTI_CR4_EXTI13_Pos) ///< PB[13] pin
  165. #define EXTI_CR4_EXTI13_PC (0x02U << EXTI_CR4_EXTI13_Pos) ///< PC[13] pin
  166. #define EXTI_CR4_EXTI13_PD (0x03U << EXTI_CR4_EXTI13_Pos) ///< PD[13] pin
  167. #define EXTI_CR4_EXTI14_Pos (8)
  168. #define EXTI_CR4_EXTI14 (0x0FU << EXTI_CR4_EXTI14_Pos) ///< EXTI 14 configuration
  169. #define EXTI_CR4_EXTI14_PA (0x00U << EXTI_CR4_EXTI14_Pos) ///< PA[14] pin
  170. #define EXTI_CR4_EXTI14_PB (0x01U << EXTI_CR4_EXTI14_Pos) ///< PB[14] pin
  171. #define EXTI_CR4_EXTI14_PC (0x02U << EXTI_CR4_EXTI14_Pos) ///< PC[14] pin
  172. #define EXTI_CR4_EXTI14_PD (0x03U << EXTI_CR4_EXTI14_Pos) ///< PD[14] pin
  173. #define EXTI_CR4_EXTI15_Pos (12)
  174. #define EXTI_CR4_EXTI15 (0x0FU << EXTI_CR4_EXTI15_Pos) ///< EXTI 15 configuration
  175. #define EXTI_CR4_EXTI15_PA (0x00U << EXTI_CR4_EXTI15_Pos) ///< PA[15] pin
  176. #define EXTI_CR4_EXTI15_PB (0x01U << EXTI_CR4_EXTI15_Pos) ///< PB[15] pin
  177. #define EXTI_CR4_EXTI15_PC (0x02U << EXTI_CR4_EXTI15_Pos) ///< PC[15] pin
  178. #define EXTI_CR4_EXTI15_PD (0x03U << EXTI_CR4_EXTI15_Pos) ///< PD[15] pin
  179. ////////////////////////////////////////////////////////////////////////////////
  180. /// @brief EXTI_CFGR2 Register Bit Definition
  181. ////////////////////////////////////////////////////////////////////////////////
  182. #define EXTI_CFGR2_I2C1_Pos (16)
  183. #define EXTI_CFGR2_I2C1_OD (0x00U << EXTI_CFGR2_I2C1_Pos) ///< Select open drain mode
  184. #define EXTI_CFGR2_I2C1_PP (0x01U << EXTI_CFGR2_I2C1_Pos) ///< Select Push-pull mode
  185. #define EXTI_CFGR2_I2C2_Pos (17)
  186. #define EXTI_CFGR2_I2C2_OD (0x00U << EXTI_CFGR2_I2C2_Pos) ///< Select open drain mode
  187. #define EXTI_CFGR2_I2C2_PP (0x01U << EXTI_CFGR2_I2C2_Pos) ///< Select Push-pull mode
  188. #define EXTI_CFGR2_ETPHY_Pos (20)
  189. #define EXTI_CFGR2_ETPHY_MII (0x00U << EXTI_CFGR2_ETPHY_Pos) ///< Select MII port
  190. #define EXTI_CFGR2_ETPHY_RMII (0x01U << EXTI_CFGR2_ETPHY_Pos) ///< Select RMII port
  191. #define EXTI_CFGR2_MAC_SPD_Pos (20)
  192. #define EXTI_CFGR2_MAC_SPD_10 (0x00U << EXTI_CFGR2_ETPHY_Pos) ///< Select MAC_SPD 10 Mbps
  193. #define EXTI_CFGR2_MAC_SPD_100 (0x01U << EXTI_CFGR2_ETPHY_Pos) ///< Select MAC_SPD 100 Mbps
  194. ////////////////////////////////////////////////////////////////////////////////
  195. /// @brief EXTI_PDETCSR Register Bit Definition
  196. ////////////////////////////////////////////////////////////////////////////////
  197. #define EXTI_PDETCSR_PVDE_Pos (0)
  198. #define EXTI_PDETCSR_PVDE (0x01U << EXTI_PDETCSR_PVDE_Pos) ///< PVD Enable
  199. #define EXTI_PDETCSR_PLS_Pos (1)
  200. #define EXTI_PDETCSR_PLS_1_7 (0x00U << EXTI_PDETCSR_PLS_Pos) ///< PVD 1.7mV
  201. #define EXTI_PDETCSR_PLS_2_0 (0x01U << EXTI_PDETCSR_PLS_Pos) ///< PVD 2.0mV
  202. #define EXTI_PDETCSR_PLS_2_3 (0x02U << EXTI_PDETCSR_PLS_Pos) ///< PVD 2.3mV
  203. #define EXTI_PDETCSR_PLS_2_6 (0x03U << EXTI_PDETCSR_PLS_Pos) ///< PVD 2.6mV
  204. #define EXTI_PDETCSR_PLS_2_9 (0x04U << EXTI_PDETCSR_PLS_Pos) ///< PVD 2.9mV
  205. #define EXTI_PDETCSR_PLS_3_2 (0x05U << EXTI_PDETCSR_PLS_Pos) ///< PVD 3.2mV
  206. #define EXTI_PDETCSR_PLS_3_5 (0x06U << EXTI_PDETCSR_PLS_Pos) ///< PVD 3.5mV
  207. #define EXTI_PDETCSR_PLS_3_8 (0x07U << EXTI_PDETCSR_PLS_Pos) ///< PVD 3.8mV
  208. #define EXTI_PDETCSR_PLS_4_1 (0x08U << EXTI_PDETCSR_PLS_Pos) ///< PVD 4.1mV
  209. #define EXTI_PDETCSR_PLS_4_4 (0x09U << EXTI_PDETCSR_PLS_Pos) ///< PVD 4.4mV
  210. #define EXTI_PDETCSR_PLS_4_7 (0x0AU << EXTI_PDETCSR_PLS_Pos) ///< PVD 4.7mV
  211. #define EXTI_PDETCSR_PVDO_Pos (5)
  212. #define EXTI_PDETCSR_PVDO (0x01U << EXTI_PDETCSR_PVDO_Pos) ///< PVD Output state
  213. #define EXTI_PDETCSR_VDTO_Pos (6)
  214. #define EXTI_PDETCSR_VDTO (0x01U << EXTI_PDETCSR_VDTO_Pos) ///< VDTO Output state
  215. #define EXTI_PDETCSR_VDTE_Pos (8)
  216. #define EXTI_PDETCSR_VDTE (0x01U << EXTI_PDETCSR_VDTE_Pos) ///< VDT Enable
  217. #define EXTI_PDETCSR_VDTLS_Pos (9)
  218. #define EXTI_PDETCSR_VDTLS0 (0x00U << EXTI_PDETCSR_VDTLS_Pos) ///< select VDT 0.9V
  219. #define EXTI_PDETCSR_VDTLS1 (0x01U << EXTI_PDETCSR_VDTLS_Pos) ///< select VDT 1.0V
  220. #define EXTI_PDETCSR_VDTLS2 (0x02U << EXTI_PDETCSR_VDTLS_Pos) ///< select VDT 1.1V
  221. #define EXTI_PDETCSR_VDTLS3 (0x03U << EXTI_PDETCSR_VDTLS_Pos) ///< select VDT 1.2V
  222. #define EXTI_PDETCSR_VBATDIV3_Pos (11)
  223. #define EXTI_PDETCSR_VBATDIV3 (0x01U << EXTI_PDETCSR_VBATDIV3_Pos) ///< PVD Enable
  224. ////////////////////////////////////////////////////////////////////////////////
  225. /// @brief EXTI_VOSDLY Register Bit Definition
  226. ////////////////////////////////////////////////////////////////////////////////
  227. #define EXTI_EXTI_VOSDLY (0x3FFU) ///< VOS delay time
  228. ////////////////////////////////////////////////////////////////////////////////
  229. /// @brief EXTI_IMR Register Bit Definition
  230. ////////////////////////////////////////////////////////////////////////////////
  231. #define EXTI_IMR_0_Pos (0)
  232. #define EXTI_IMR_0 (0x01U << EXTI_IMR_0_Pos) ///< Interrupt Mask on line 0
  233. #define EXTI_IMR_1_Pos (1)
  234. #define EXTI_IMR_1 (0x01U << EXTI_IMR_1_Pos) ///< Interrupt Mask on line 1
  235. #define EXTI_IMR_2_Pos (2)
  236. #define EXTI_IMR_2 (0x01U << EXTI_IMR_2_Pos) ///< Interrupt Mask on line 2
  237. #define EXTI_IMR_3_Pos (3)
  238. #define EXTI_IMR_3 (0x01U << EXTI_IMR_3_Pos) ///< Interrupt Mask on line 3
  239. #define EXTI_IMR_4_Pos (4)
  240. #define EXTI_IMR_4 (0x01U << EXTI_IMR_4_Pos) ///< Interrupt Mask on line 4
  241. #define EXTI_IMR_5_Pos (5)
  242. #define EXTI_IMR_5 (0x01U << EXTI_IMR_5_Pos) ///< Interrupt Mask on line 5
  243. #define EXTI_IMR_6_Pos (6)
  244. #define EXTI_IMR_6 (0x01U << EXTI_IMR_6_Pos) ///< Interrupt Mask on line 6
  245. #define EXTI_IMR_7_Pos (7)
  246. #define EXTI_IMR_7 (0x01U << EXTI_IMR_7_Pos) ///< Interrupt Mask on line 7
  247. #define EXTI_IMR_8_Pos (8)
  248. #define EXTI_IMR_8 (0x01U << EXTI_IMR_8_Pos) ///< Interrupt Mask on line 8
  249. #define EXTI_IMR_9_Pos (9)
  250. #define EXTI_IMR_9 (0x01U << EXTI_IMR_9_Pos) ///< Interrupt Mask on line 9
  251. #define EXTI_IMR_10_Pos (10)
  252. #define EXTI_IMR_10 (0x01U << EXTI_IMR_10_Pos) ///< Interrupt Mask on line 10
  253. #define EXTI_IMR_11_Pos (11)
  254. #define EXTI_IMR_11 (0x01U << EXTI_IMR_11_Pos) ///< Interrupt Mask on line 11
  255. #define EXTI_IMR_12_Pos (12)
  256. #define EXTI_IMR_12 (0x01U << EXTI_IMR_12_Pos) ///< Interrupt Mask on line 12
  257. #define EXTI_IMR_13_Pos (13)
  258. #define EXTI_IMR_13 (0x01U << EXTI_IMR_13_Pos) ///< Interrupt Mask on line 13
  259. #define EXTI_IMR_14_Pos (14)
  260. #define EXTI_IMR_14 (0x01U << EXTI_IMR_14_Pos) ///< Interrupt Mask on line 14
  261. #define EXTI_IMR_15_Pos (15)
  262. #define EXTI_IMR_15 (0x01U << EXTI_IMR_15_Pos) ///< Interrupt Mask on line 15
  263. #define EXTI_IMR_16_Pos (16)
  264. #define EXTI_IMR_16 (0x01U << EXTI_IMR_16_Pos) ///< Interrupt Mask on line 16
  265. ////////////////////////////////////////////////////////////////////////////////
  266. /// @brief EXTI_EMR Register Bit Definition
  267. ////////////////////////////////////////////////////////////////////////////////
  268. #define EXTI_EMR_0_Pos (0)
  269. #define EXTI_EMR_0 (0x01U << EXTI_EMR_0_Pos) ///< Event Mask on line 0
  270. #define EXTI_EMR_1_Pos (1)
  271. #define EXTI_EMR_1 (0x01U << EXTI_EMR_1_Pos) ///< Event Mask on line 1
  272. #define EXTI_EMR_2_Pos (2)
  273. #define EXTI_EMR_2 (0x01U << EXTI_EMR_2_Pos) ///< Event Mask on line 2
  274. #define EXTI_EMR_3_Pos (3)
  275. #define EXTI_EMR_3 (0x01U << EXTI_EMR_3_Pos) ///< Event Mask on line 3
  276. #define EXTI_EMR_4_Pos (4)
  277. #define EXTI_EMR_4 (0x01U << EXTI_EMR_4_Pos) ///< Event Mask on line 4
  278. #define EXTI_EMR_5_Pos (5)
  279. #define EXTI_EMR_5 (0x01U << EXTI_EMR_5_Pos) ///< Event Mask on line 5
  280. #define EXTI_EMR_6_Pos (6)
  281. #define EXTI_EMR_6 (0x01U << EXTI_EMR_6_Pos) ///< Event Mask on line 6
  282. #define EXTI_EMR_7_Pos (7)
  283. #define EXTI_EMR_7 (0x01U << EXTI_EMR_7_Pos) ///< Event Mask on line 7
  284. #define EXTI_EMR_8_Pos (8)
  285. #define EXTI_EMR_8 (0x01U << EXTI_EMR_8_Pos) ///< Event Mask on line 8
  286. #define EXTI_EMR_9_Pos (9)
  287. #define EXTI_EMR_9 (0x01U << EXTI_EMR_9_Pos) ///< Event Mask on line 9
  288. #define EXTI_EMR_10_Pos (10)
  289. #define EXTI_EMR_10 (0x01U << EXTI_EMR_10_Pos) ///< Event Mask on line 10
  290. #define EXTI_EMR_11_Pos (11)
  291. #define EXTI_EMR_11 (0x01U << EXTI_EMR_11_Pos) ///< Event Mask on line 11
  292. #define EXTI_EMR_12_Pos (12)
  293. #define EXTI_EMR_12 (0x01U << EXTI_EMR_12_Pos) ///< Event Mask on line 12
  294. #define EXTI_EMR_13_Pos (13)
  295. #define EXTI_EMR_13 (0x01U << EXTI_EMR_13_Pos) ///< Event Mask on line 13
  296. #define EXTI_EMR_14_Pos (14)
  297. #define EXTI_EMR_14 (0x01U << EXTI_EMR_14_Pos) ///< Event Mask on line 14
  298. #define EXTI_EMR_15_Pos (15)
  299. #define EXTI_EMR_15 (0x01U << EXTI_EMR_15_Pos) ///< Event Mask on line 15
  300. #define EXTI_EMR_16_Pos (16)
  301. #define EXTI_EMR_16 (0x01U << EXTI_EMR_16_Pos) ///< Event Mask on line 16
  302. ////////////////////////////////////////////////////////////////////////////////
  303. /// @brief EXTI_RTSR Register Bit Definition
  304. ////////////////////////////////////////////////////////////////////////////////
  305. #define EXTI_RTSR_0_Pos (0)
  306. #define EXTI_RTSR_0 (0x01U << EXTI_RTSR_0_Pos) ///< Rising trigger event configuration bit of line 0
  307. #define EXTI_RTSR_1_Pos (1)
  308. #define EXTI_RTSR_1 (0x01U << EXTI_RTSR_1_Pos) ///< Rising trigger event configuration bit of line 1
  309. #define EXTI_RTSR_2_Pos (2)
  310. #define EXTI_RTSR_2 (0x01U << EXTI_RTSR_2_Pos) ///< Rising trigger event configuration bit of line 2
  311. #define EXTI_RTSR_3_Pos (3)
  312. #define EXTI_RTSR_3 (0x01U << EXTI_RTSR_3_Pos) ///< Rising trigger event configuration bit of line 3
  313. #define EXTI_RTSR_4_Pos (4)
  314. #define EXTI_RTSR_4 (0x01U << EXTI_RTSR_4_Pos) ///< Rising trigger event configuration bit of line 4
  315. #define EXTI_RTSR_5_Pos (5)
  316. #define EXTI_RTSR_5 (0x01U << EXTI_RTSR_5_Pos) ///< Rising trigger event configuration bit of line 5
  317. #define EXTI_RTSR_6_Pos (6)
  318. #define EXTI_RTSR_6 (0x01U << EXTI_RTSR_6_Pos) ///< Rising trigger event configuration bit of line 6
  319. #define EXTI_RTSR_7_Pos (7)
  320. #define EXTI_RTSR_7 (0x01U << EXTI_RTSR_7_Pos) ///< Rising trigger event configuration bit of line 7
  321. #define EXTI_RTSR_8_Pos (8)
  322. #define EXTI_RTSR_8 (0x01U << EXTI_RTSR_8_Pos) ///< Rising trigger event configuration bit of line 8
  323. #define EXTI_RTSR_9_Pos (9)
  324. #define EXTI_RTSR_9 (0x01U << EXTI_RTSR_9_Pos) ///< Rising trigger event configuration bit of line 9
  325. #define EXTI_RTSR_10_Pos (10)
  326. #define EXTI_RTSR_10 (0x01U << EXTI_RTSR_10_Pos) ///< Rising trigger event configuration bit of line 10
  327. #define EXTI_RTSR_11_Pos (11)
  328. #define EXTI_RTSR_11 (0x01U << EXTI_RTSR_11_Pos) ///< Rising trigger event configuration bit of line 11
  329. #define EXTI_RTSR_12_Pos (12)
  330. #define EXTI_RTSR_12 (0x01U << EXTI_RTSR_12_Pos) ///< Rising trigger event configuration bit of line 12
  331. #define EXTI_RTSR_13_Pos (13)
  332. #define EXTI_RTSR_13 (0x01U << EXTI_RTSR_13_Pos) ///< Rising trigger event configuration bit of line 13
  333. #define EXTI_RTSR_14_Pos (14)
  334. #define EXTI_RTSR_14 (0x01U << EXTI_RTSR_14_Pos) ///< Rising trigger event configuration bit of line 14
  335. #define EXTI_RTSR_15_Pos (15)
  336. #define EXTI_RTSR_15 (0x01U << EXTI_RTSR_15_Pos) ///< Rising trigger event configuration bit of line 15
  337. #define EXTI_RTSR_16_Pos (16)
  338. #define EXTI_RTSR_16 (0x01U << EXTI_RTSR_16_Pos) ///< Rising trigger event configuration bit of line 16
  339. ////////////////////////////////////////////////////////////////////////////////
  340. /// @brief EXTI_FTSR Register Bit Definition
  341. ////////////////////////////////////////////////////////////////////////////////
  342. #define EXTI_FTSR_0_Pos (0)
  343. #define EXTI_FTSR_0 (0x01U << EXTI_FTSR_0_Pos) ///< Falling trigger event configuration bit of line 0
  344. #define EXTI_FTSR_1_Pos (1)
  345. #define EXTI_FTSR_1 (0x01U << EXTI_FTSR_1_Pos) ///< Falling trigger event configuration bit of line 1
  346. #define EXTI_FTSR_2_Pos (2)
  347. #define EXTI_FTSR_2 (0x01U << EXTI_FTSR_2_Pos) ///< Falling trigger event configuration bit of line 2
  348. #define EXTI_FTSR_3_Pos (3)
  349. #define EXTI_FTSR_3 (0x01U << EXTI_FTSR_3_Pos) ///< Falling trigger event configuration bit of line 3
  350. #define EXTI_FTSR_4_Pos (4)
  351. #define EXTI_FTSR_4 (0x01U << EXTI_FTSR_4_Pos) ///< Falling trigger event configuration bit of line 4
  352. #define EXTI_FTSR_5_Pos (5)
  353. #define EXTI_FTSR_5 (0x01U << EXTI_FTSR_5_Pos) ///< Falling trigger event configuration bit of line 5
  354. #define EXTI_FTSR_6_Pos (6)
  355. #define EXTI_FTSR_6 (0x01U << EXTI_FTSR_6_Pos) ///< Falling trigger event configuration bit of line 6
  356. #define EXTI_FTSR_7_Pos (7)
  357. #define EXTI_FTSR_7 (0x01U << EXTI_FTSR_7_Pos) ///< Falling trigger event configuration bit of line 7
  358. #define EXTI_FTSR_8_Pos (8)
  359. #define EXTI_FTSR_8 (0x01U << EXTI_FTSR_8_Pos) ///< Falling trigger event configuration bit of line 8
  360. #define EXTI_FTSR_9_Pos (9)
  361. #define EXTI_FTSR_9 (0x01U << EXTI_FTSR_9_Pos) ///< Falling trigger event configuration bit of line 9
  362. #define EXTI_FTSR_10_Pos (10)
  363. #define EXTI_FTSR_10 (0x01U << EXTI_FTSR_10_Pos) ///< Falling trigger event configuration bit of line 10
  364. #define EXTI_FTSR_11_Pos (11)
  365. #define EXTI_FTSR_11 (0x01U << EXTI_FTSR_11_Pos) ///< Falling trigger event configuration bit of line 11
  366. #define EXTI_FTSR_12_Pos (12)
  367. #define EXTI_FTSR_12 (0x01U << EXTI_FTSR_12_Pos) ///< Falling trigger event configuration bit of line 12
  368. #define EXTI_FTSR_13_Pos (13)
  369. #define EXTI_FTSR_13 (0x01U << EXTI_FTSR_13_Pos) ///< Falling trigger event configuration bit of line 13
  370. #define EXTI_FTSR_14_Pos (14)
  371. #define EXTI_FTSR_14 (0x01U << EXTI_FTSR_14_Pos) ///< Falling trigger event configuration bit of line 14
  372. #define EXTI_FTSR_15_Pos (15)
  373. #define EXTI_FTSR_15 (0x01U << EXTI_FTSR_15_Pos) ///< Falling trigger event configuration bit of line 15
  374. #define EXTI_FTSR_16_Pos (16)
  375. #define EXTI_FTSR_16 (0x01U << EXTI_FTSR_16_Pos) ///< Falling trigger event configuration bit of line 16
  376. ////////////////////////////////////////////////////////////////////////////////
  377. /// @brief EXTI_SWIER Register Bit Definition
  378. ////////////////////////////////////////////////////////////////////////////////
  379. #define EXTI_SWIER_0_Pos (0)
  380. #define EXTI_SWIER_0 (0x01U << EXTI_SWIER_0_Pos) ///< Software Interrupt on line 0
  381. #define EXTI_SWIER_1_Pos (1)
  382. #define EXTI_SWIER_1 (0x01U << EXTI_SWIER_1_Pos) ///< Software Interrupt on line 1
  383. #define EXTI_SWIER_2_Pos (2)
  384. #define EXTI_SWIER_2 (0x01U << EXTI_SWIER_2_Pos) ///< Software Interrupt on line 2
  385. #define EXTI_SWIER_3_Pos (3)
  386. #define EXTI_SWIER_3 (0x01U << EXTI_SWIER_3_Pos) ///< Software Interrupt on line 3
  387. #define EXTI_SWIER_4_Pos (4)
  388. #define EXTI_SWIER_4 (0x01U << EXTI_SWIER_4_Pos) ///< Software Interrupt on line 4
  389. #define EXTI_SWIER_5_Pos (5)
  390. #define EXTI_SWIER_5 (0x01U << EXTI_SWIER_5_Pos) ///< Software Interrupt on line 5
  391. #define EXTI_SWIER_6_Pos (6)
  392. #define EXTI_SWIER_6 (0x01U << EXTI_SWIER_6_Pos) ///< Software Interrupt on line 6
  393. #define EXTI_SWIER_7_Pos (7)
  394. #define EXTI_SWIER_7 (0x01U << EXTI_SWIER_7_Pos) ///< Software Interrupt on line 7
  395. #define EXTI_SWIER_8_Pos (8)
  396. #define EXTI_SWIER_8 (0x01U << EXTI_SWIER_8_Pos) ///< Software Interrupt on line 8
  397. #define EXTI_SWIER_9_Pos (9)
  398. #define EXTI_SWIER_9 (0x01U << EXTI_SWIER_9_Pos) ///< Software Interrupt on line 9
  399. #define EXTI_SWIER_10_Pos (10)
  400. #define EXTI_SWIER_10 (0x01U << EXTI_SWIER_10_Pos) ///< Software Interrupt on line 10
  401. #define EXTI_SWIER_11_Pos (11)
  402. #define EXTI_SWIER_11 (0x01U << EXTI_SWIER_11_Pos) ///< Software Interrupt on line 11
  403. #define EXTI_SWIER_12_Pos (12)
  404. #define EXTI_SWIER_12 (0x01U << EXTI_SWIER_12_Pos) ///< Software Interrupt on line 12
  405. #define EXTI_SWIER_13_Pos (13)
  406. #define EXTI_SWIER_13 (0x01U << EXTI_SWIER_13_Pos) ///< Software Interrupt on line 13
  407. #define EXTI_SWIER_14_Pos (14)
  408. #define EXTI_SWIER_14 (0x01U << EXTI_SWIER_14_Pos) ///< Software Interrupt on line 14
  409. #define EXTI_SWIER_15_Pos (15)
  410. #define EXTI_SWIER_15 (0x01U << EXTI_SWIER_15_Pos) ///< Software Interrupt on line 15
  411. #define EXTI_SWIER_16_Pos (16)
  412. #define EXTI_SWIER_16 (0x01U << EXTI_SWIER_16_Pos) ///< Software Interrupt on line 16
  413. ////////////////////////////////////////////////////////////////////////////////
  414. /// @brief EXTI_PR Register Bit Definition
  415. ////////////////////////////////////////////////////////////////////////////////
  416. #define EXTI_PR_0_Pos (0)
  417. #define EXTI_PR_0 (0x01U << EXTI_PR_0_Pos) ///< Pending bit 0
  418. #define EXTI_PR_1_Pos (1)
  419. #define EXTI_PR_1 (0x01U << EXTI_PR_1_Pos) ///< Pending bit 1
  420. #define EXTI_PR_2_Pos (2)
  421. #define EXTI_PR_2 (0x01U << EXTI_PR_2_Pos) ///< Pending bit 2
  422. #define EXTI_PR_3_Pos (3)
  423. #define EXTI_PR_3 (0x01U << EXTI_PR_3_Pos) ///< Pending bit 3
  424. #define EXTI_PR_4_Pos (4)
  425. #define EXTI_PR_4 (0x01U << EXTI_PR_4_Pos) ///< Pending bit 4
  426. #define EXTI_PR_5_Pos (5)
  427. #define EXTI_PR_5 (0x01U << EXTI_PR_5_Pos) ///< Pending bit 5
  428. #define EXTI_PR_6_Pos (6)
  429. #define EXTI_PR_6 (0x01U << EXTI_PR_6_Pos) ///< Pending bit 6
  430. #define EXTI_PR_7_Pos (7)
  431. #define EXTI_PR_7 (0x01U << EXTI_PR_7_Pos) ///< Pending bit 7
  432. #define EXTI_PR_8_Pos (8)
  433. #define EXTI_PR_8 (0x01U << EXTI_PR_8_Pos) ///< Pending bit 8
  434. #define EXTI_PR_9_Pos (9)
  435. #define EXTI_PR_9 (0x01U << EXTI_PR_9_Pos) ///< Pending bit 9
  436. #define EXTI_PR_10_Pos (10)
  437. #define EXTI_PR_10 (0x01U << EXTI_PR_10_Pos) ///< Pending bit 10
  438. #define EXTI_PR_11_Pos (11)
  439. #define EXTI_PR_11 (0x01U << EXTI_PR_11_Pos) ///< Pending bit 11
  440. #define EXTI_PR_12_Pos (12)
  441. #define EXTI_PR_12 (0x01U << EXTI_PR_12_Pos) ///< Pending bit 12
  442. #define EXTI_PR_13_Pos (13)
  443. #define EXTI_PR_13 (0x01U << EXTI_PR_13_Pos) ///< Pending bit 13
  444. #define EXTI_PR_14_Pos (14)
  445. #define EXTI_PR_14 (0x01U << EXTI_PR_14_Pos) ///< Pending bit 14
  446. #define EXTI_PR_15_Pos (15)
  447. #define EXTI_PR_15 (0x01U << EXTI_PR_15_Pos) ///< Pending bit 15
  448. #define EXTI_PR_16_Pos (16)
  449. #define EXTI_PR_16 (0x01U << EXTI_PR_16_Pos) ///< Pending bit 16
  450. /// @}
  451. /// @}
  452. /// @}
  453. ////////////////////////////////////////////////////////////////////////////////
  454. #endif
  455. ////////////////////////////////////////////////////////////////////////////////