gpio.h 79 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284
  1. #ifndef __GPIO_H__
  2. #define __GPIO_H__
  3. /*******************************************************************************
  4. * Include files
  5. ******************************************************************************/
  6. #include "stdint.h"
  7. /* C binding of definitions if building with C++ compiler */
  8. #ifdef __cplusplus
  9. extern "C"
  10. {
  11. #endif
  12. /*******************************************************************************
  13. * Global type definitions
  14. ******************************************************************************/
  15. /*******************************************************************************
  16. * Global type definitions
  17. ******************************************************************************/
  18. /**
  19. *******************************************************************************
  20. ** \brief GPIO PORT类型定义
  21. ******************************************************************************/
  22. typedef enum en_gpio_port
  23. {
  24. GpioPortA = 0x00u, ///< GPIO PORT A
  25. GpioPortB = 0x40u, ///< GPIO PORT B
  26. GpioPortC = 0x80u, ///< GPIO PORT C
  27. GpioPortD = 0xc0u, ///< GPIO PORT D
  28. GpioPortE = 0x1000u, ///< GPIO PORT E
  29. GpioPortF = 0x1040u, ///< GPIO PORT F
  30. }en_gpio_port_t;
  31. /**
  32. *******************************************************************************
  33. ** \brief GPIO PIN类型定义
  34. ******************************************************************************/
  35. typedef enum en_gpio_pin
  36. {
  37. GpioPin0 = 0u, ///< GPIO PIN0
  38. GpioPin1 = 1u, ///< GPIO PIN1
  39. GpioPin2 = 2u, ///< GPIO PIN2
  40. GpioPin3 = 3u, ///< GPIO PIN3
  41. GpioPin4 = 4u, ///< GPIO PIN4
  42. GpioPin5 = 5u, ///< GPIO PIN5
  43. GpioPin6 = 6u, ///< GPIO PIN6
  44. GpioPin7 = 7u, ///< GPIO PIN7
  45. GpioPin8 = 8u, ///< GPIO PIN8
  46. GpioPin9 = 9u, ///< GPIO PIN9
  47. GpioPin10 = 10u, ///< GPIO PIN10
  48. GpioPin11 = 11u, ///< GPIO PIN11
  49. GpioPin12 = 12u, ///< GPIO PIN12
  50. GpioPin13 = 13u, ///< GPIO PIN13
  51. GpioPin14 = 14u, ///< GPIO PIN14
  52. GpioPin15 = 15u, ///< GPIO PIN15
  53. }en_gpio_pin_t;
  54. #define GpioBitMsk0 (0x0001u)
  55. #define GpioBitMsk1 (0x0002u)
  56. #define GpioBitMsk2 (0x0004u)
  57. #define GpioBitMsk3 (0x0008u)
  58. #define GpioBitMsk4 (0x0010u)
  59. #define GpioBitMsk5 (0x0020u)
  60. #define GpioBitMsk6 (0x0040u)
  61. #define GpioBitMsk7 (0x0080u)
  62. #define GpioBitMsk8 (0x0100u)
  63. #define GpioBitMsk9 (0x0200u)
  64. #define GpioBitMsk10 (0x0400u)
  65. #define GpioBitMsk11 (0x0800u)
  66. #define GpioBitMsk12 (0x1000u)
  67. #define GpioBitMsk13 (0x2000u)
  68. #define GpioBitMsk14 (0x4000u)
  69. #define GpioBitMsk15 (0x8000u)
  70. /**
  71. *******************************************************************************
  72. ** \brief GPIO 端口复用功能(AF-Alternate function)类型定义
  73. ** \note 具体功能及含义请参考用户手册GPIO复用表或下表
  74. ******************************************************************************/
  75. typedef enum en_gpio_af
  76. {
  77. GpioAf0 = 0u, ///< GPIO功能
  78. GpioAf1 = 1u, ///< GPIO AF1:复用功能1
  79. GpioAf2 = 2u, ///< GPIO AF2:复用功能2
  80. GpioAf3 = 3u, ///< GPIO AF3:复用功能3
  81. GpioAf4 = 4u, ///< GPIO AF4:复用功能4
  82. GpioAf5 = 5u, ///< GPIO AF5:复用功能5
  83. GpioAf6 = 6u, ///< GPIO AF6:复用功能6
  84. GpioAf7 = 7u, ///< GPIO AF7:复用功能7
  85. }en_gpio_af_t;
  86. ///*||======||=============||=============||=============||=============||=============||=============||=============||*///
  87. ///*||PSEL || GpioAf1 || GpioAf2 || GpioAf3 || GpioAf4 || GpioAf5 || GpioAf6 || GpioAf7 ||*///
  88. ///*||======||=============||=============||=============||=============||=============||=============||=============||*///
  89. ///*||PA00 ||UART1_CTS ||LPUART1_TXD ||TIM0_ETR ||VC0_OUT ||TIM1_CHA ||TIM3_ETR ||TIM0_CHA ||*///
  90. ///*||PA01 ||UART1_RTS ||LPUART1_RXD ||TIM0_CHB ||TIM1_ETR ||TIM1_CHB ||HCLK_OUT ||SPI1_MOSI ||*///
  91. ///*||PA02 ||UART1_TXD ||TIM0_CHA ||VC1_OUT ||TIM1_CHA ||TIM2_CHA ||PCLK_OUT ||SPI1_MISO ||*///
  92. ///*||PA03 ||UART1_RXD ||TIM0_GATE ||TIM1_CHB ||TIM2_CHB ||SPI1_CS ||TIM3_CH1A ||TIM5_CHA ||*///
  93. ///*||PA04 ||SPI0_CS ||UART1_TXD ||PCA_CH4 ||TIM2_ETR ||TIM5_CHA ||LVD_OUT ||TIM3_CH2B ||*///
  94. ///*||PA05 ||SPI0_SCK ||TIM0_ETR ||PCA_ECI ||TIM0_CHA ||TIM5_CHB ||XTL_OUT ||XTH_OUT ||*///
  95. ///*||PA06 ||SPI0_MISO ||PCA_CH0 ||TIM3_BK ||TIM1_CHA ||VC0_OUT ||TIM3_GATE ||LPUART0_CTS ||*///
  96. ///*||PA07 ||SPI0_MOSI ||PCA_CH1 ||HCLK_OUT ||TIM3_CH0B ||TIM2_CHA ||VC1_OUT ||TIM4_CHB ||*///
  97. ///*||PA08 ||UART0_TXD ||TIM3_CH0A || || ||TIM1_GATE ||TIM4_CHA ||TIM3_BK ||*///
  98. ///*||PA09 ||UART0_TXD ||TIM3_CH1A ||TIM0_BK ||I2C0_SCL || ||HCLK_OUT ||TIM5_CHA ||*///
  99. ///*||PA10 ||UART0_RXD ||TIM3_CH2A ||TIM2_BK ||I2C0_SDA ||TIM2_GATE ||PCLK_OUT ||TIM6_CHA ||*///
  100. ///*||PA11 ||UART0_CTS ||TIM3_GATE ||I2C1_SCL || ||VC0_OUT ||SPI0_MISO ||TIM4_CHB ||*///
  101. ///*||PA12 ||UART0_RTS ||TIM3_ETR ||I2C1_SDA || ||VC1_OUT ||SPI0_MOSI ||PCNT_S0 ||*///
  102. ///*||PA13 ||IR_OUT ||UART0_RXD ||LVD_OUT ||TIM3_ETR ||RTC_1HZ ||PCNT_S1 ||VC2_OUT ||*///
  103. ///*||PA14 ||UART1_TXD ||UART0_TXD ||TIM3_CH2A ||LVD_OUT ||RCH_OUT ||RCL_OUT ||PLL_OUT ||*///
  104. ///*||PA15 ||SPI0_CS ||UART1_RXD ||LPUART1_RTS ||TIM0_ETR ||TIM0_CHA ||TIM3_CH1A || ||*///
  105. ///*||PB00 ||PCA_CH2 ||TIM3_CH1B ||LPUART0_TXD ||TIM5_CHB ||RCH_OUT ||RCL_OUT ||PLL_OUT ||*///
  106. ///*||PB01 ||PCA_CH3 ||PCLK_OUT ||TIM3_CH2B ||TIM6_CHB ||LPUART0_RTS ||VC2_OUT ||TCLK_OUT  ||*///
  107. ///*||PB02 ||LPTIM_TOG ||PCA_ECI ||LPUART1_TXD ||TIM4_CHA ||TIM1_BK ||TIM0_BK ||TIM2_BK ||*///
  108. ///*||PB03 ||SPI0_SCK ||TIM0_CHB ||TIM1_GATE ||TIM3_CH0A ||LPTIM_GATE ||XTL_OUT ||XTH_OUT ||*///
  109. ///*||PB04 ||SPI0_MISO ||PCA_CH0 ||TIM2_BK ||UART0_CTS ||TIM2_GATE ||TIM3_CH0B ||LPTIM_ETR ||*///
  110. ///*||PB05 ||SPI0_MOSI || ||TIM1_BK ||PCA_CH1 ||LPTIM_GATE ||PCNT_S0 ||UART0_RTS ||*///
  111. ///*||PB06 ||I2C0_SCL ||UART0_TXD ||TIM1_CHB ||TIM0_CHA ||LPTIM_ETR ||TIM3_CH0A ||LPTIM_TOG ||*///
  112. ///*||PB07 ||I2C0_SDA ||UART0_RXD ||TIM2_CHB ||LPUART1_CTS ||TIM0_CHB ||LPTIM_TOGN ||PCNT_S1 ||*///
  113. ///*||PB08 ||I2C0_SCL ||TIM1_CHA || ||TIM2_CHA ||TIM0_GATE ||TIM3_CH2A ||UART0_TXD ||*///
  114. ///*||PB09 ||I2C0_SDA ||IR_OUT ||SPI1_CS ||TIM2_CHA || ||TIM2_CHB ||UART0_RXD ||*///
  115. ///*||PB10 ||I2C1_SCL ||SPI1_SCK ||TIM1_CHA ||LPUART0_TXD ||TIM3_CH1A ||LPUART1_RTS ||UART1_RTS ||*///
  116. ///*||PB11 ||I2C1_SDA ||TIM1_CHB ||LPUART0_RXD ||TIM2_GATE ||TIM6_CHA ||LPUART1_CTS ||UART1_CTS ||*///
  117. ///*||PB12 ||SPI1_CS ||TIM3_BK ||LPUART0_TXD ||TIM0_BK || ||LPUART0_RTS ||TIM6_CHA ||*///
  118. ///*||PB13 ||SPI1_SCK ||I2C1_SCL ||TIM3_CH0B ||LPUART0_CTS ||TIM1_CHA ||TIM1_GATE ||TIM6_CHB ||*///
  119. ///*||PB14 ||SPI1_MISO ||I2C1_SDA ||TIM3_CH1B ||TIM0_CHA ||RTC_1HZ ||LPUART0_RTS ||TIM1_BK ||*///
  120. ///*||PB15 ||SPI1_MOSI ||TIM3_CH2B ||TIM0_CHB ||TIM0_GATE || || ||LPUART1_RXD ||*///
  121. ///*||PC00 ||LPTIM_GATE ||PCNT_S0 ||UART1_CTS ||UART2_RTS || || || ||*///
  122. ///*||PC01 ||LPTIM_TOG ||TIM5_CHB ||UART1_RTS ||PCNT_S0FO || ||UART2_CTS || ||*///
  123. ///*||PC02 ||SPI1_MISO ||LPTIM_TOGN ||PCNT_S1 ||UART2_RXD || || || ||*///
  124. ///*||PC03 ||SPI1_MOSI ||LPTIM_ETR ||LPTIM_TOGN ||PCNT_S1FO ||UART2_TXD || || ||*///
  125. ///*||PC04 ||LPUART0_TXD ||TIM2_ETR ||IR_OUT ||VC2_OUT || || || ||*///
  126. ///*||PC05 ||LPUART0_RXD ||TIM6_CHB ||PCA_CH4 || || || || ||*///
  127. ///*||PC06 ||PCA_CH0 ||TIM4_CHA ||TIM2_CHA ||LPTIM1_GATE || ||UART3_RXD || ||*///
  128. ///*||PC07 ||PCA_CH1 ||TIM5_CHA ||TIM2_CHB ||LPTIM1_ETR || ||UART3_TXD || ||*///
  129. ///*||PC08 ||PCA_CH2 ||TIM6_CHA ||TIM2_ETR ||LPTIM1_TOG || ||UART3_CTS || ||*///
  130. ///*||PC09 ||PCA_CH3 ||TIM4_CHB ||TIM1_ETR ||LPTIM1_TOGN || ||UART3_RTS || ||*///
  131. ///*||PC10 ||LPUART1_TXD ||LPUART0_TXD ||PCA_CH2 || || || || ||*///
  132. ///*||PC11 ||LPUART1_RXD ||LPUART0_RXD ||PCA_CH3 ||PCNT_S0FO || || || ||*///
  133. ///*||PC12 ||LPUART0_TXD ||LPUART1_TXD ||PCA_CH4 ||PCNT_S1FO || || || ||*///
  134. ///*||PC13 || ||RTC_1HZ ||TIM3_CH1B || || || || ||*///
  135. ///*||PC14 || || || || || || || ||*///
  136. ///*||PC15 || || || || || || || ||*///
  137. ///*||PD00 || ||SPI1_CS || || || || || ||*///
  138. ///*||PD01 || ||SPI1_SCK || || || || || ||*///
  139. ///*||PD02 ||PCA_ECI ||LPUART0_RTS ||TIM1_ETR || || || || ||*///
  140. ///*||PD03 ||UART1_CTS ||SPI1_MISO ||LPTIM1_TOG || || || || ||*///
  141. ///*||PD04 ||UART1_RTS ||SPI1_MOSI ||LPTIM1_TOGN || || || || ||*///
  142. ///*||PD05 ||UART1_TXD ||LPTIM1_GATE || || || || || ||*///
  143. ///*||PD06 ||UART1_RXD ||LPTIM1_ETR || || || || || ||*///
  144. ///*||PD07 ||UART1_TXD || || || || || || ||*///
  145. ///*||PD08 ||LPUART0_TXD || || || || || || ||*///
  146. ///*||PD09 ||LPUART0_RXD || || || || || || ||*///
  147. ///*||PD10 ||LPUART0_TXD || || || || || || ||*///
  148. ///*||PD11 ||LPUART0_CTS || || || || || || ||*///
  149. ///*||PD12 ||LPUART0_RTS ||UART2_RTS || || || || || ||*///
  150. ///*||PD13 ||UART2_RXD || || || || || || ||*///
  151. ///*||PD14 ||UART2_TXD || || || || || || ||*///
  152. ///*||PD15 || ||UART2_CTS || || || || || ||*///
  153. ///*||PE00 ||TIM1_CHA || || || || || || ||*///
  154. ///*||PE01 ||TIM2_CHA || || || || || || ||*///
  155. ///*||PE02 ||PCA_ECI || || || || || || ||*///
  156. ///*||PE03 ||PCA_CH0 || || || || || || ||*///
  157. ///*||PE04 ||PCA_CH1 || || || || || || ||*///
  158. ///*||PE05 ||PCA_CH2 || || || || || || ||*///
  159. ///*||PE06 ||PCA_CH3 || || || || || || ||*///
  160. ///*||PE07 ||TIM3_ETR ||LPTIM1_GATE || || || || || ||*///
  161. ///*||PE08 ||TIM3_CH0B ||LPTIM1_ETR || || || || || ||*///
  162. ///*||PE09 ||TIM3_CH0A ||LPTIM1_TOG || || || || || ||*///
  163. ///*||PE10 ||TIM3_CH1B ||LPTIM1_TOGN || || || || || ||*///
  164. ///*||PE11 ||TIM3_CH1A || || || || || || ||*///
  165. ///*||PE12 ||TIM3_CH2B ||SPI0_CS ||UART3_CTS || || || || ||*///
  166. ///*||PE13 ||TIM3_CH2A ||SPI0_SCK ||UART3_RTS || || || || ||*///
  167. ///*||PE14 ||TIM3_CH0B ||SPI0_MISO ||UART3_RXD || || || || ||*///
  168. ///*||PE15 ||TIM3_BK ||SPI0_MOSI ||UART3_TXD || || || || ||*///
  169. ///*||PF00 ||I2C0_SDA || ||UART1_TXD || || || || ||*///
  170. ///*||PF01 ||I2C0_SCL ||TIM4_CHB ||UART1_RXD || || || || ||*///
  171. ///*||PF02 || || || || || || || ||*///
  172. ///*||PF03 || || || || || || || ||*///
  173. ///*||PF04 || || || || || || || ||*///
  174. ///*||PF05 || || || || || || || ||*///
  175. ///*||PF06 ||I2C1_SCL ||LPUART1_CTS ||UART0_CTS || || || || ||*///
  176. ///*||PF07 ||I2C1_SDA ||LPUART1_RTS ||UART0_RTS || || || || ||*///
  177. ///*||PF09 ||TIM0_CHA || || || || || || ||*///
  178. ///*||PF10 ||TIM0_CHB || || || || || || ||*///
  179. ///*||PF11 || || || || || || || ||*///
  180. ///*||======||=============||=============||=============||=============||=============||=============||=============||*///
  181. /**
  182. *******************************************************************************
  183. ** \brief GPIO输入输出配置数据类型定义
  184. ******************************************************************************/
  185. typedef enum en_gpio_dir
  186. {
  187. GpioDirOut = 0u, ///< GPIO 输出
  188. GpioDirIn = 1u, ///< GPIO 输入
  189. }en_gpio_dir_t;
  190. /**
  191. *******************************************************************************
  192. ** \brief GPIO端口上拉配置数据类型定义
  193. ******************************************************************************/
  194. typedef enum en_gpio_pu
  195. {
  196. GpioPuDisable = 0u, ///< GPIO无上拉
  197. GpioPuEnable = 1u, ///< GPIO上拉
  198. }en_gpio_pu_t;
  199. /**
  200. *******************************************************************************
  201. ** \brief GPIO端口下拉配置数据类型定义
  202. ******************************************************************************/
  203. typedef enum en_gpio_pd
  204. {
  205. GpioPdDisable = 0u, ///< GPIO无下拉
  206. GpioPdEnable = 1u, ///< GPIO下拉
  207. }en_gpio_pd_t;
  208. /**
  209. *******************************************************************************
  210. ** \brief GPIO端口输出驱动能力配置数据类型定义
  211. ******************************************************************************/
  212. typedef enum en_gpio_drv
  213. {
  214. GpioDrvH = 0u, ///< GPIO高驱动能力
  215. GpioDrvL = 1u, ///< GPIO低驱动能力
  216. }en_gpio_drv_t;
  217. /**
  218. *******************************************************************************
  219. ** \brief GPIO端口开漏输出控制数据类型定义
  220. ******************************************************************************/
  221. typedef enum en_gpio_od
  222. {
  223. GpioOdDisable = 0u, ///< GPIO开漏输出关闭
  224. GpioOdEnable = 1u, ///< GPIO开漏输出使能
  225. }en_gpio_od_t;
  226. /**
  227. *******************************************************************************
  228. ** \brief GPIO端口输入/输出值寄存器总线控制模式选择
  229. ******************************************************************************/
  230. typedef enum en_gpio_ctrl_mode
  231. {
  232. GpioFastIO = 0u, ///< FAST IO 总线控制模式
  233. GpioAHB = 1u, ///< AHB 总线控制模式
  234. }en_gpio_ctrl_mode_t;
  235. /**
  236. *******************************************************************************
  237. ** \brief GPIO中断触发方式类型定义
  238. ******************************************************************************/
  239. typedef enum en_gpio_irqtype
  240. {
  241. GpioIrqHigh = 0u, ///< GPIO高电平触发
  242. GpioIrqLow = 1u, ///< GPIO低电平触发
  243. GpioIrqRising = 2u, ///< GPIO上升沿触发
  244. GpioIrqFalling = 3u, ///< GPIO下降沿触发
  245. }en_gpio_irqtype_t;
  246. /**
  247. *******************************************************************************
  248. ** \brief GPIO 辅助功能(SF-Secondary Function)端口中断模式类型定义
  249. ******************************************************************************/
  250. typedef enum en_gpio_sf_irqmode
  251. {
  252. GpioSfIrqDpslpMode = 1u, ///< Deep Sleep模式
  253. GpioSfIrqActSlpMode = 0u, ///< Active/Sleep模式
  254. }en_gpio_sf_irqmode_t;
  255. /**
  256. *******************************************************************************
  257. ** \brief GPIO 辅助功能(SF-Secondary Function)HCLK输出门控类型定义
  258. ******************************************************************************/
  259. typedef enum en_gpio_sf_hclkout_g
  260. {
  261. GpioSfHclkOutDisable = 0u, ///< HCLK输出门控关闭
  262. GpioSfHclkOutEnable = 1u, ///< HCLK输出门控使能
  263. }en_gpio_sf_hclkout_g_t;
  264. /**
  265. *******************************************************************************
  266. ** \brief GPIO 辅助功能(SF-Secondary Function)HCLK输出分频选择类型定义
  267. ******************************************************************************/
  268. typedef enum en_gpio_sf_hclkout_div
  269. {
  270. GpioSfHclkOutDiv1 = 0u, ///< HCLK
  271. GpioSfHclkOutDiv2 = 1u, ///< HCLK/2
  272. GpioSfHclkOutDiv4 = 2u, ///< HCLK/4
  273. GpioSfHclkOutDiv8 = 3u, ///< HCLK/8
  274. }en_gpio_sf_hclkout_div_t;
  275. /**
  276. *******************************************************************************
  277. ** \brief GPIO 辅助功能(SF-Secondary Function)PCLK输出门控类型定义
  278. ******************************************************************************/
  279. typedef enum en_gpio_sf_pclkout_g
  280. {
  281. GpioSfPclkOutDisable = 0u, ///< PCLK输出门控关闭
  282. GpioSfPclkOutEnable = 1u, ///< PCLK输出门控使能
  283. }en_gpio_sf_pclkout_g_t;
  284. /**
  285. *******************************************************************************
  286. ** \brief GPIO 辅助功能(SF-Secondary Function)PCLK输出分频选择类型定义
  287. ******************************************************************************/
  288. typedef enum en_gpio_sf_pclkout_div
  289. {
  290. GpioSfPclkOutDiv1 = 0u, ///< PCLK
  291. GpioSfPclkOutDiv2 = 1u, ///< PCLK/2
  292. GpioSfPclkOutDiv4 = 2u, ///< PCLK/4
  293. GpioSfPclkOutDiv8 = 3u, ///< PCLK/8
  294. }en_gpio_sf_pclkout_div_t;
  295. /**
  296. *******************************************************************************
  297. ** \brief GPIO 辅助功能(SF-Secondary Function)IR输出极性选择类型定义
  298. ******************************************************************************/
  299. typedef enum en_gpio_sf_irpol
  300. {
  301. GpioSfIrP = 0u, ///< IR正向输出
  302. GpioSfIrN = 1u, ///< IR反向输出
  303. }en_gpio_sf_irpol_t;
  304. /**
  305. *******************************************************************************
  306. ** \brief GPIO 辅助功能(SF-Secondary Function)SSN通道类型定义
  307. ******************************************************************************/
  308. typedef enum en_gpio_sf_ssnspi
  309. {
  310. GpioSpi0 = 0u, ///< SPI0 SSN
  311. GpioSpi1 = 1u, ///< SPI1 SSN
  312. }en_gpio_sf_ssnspi_t;
  313. /**
  314. *******************************************************************************
  315. ** \brief GPIO 辅助功能(SF-Secondary Function)SSN与外部时钟输入信号源选择类型定义
  316. ******************************************************************************/
  317. typedef enum en_gpio_sf_ssn_extclk
  318. {
  319. GpioSfSsnExtClkH = 0u, ///< 高电平
  320. GpioSfSsnExtClkPA03 = 1u, ///< PA03
  321. GpioSfSsnExtClkPA04 = 2u, ///< PA04
  322. GpioSfSsnExtClkPA06 = 3u, ///< PA06
  323. GpioSfSsnExtClkPA08 = 4u, ///< PA08
  324. GpioSfSsnExtClkPA09 = 5u, ///< PA09
  325. GpioSfSsnExtClkPA12 = 6u, ///< PA12
  326. GpioSfSsnExtClkPA15 = 7u, ///< PA15
  327. GpioSfSsnExtClkPB01 = 8u, ///< PB01
  328. GpioSfSsnExtClkPB02 = 9u, ///< PB02
  329. GpioSfSsnExtClkPB05 = 10u, ///< PB05
  330. GpioSfSsnExtClkPB06 = 11u, ///< PB06
  331. GpioSfSsnExtClkPB09 = 12u, ///< PB09
  332. GpioSfSsnExtClkPB10 = 13u, ///< PB10
  333. GpioSfSsnExtClkPB12 = 14u, ///< PB12
  334. GpioSfSsnExtClkPB14 = 15u, ///< PB14
  335. }en_gpio_sf_ssn_extclk_t;
  336. /**
  337. *******************************************************************************
  338. ** \brief GPIO 辅助功能(SF-Secondary Function)定时器互联功能选择类型定义
  339. ** \note 具体功能及含义请参考用户手册GPIO辅助寄存器描述
  340. ******************************************************************************/
  341. typedef enum en_gpio_sf
  342. {
  343. GpioSf0 = 0u, ///< SF0:PX_SEL的配置功能
  344. GpioSf1 = 1u, ///< SF1:辅助功能1
  345. GpioSf2 = 2u, ///< SF2:辅助功能2
  346. GpioSf3 = 3u, ///< SF3:辅助功能3
  347. GpioSf4 = 4u, ///< SF4:辅助功能4
  348. GpioSf5 = 5u, ///< SF5:辅助功能5
  349. GpioSf6 = 6u, ///< SF6:辅助功能6
  350. GpioSf7 = 7u, ///< SF7:辅助功能7
  351. }en_gpio_sf_t;
  352. /**
  353. *******************************************************************************
  354. ** \brief GPIO 辅助功能(SF-Secondary Function)定时器门控类型选择数据类型定义
  355. ******************************************************************************/
  356. typedef enum en_gpio_sf_tim_g
  357. {
  358. GpioSfTim0G = 0u, ///<Tim0定时器GATE输入选择
  359. GpioSfTim1G = 3u, ///<Tim1定时器GATE输入选择
  360. GpioSfTim2G = 6u, ///<Tim2定时器GATE输入选择
  361. GpioSfTim3G = 9u, ///<Tim3定时器GATE输入选择
  362. GpioSfLpTim0G = 12u, ///<LPTim0定时器GATE输入选择
  363. GpioSfLpTim1G = 38u, ///<LPTim1定时器GATE输入选择
  364. }en_gpio_sf_tim_g_t;
  365. /**
  366. *******************************************************************************
  367. ** \brief GPIO 辅助功能(SF-Secondary Function)定时器ETR类型选择数据类型定义
  368. ******************************************************************************/
  369. typedef enum en_gpio_sf_tim_e
  370. {
  371. GpioSfTim0E = 0u, ///<Tim0定时器ETR输入选择
  372. GpioSfTim1E = 3u, ///<Tim1定时器ETR输入选择
  373. GpioSfTim2E = 6u, ///<Tim2定时器ETR输入选择
  374. GpioSfTim3E = 9u, ///<Tim3定时器ETR输入选择
  375. GpioSfLpTim0E = 12u, ///<LPTim0定时器ETR输入选择
  376. GpioSfLpTim1E = 41u, ///<LPTim1定时器ETR输入选择
  377. }en_gpio_sf_tim_e_t;
  378. /**
  379. *******************************************************************************
  380. ** \brief GPIO 辅助功能(SF-Secondary Function)定时器捕获输入类型选择数据类型定义
  381. ******************************************************************************/
  382. typedef enum en_gpio_sf_tim_c
  383. {
  384. GpioSfTim0CA = 0u, ///<Tim0定时器CHA输入选择
  385. GpioSfTim1CA = 3u, ///<Tim1定时器CHA输入选择
  386. GpioSfTim2CA = 6u, ///<Tim2定时器CHA输入选择
  387. GpioSfTim3CA = 9u, ///<Tim3定时器CH0A输入选择
  388. GpioSfTim3CB = 12u, ///<Tim3定时器CH0B输入选择
  389. }en_gpio_sf_tim_c_t;
  390. /**
  391. *******************************************************************************
  392. ** \brief GPIO 辅助功能(SF-Secondary Function)PCA捕获选择数据类型定义
  393. ******************************************************************************/
  394. typedef enum en_gpio_sf_pca
  395. {
  396. GpioSfPcaCH0 = 0u, ///<PCA_CH0捕获口输入选择
  397. GpioSfPcaECI = 3u, ///<PCA ECI时钟输入选择
  398. }en_gpio_sf_pca_t;
  399. /**
  400. *******************************************************************************
  401. ** \brief GPIO 辅助功能(SF-Secondary Function)PCNT脉冲输入选择数据类型定义
  402. ******************************************************************************/
  403. typedef enum en_gpio_sf_pcnt
  404. {
  405. GpioSfPcntS0 = 0u, ///<PCNT_S0输入选择
  406. GpioSfPcntS1 = 3u, ///<PCNT_S1输入选择
  407. }en_gpio_sf_pcnt_t;
  408. /*******************************************************************************
  409. * Global definitions——(GPIO 复用功能宏定义)
  410. ******************************************************************************/
  411. ///< GPIO 复用功能宏定义
  412. ///< GpioAf0
  413. #define PA00_AF0 (GpioPortA<<16u|GpioPin0 <<8u|GpioAf0)
  414. #define PA01_AF0 (GpioPortA<<16u|GpioPin1 <<8u|GpioAf0)
  415. #define PA02_AF0 (GpioPortA<<16u|GpioPin2 <<8u|GpioAf0)
  416. #define PA03_AF0 (GpioPortA<<16u|GpioPin3 <<8u|GpioAf0)
  417. #define PA04_AF0 (GpioPortA<<16u|GpioPin4 <<8u|GpioAf0)
  418. #define PA05_AF0 (GpioPortA<<16u|GpioPin5 <<8u|GpioAf0)
  419. #define PA06_AF0 (GpioPortA<<16u|GpioPin6 <<8u|GpioAf0)
  420. #define PA07_AF0 (GpioPortA<<16u|GpioPin7 <<8u|GpioAf0)
  421. #define PA08_AF0 (GpioPortA<<16u|GpioPin8 <<8u|GpioAf0)
  422. #define PA09_AF0 (GpioPortA<<16u|GpioPin9 <<8u|GpioAf0)
  423. #define PA10_AF0 (GpioPortA<<16u|GpioPin10<<8u|GpioAf0)
  424. #define PA11_AF0 (GpioPortA<<16u|GpioPin11<<8u|GpioAf0)
  425. #define PA12_AF0 (GpioPortA<<16u|GpioPin12<<8u|GpioAf0)
  426. #define PA13_AF0 (GpioPortA<<16u|GpioPin13<<8u|GpioAf0)
  427. #define PA14_AF0 (GpioPortA<<16u|GpioPin14<<8u|GpioAf0)
  428. #define PA15_AF0 (GpioPortA<<16u|GpioPin15<<8u|GpioAf0)
  429. #define PB00_AF0 (GpioPortB<<16u|GpioPin0 <<8u|GpioAf0)
  430. #define PB01_AF0 (GpioPortB<<16u|GpioPin1 <<8u|GpioAf0)
  431. #define PB02_AF0 (GpioPortB<<16u|GpioPin2 <<8u|GpioAf0)
  432. #define PB03_AF0 (GpioPortB<<16u|GpioPin3 <<8u|GpioAf0)
  433. #define PB04_AF0 (GpioPortB<<16u|GpioPin4 <<8u|GpioAf0)
  434. #define PB05_AF0 (GpioPortB<<16u|GpioPin5 <<8u|GpioAf0)
  435. #define PB06_AF0 (GpioPortB<<16u|GpioPin6 <<8u|GpioAf0)
  436. #define PB07_AF0 (GpioPortB<<16u|GpioPin7 <<8u|GpioAf0)
  437. #define PB08_AF0 (GpioPortB<<16u|GpioPin8 <<8u|GpioAf0)
  438. #define PB09_AF0 (GpioPortB<<16u|GpioPin9 <<8u|GpioAf0)
  439. #define PB10_AF0 (GpioPortB<<16u|GpioPin10<<8u|GpioAf0)
  440. #define PB11_AF0 (GpioPortB<<16u|GpioPin11<<8u|GpioAf0)
  441. #define PB12_AF0 (GpioPortB<<16u|GpioPin12<<8u|GpioAf0)
  442. #define PB13_AF0 (GpioPortB<<16u|GpioPin13<<8u|GpioAf0)
  443. #define PB14_AF0 (GpioPortB<<16u|GpioPin14<<8u|GpioAf0)
  444. #define PB15_AF0 (GpioPortB<<16u|GpioPin15<<8u|GpioAf0)
  445. #define PC00_AF0 (GpioPortC<<16u|GpioPin0 <<8u|GpioAf0)
  446. #define PC01_AF0 (GpioPortC<<16u|GpioPin1 <<8u|GpioAf0)
  447. #define PC02_AF0 (GpioPortC<<16u|GpioPin2 <<8u|GpioAf0)
  448. #define PC03_AF0 (GpioPortC<<16u|GpioPin3 <<8u|GpioAf0)
  449. #define PC04_AF0 (GpioPortC<<16u|GpioPin4 <<8u|GpioAf0)
  450. #define PC05_AF0 (GpioPortC<<16u|GpioPin5 <<8u|GpioAf0)
  451. #define PC06_AF0 (GpioPortC<<16u|GpioPin6 <<8u|GpioAf0)
  452. #define PC07_AF0 (GpioPortC<<16u|GpioPin7 <<8u|GpioAf0)
  453. #define PC08_AF0 (GpioPortC<<16u|GpioPin8 <<8u|GpioAf0)
  454. #define PC09_AF0 (GpioPortC<<16u|GpioPin9 <<8u|GpioAf0)
  455. #define PC10_AF0 (GpioPortC<<16u|GpioPin10<<8u|GpioAf0)
  456. #define PC11_AF0 (GpioPortC<<16u|GpioPin11<<8u|GpioAf0)
  457. #define PC12_AF0 (GpioPortC<<16u|GpioPin12<<8u|GpioAf0)
  458. #define PC13_AF0 (GpioPortC<<16u|GpioPin13<<8u|GpioAf0)
  459. #define PC14_AF0 (GpioPortC<<16u|GpioPin14<<8u|GpioAf0)
  460. #define PC15_AF0 (GpioPortC<<16u|GpioPin15<<8u|GpioAf0)
  461. #define PD00_AF0 (GpioPortD<<16u|GpioPin0 <<8u|GpioAf0)
  462. #define PD01_AF0 (GpioPortD<<16u|GpioPin1 <<8u|GpioAf0)
  463. #define PD02_AF0 (GpioPortD<<16u|GpioPin2 <<8u|GpioAf0)
  464. #define PD03_AF0 (GpioPortD<<16u|GpioPin3 <<8u|GpioAf0)
  465. #define PD04_AF0 (GpioPortD<<16u|GpioPin4 <<8u|GpioAf0)
  466. #define PD05_AF0 (GpioPortD<<16u|GpioPin5 <<8u|GpioAf0)
  467. #define PD06_AF0 (GpioPortD<<16u|GpioPin6 <<8u|GpioAf0)
  468. #define PD07_AF0 (GpioPortD<<16u|GpioPin7 <<8u|GpioAf0)
  469. #define PD08_AF0 (GpioPortD<<16u|GpioPin8 <<8u|GpioAf0)
  470. #define PD09_AF0 (GpioPortD<<16u|GpioPin9 <<8u|GpioAf0)
  471. #define PD10_AF0 (GpioPortD<<16u|GpioPin10<<8u|GpioAf0)
  472. #define PD11_AF0 (GpioPortD<<16u|GpioPin11<<8u|GpioAf0)
  473. #define PD12_AF0 (GpioPortD<<16u|GpioPin12<<8u|GpioAf0)
  474. #define PD13_AF0 (GpioPortD<<16u|GpioPin13<<8u|GpioAf0)
  475. #define PD14_AF0 (GpioPortD<<16u|GpioPin14<<8u|GpioAf0)
  476. #define PD15_AF0 (GpioPortD<<16u|GpioPin15<<8u|GpioAf0)
  477. #define PE00_AF0 (GpioPortE<<16u|GpioPin0 <<8u|GpioAf0)
  478. #define PE01_AF0 (GpioPortE<<16u|GpioPin1 <<8u|GpioAf0)
  479. #define PE02_AF0 (GpioPortE<<16u|GpioPin2 <<8u|GpioAf0)
  480. #define PE03_AF0 (GpioPortE<<16u|GpioPin3 <<8u|GpioAf0)
  481. #define PE04_AF0 (GpioPortE<<16u|GpioPin4 <<8u|GpioAf0)
  482. #define PE05_AF0 (GpioPortE<<16u|GpioPin5 <<8u|GpioAf0)
  483. #define PE06_AF0 (GpioPortE<<16u|GpioPin6 <<8u|GpioAf0)
  484. #define PE07_AF0 (GpioPortE<<16u|GpioPin7 <<8u|GpioAf0)
  485. #define PE08_AF0 (GpioPortE<<16u|GpioPin8 <<8u|GpioAf0)
  486. #define PE09_AF0 (GpioPortE<<16u|GpioPin9 <<8u|GpioAf0)
  487. #define PE10_AF0 (GpioPortE<<16u|GpioPin10<<8u|GpioAf0)
  488. #define PE11_AF0 (GpioPortE<<16u|GpioPin11<<8u|GpioAf0)
  489. #define PE12_AF0 (GpioPortE<<16u|GpioPin12<<8u|GpioAf0)
  490. #define PE13_AF0 (GpioPortE<<16u|GpioPin13<<8u|GpioAf0)
  491. #define PE14_AF0 (GpioPortE<<16u|GpioPin14<<8u|GpioAf0)
  492. #define PE15_AF0 (GpioPortE<<16u|GpioPin15<<8u|GpioAf0)
  493. #define PF00_AF0 (GpioPortF<<16u|GpioPin0 <<8u|GpioAf0)
  494. #define PF01_AF0 (GpioPortF<<16u|GpioPin1 <<8u|GpioAf0)
  495. #define PF02_AF0 (GpioPortF<<16u|GpioPin2 <<8u|GpioAf0)
  496. #define PF03_AF0 (GpioPortF<<16u|GpioPin3 <<8u|GpioAf0)
  497. #define PF04_AF0 (GpioPortF<<16u|GpioPin4 <<8u|GpioAf0)
  498. #define PF05_AF0 (GpioPortF<<16u|GpioPin5 <<8u|GpioAf0)
  499. #define PF06_AF0 (GpioPortF<<16u|GpioPin6 <<8u|GpioAf0)
  500. #define PF07_AF0 (GpioPortF<<16u|GpioPin7 <<8u|GpioAf0)
  501. #define PF09_AF0 (GpioPortF<<16u|GpioPin9 <<8u|GpioAf0)
  502. #define PF10_AF0 (GpioPortF<<16u|GpioPin10<<8u|GpioAf0)
  503. #define PF11_AF0 (GpioPortF<<16u|GpioPin11<<8u|GpioAf0)
  504. ///< GpioAf1
  505. #define PA00_UART1_CTS (GpioPortA<<16u|GpioPin0 <<8u|GpioAf1)
  506. #define PA01_UART1_RTS (GpioPortA<<16u|GpioPin1 <<8u|GpioAf1)
  507. #define PA02_UART1_TXD (GpioPortA<<16u|GpioPin2 <<8u|GpioAf1)
  508. #define PA03_UART1_RXD (GpioPortA<<16u|GpioPin3 <<8u|GpioAf1)
  509. #define PA04_SPI0_CS (GpioPortA<<16u|GpioPin4 <<8u|GpioAf1)
  510. #define PA05_SPI0_SCK (GpioPortA<<16u|GpioPin5 <<8u|GpioAf1)
  511. #define PA06_SPI0_MISO (GpioPortA<<16u|GpioPin6 <<8u|GpioAf1)
  512. #define PA07_SPI0_MOSI (GpioPortA<<16u|GpioPin7 <<8u|GpioAf1)
  513. #define PA08_UART0_TXD (GpioPortA<<16u|GpioPin8 <<8u|GpioAf1)
  514. #define PA09_UART0_TXD (GpioPortA<<16u|GpioPin9 <<8u|GpioAf1)
  515. #define PA10_UART0_RXD (GpioPortA<<16u|GpioPin10<<8u|GpioAf1)
  516. #define PA11_UART0_CTS (GpioPortA<<16u|GpioPin11<<8u|GpioAf1)
  517. #define PA12_UART0_RTS (GpioPortA<<16u|GpioPin12<<8u|GpioAf1)
  518. #define PA13_IR_OUT (GpioPortA<<16u|GpioPin13<<8u|GpioAf1)
  519. #define PA14_UART1_TXD (GpioPortA<<16u|GpioPin14<<8u|GpioAf1)
  520. #define PA15_SPI0_CS (GpioPortA<<16u|GpioPin15<<8u|GpioAf1)
  521. #define PB00_PCA_CH2 (GpioPortB<<16u|GpioPin0 <<8u|GpioAf1)
  522. #define PB01_PCA_CH3 (GpioPortB<<16u|GpioPin1 <<8u|GpioAf1)
  523. #define PB02_LPTIM_TOG (GpioPortB<<16u|GpioPin2 <<8u|GpioAf1)
  524. #define PB03_SPI0_SCK (GpioPortB<<16u|GpioPin3 <<8u|GpioAf1)
  525. #define PB04_SPI0_MISO (GpioPortB<<16u|GpioPin4 <<8u|GpioAf1)
  526. #define PB05_SPI0_MOSI (GpioPortB<<16u|GpioPin5 <<8u|GpioAf1)
  527. #define PB06_I2C0_SCL (GpioPortB<<16u|GpioPin6 <<8u|GpioAf1)
  528. #define PB07_I2C0_SDA (GpioPortB<<16u|GpioPin7 <<8u|GpioAf1)
  529. #define PB08_I2C0_SCL (GpioPortB<<16u|GpioPin8 <<8u|GpioAf1)
  530. #define PB09_I2C0_SDA (GpioPortB<<16u|GpioPin9 <<8u|GpioAf1)
  531. #define PB10_I2C1_SCL (GpioPortB<<16u|GpioPin10<<8u|GpioAf1)
  532. #define PB11_I2C1_SDA (GpioPortB<<16u|GpioPin11<<8u|GpioAf1)
  533. #define PB12_SPI1_CS (GpioPortB<<16u|GpioPin12<<8u|GpioAf1)
  534. #define PB13_SPI1_SCK (GpioPortB<<16u|GpioPin13<<8u|GpioAf1)
  535. #define PB14_SPI1_MISO (GpioPortB<<16u|GpioPin14<<8u|GpioAf1)
  536. #define PB15_SPI1_MOSI (GpioPortB<<16u|GpioPin15<<8u|GpioAf1)
  537. #define PC00_LPTIM_GATE (GpioPortC<<16u|GpioPin0 <<8u|GpioAf1)
  538. #define PC01_LPTIM_TOG (GpioPortC<<16u|GpioPin1 <<8u|GpioAf1)
  539. #define PC02_SPI1_MISO (GpioPortC<<16u|GpioPin2 <<8u|GpioAf1)
  540. #define PC03_SPI1_MOSI (GpioPortC<<16u|GpioPin3 <<8u|GpioAf1)
  541. #define PC04_LPUART0_TXD (GpioPortC<<16u|GpioPin4 <<8u|GpioAf1)
  542. #define PC05_LPUART0_RXD (GpioPortC<<16u|GpioPin5 <<8u|GpioAf1)
  543. #define PC06_PCA_CH0 (GpioPortC<<16u|GpioPin6 <<8u|GpioAf1)
  544. #define PC07_PCA_CH1 (GpioPortC<<16u|GpioPin7 <<8u|GpioAf1)
  545. #define PC08_PCA_CH2 (GpioPortC<<16u|GpioPin8 <<8u|GpioAf1)
  546. #define PC09_PCA_CH3 (GpioPortC<<16u|GpioPin9 <<8u|GpioAf1)
  547. #define PC10_LPUART1_TXD (GpioPortC<<16u|GpioPin10<<8u|GpioAf1)
  548. #define PC11_LPUART1_RXD (GpioPortC<<16u|GpioPin11<<8u|GpioAf1)
  549. #define PC12_LPUART0_TXD (GpioPortC<<16u|GpioPin12<<8u|GpioAf1)
  550. #define PC13_1x (GpioPortC<<16u|GpioPin13<<8u|GpioAf1)
  551. #define PC14_1x (GpioPortC<<16u|GpioPin14<<8u|GpioAf1)
  552. #define PC15_1x (GpioPortC<<16u|GpioPin15<<8u|GpioAf1)
  553. #define PD00_1x (GpioPortD<<16u|GpioPin0 <<8u|GpioAf1)
  554. #define PD01_1x (GpioPortD<<16u|GpioPin1 <<8u|GpioAf1)
  555. #define PD02_PCA_ECI (GpioPortD<<16u|GpioPin2 <<8u|GpioAf1)
  556. #define PD03_UART1_CTS (GpioPortD<<16u|GpioPin3 <<8u|GpioAf1)
  557. #define PD04_UART1_RTS (GpioPortD<<16u|GpioPin4 <<8u|GpioAf1)
  558. #define PD05_UART1_TXD (GpioPortD<<16u|GpioPin5 <<8u|GpioAf1)
  559. #define PD06_UART1_RXD (GpioPortD<<16u|GpioPin6 <<8u|GpioAf1)
  560. #define PD07_UART1_TXD (GpioPortD<<16u|GpioPin7 <<8u|GpioAf1)
  561. #define PD08_LPUART0_TXD (GpioPortD<<16u|GpioPin8 <<8u|GpioAf1)
  562. #define PD09_LPUART0_RXD (GpioPortD<<16u|GpioPin9 <<8u|GpioAf1)
  563. #define PD10_LPUART0_TXD (GpioPortD<<16u|GpioPin10<<8u|GpioAf1)
  564. #define PD11_LPUART0_CTS (GpioPortD<<16u|GpioPin11<<8u|GpioAf1)
  565. #define PD12_LPUART0_RTS (GpioPortD<<16u|GpioPin12<<8u|GpioAf1)
  566. #define PD13_UART2_RXD (GpioPortD<<16u|GpioPin13<<8u|GpioAf1)
  567. #define PD14_UART2_TXD (GpioPortD<<16u|GpioPin14<<8u|GpioAf1)
  568. #define PD15_1x (GpioPortD<<16u|GpioPin15<<8u|GpioAf1)
  569. #define PE00_TIM1_CHA (GpioPortE<<16u|GpioPin0 <<8u|GpioAf1)
  570. #define PE01_TIM2_CHA (GpioPortE<<16u|GpioPin1 <<8u|GpioAf1)
  571. #define PE02_PCA_ECI (GpioPortE<<16u|GpioPin2 <<8u|GpioAf1)
  572. #define PE03_PCA_CH0 (GpioPortE<<16u|GpioPin3 <<8u|GpioAf1)
  573. #define PE04_PCA_CH1 (GpioPortE<<16u|GpioPin4 <<8u|GpioAf1)
  574. #define PE05_PCA_CH2 (GpioPortE<<16u|GpioPin5 <<8u|GpioAf1)
  575. #define PE06_PCA_CH3 (GpioPortE<<16u|GpioPin6 <<8u|GpioAf1)
  576. #define PE07_TIM3_ETR (GpioPortE<<16u|GpioPin7 <<8u|GpioAf1)
  577. #define PE08_TIM3_CH0B (GpioPortE<<16u|GpioPin8 <<8u|GpioAf1)
  578. #define PE09_TIM3_CH0A (GpioPortE<<16u|GpioPin9 <<8u|GpioAf1)
  579. #define PE10_TIM3_CH1B (GpioPortE<<16u|GpioPin10<<8u|GpioAf1)
  580. #define PE11_TIM3_CH1A (GpioPortE<<16u|GpioPin11<<8u|GpioAf1)
  581. #define PE12_TIM3_CH2B (GpioPortE<<16u|GpioPin12<<8u|GpioAf1)
  582. #define PE13_TIM3_CH2A (GpioPortE<<16u|GpioPin13<<8u|GpioAf1)
  583. #define PE14_TIM3_CH0B (GpioPortE<<16u|GpioPin14<<8u|GpioAf1)
  584. #define PE15_TIM3_BK (GpioPortE<<16u|GpioPin15<<8u|GpioAf1)
  585. #define PF00_I2C0_SDA (GpioPortF<<16u|GpioPin0 <<8u|GpioAf1)
  586. #define PF01_I2C0_SCL (GpioPortF<<16u|GpioPin1 <<8u|GpioAf1)
  587. #define PF02_1x (GpioPortF<<16u|GpioPin2 <<8u|GpioAf1)
  588. #define PF03_1x (GpioPortF<<16u|GpioPin3 <<8u|GpioAf1)
  589. #define PF04_1x (GpioPortF<<16u|GpioPin4 <<8u|GpioAf1)
  590. #define PF05_1x (GpioPortF<<16u|GpioPin5 <<8u|GpioAf1)
  591. #define PF06_I2C1_SCL (GpioPortF<<16u|GpioPin6 <<8u|GpioAf1)
  592. #define PF07_I2C1_SDA (GpioPortF<<16u|GpioPin7 <<8u|GpioAf1)
  593. #define PF09_TIM0_CHA (GpioPortF<<16u|GpioPin9 <<8u|GpioAf1)
  594. #define PF10_TIM0_CHB (GpioPortF<<16u|GpioPin10<<8u|GpioAf1)
  595. #define PF11_1x (GpioPortF<<16u|GpioPin11<<8u|GpioAf1)
  596. ///< GpioAf2
  597. #define PA00_LPUART1_TXD (GpioPortA<<16u|GpioPin0 <<8u|GpioAf2)
  598. #define PA01_LPUART1_RXD (GpioPortA<<16u|GpioPin1 <<8u|GpioAf2)
  599. #define PA02_TIM0_CHA (GpioPortA<<16u|GpioPin2 <<8u|GpioAf2)
  600. #define PA03_TIM0_GATE (GpioPortA<<16u|GpioPin3 <<8u|GpioAf2)
  601. #define PA04_UART1_TXD (GpioPortA<<16u|GpioPin4 <<8u|GpioAf2)
  602. #define PA05_TIM0_ETR (GpioPortA<<16u|GpioPin5 <<8u|GpioAf2)
  603. #define PA06_PCA_CH0 (GpioPortA<<16u|GpioPin6 <<8u|GpioAf2)
  604. #define PA07_PCA_CH1 (GpioPortA<<16u|GpioPin7 <<8u|GpioAf2)
  605. #define PA08_TIM3_CH0A (GpioPortA<<16u|GpioPin8 <<8u|GpioAf2)
  606. #define PA09_TIM3_CH1A (GpioPortA<<16u|GpioPin9 <<8u|GpioAf2)
  607. #define PA10_TIM3_CH2A (GpioPortA<<16u|GpioPin10<<8u|GpioAf2)
  608. #define PA11_TIM3_GATE (GpioPortA<<16u|GpioPin11<<8u|GpioAf2)
  609. #define PA12_TIM3_ETR (GpioPortA<<16u|GpioPin12<<8u|GpioAf2)
  610. #define PA13_UART0_RXD (GpioPortA<<16u|GpioPin13<<8u|GpioAf2)
  611. #define PA14_UART0_TXD (GpioPortA<<16u|GpioPin14<<8u|GpioAf2)
  612. #define PA15_UART1_RXD (GpioPortA<<16u|GpioPin15<<8u|GpioAf2)
  613. #define PB00_TIM3_CH1B (GpioPortB<<16u|GpioPin0 <<8u|GpioAf2)
  614. #define PB01_PCLK_OUT (GpioPortB<<16u|GpioPin1 <<8u|GpioAf2)
  615. #define PB02_PCA_ECI (GpioPortB<<16u|GpioPin2 <<8u|GpioAf2)
  616. #define PB03_TIM0_CHB (GpioPortB<<16u|GpioPin3 <<8u|GpioAf2)
  617. #define PB04_PCA_CH0 (GpioPortB<<16u|GpioPin4 <<8u|GpioAf2)
  618. #define PB05_2x (GpioPortB<<16u|GpioPin5 <<8u|GpioAf2)
  619. #define PB06_UART0_TXD (GpioPortB<<16u|GpioPin6 <<8u|GpioAf2)
  620. #define PB07_UART0_RXD (GpioPortB<<16u|GpioPin7 <<8u|GpioAf2)
  621. #define PB08_TIM1_CHA (GpioPortB<<16u|GpioPin8 <<8u|GpioAf2)
  622. #define PB09_IR_OUT (GpioPortB<<16u|GpioPin9 <<8u|GpioAf2)
  623. #define PB10_SPI1_SCK (GpioPortB<<16u|GpioPin10<<8u|GpioAf2)
  624. #define PB11_TIM1_CHB (GpioPortB<<16u|GpioPin11<<8u|GpioAf2)
  625. #define PB12_TIM3_BK (GpioPortB<<16u|GpioPin12<<8u|GpioAf2)
  626. #define PB13_I2C1_SCL (GpioPortB<<16u|GpioPin13<<8u|GpioAf2)
  627. #define PB14_I2C1_SDA (GpioPortB<<16u|GpioPin14<<8u|GpioAf2)
  628. #define PB15_TIM3_CH2B (GpioPortB<<16u|GpioPin15<<8u|GpioAf2)
  629. #define PC00_PCNT_S0 (GpioPortC<<16u|GpioPin0 <<8u|GpioAf2)
  630. #define PC01_TIM5_CHB (GpioPortC<<16u|GpioPin1 <<8u|GpioAf2)
  631. #define PC02_LPTIM_TOGN (GpioPortC<<16u|GpioPin2 <<8u|GpioAf2)
  632. #define PC03_LPTIM_ETR (GpioPortC<<16u|GpioPin3 <<8u|GpioAf2)
  633. #define PC04_TIM2_ETR (GpioPortC<<16u|GpioPin4 <<8u|GpioAf2)
  634. #define PC05_TIM6_CHB (GpioPortC<<16u|GpioPin5 <<8u|GpioAf2)
  635. #define PC06_TIM4_CHA (GpioPortC<<16u|GpioPin6 <<8u|GpioAf2)
  636. #define PC07_TIM5_CHA (GpioPortC<<16u|GpioPin7 <<8u|GpioAf2)
  637. #define PC08_TIM6_CHA (GpioPortC<<16u|GpioPin8 <<8u|GpioAf2)
  638. #define PC09_TIM4_CHB (GpioPortC<<16u|GpioPin9 <<8u|GpioAf2)
  639. #define PC10_LPUART0_TXD (GpioPortC<<16u|GpioPin10<<8u|GpioAf2)
  640. #define PC11_LPUART0_RXD (GpioPortC<<16u|GpioPin11<<8u|GpioAf2)
  641. #define PC12_LPUART1_TXD (GpioPortC<<16u|GpioPin12<<8u|GpioAf2)
  642. #define PC13_RTC_1HZ (GpioPortC<<16u|GpioPin13<<8u|GpioAf2)
  643. #define PC14_2x (GpioPortC<<16u|GpioPin14<<8u|GpioAf2)
  644. #define PC15_2x (GpioPortC<<16u|GpioPin15<<8u|GpioAf2)
  645. #define PD00_SPI1_CS (GpioPortD<<16u|GpioPin0 <<8u|GpioAf2)
  646. #define PD01_SPI1_SCK (GpioPortD<<16u|GpioPin1 <<8u|GpioAf2)
  647. #define PD02_LPUART0_RTS (GpioPortD<<16u|GpioPin2 <<8u|GpioAf2)
  648. #define PD03_SPI1_MISO (GpioPortD<<16u|GpioPin3 <<8u|GpioAf2)
  649. #define PD04_SPI1_MOSI (GpioPortD<<16u|GpioPin4 <<8u|GpioAf2)
  650. #define PD05_LPTIM1_GATE (GpioPortD<<16u|GpioPin5 <<8u|GpioAf2)
  651. #define PD06_LPTIM1_ETR (GpioPortD<<16u|GpioPin6 <<8u|GpioAf2)
  652. #define PD07_2x (GpioPortD<<16u|GpioPin7 <<8u|GpioAf2)
  653. #define PD08_2x (GpioPortD<<16u|GpioPin8 <<8u|GpioAf2)
  654. #define PD09_2x (GpioPortD<<16u|GpioPin9 <<8u|GpioAf2)
  655. #define PD10_2x (GpioPortD<<16u|GpioPin10<<8u|GpioAf2)
  656. #define PD11_2x (GpioPortD<<16u|GpioPin11<<8u|GpioAf2)
  657. #define PD12_UART2_RTS (GpioPortD<<16u|GpioPin12<<8u|GpioAf2)
  658. #define PD13_2x (GpioPortD<<16u|GpioPin13<<8u|GpioAf2)
  659. #define PD14_2x (GpioPortD<<16u|GpioPin14<<8u|GpioAf2)
  660. #define PD15_UART2_CTS (GpioPortD<<16u|GpioPin15<<8u|GpioAf2)
  661. #define PE00_2x (GpioPortE<<16u|GpioPin0 <<8u|GpioAf2)
  662. #define PE01_2x (GpioPortE<<16u|GpioPin1 <<8u|GpioAf2)
  663. #define PE02_2x (GpioPortE<<16u|GpioPin2 <<8u|GpioAf2)
  664. #define PE03_2x (GpioPortE<<16u|GpioPin3 <<8u|GpioAf2)
  665. #define PE04_2x (GpioPortE<<16u|GpioPin4 <<8u|GpioAf2)
  666. #define PE05_2x (GpioPortE<<16u|GpioPin5 <<8u|GpioAf2)
  667. #define PE06_2x (GpioPortE<<16u|GpioPin6 <<8u|GpioAf2)
  668. #define PE07_LPTIM1_GATE (GpioPortE<<16u|GpioPin7 <<8u|GpioAf2)
  669. #define PE08_LPTIM1_ETR (GpioPortE<<16u|GpioPin8 <<8u|GpioAf2)
  670. #define PE09_LPTIM1_TOG (GpioPortE<<16u|GpioPin9 <<8u|GpioAf2)
  671. #define PE10_LPTIM1_TOGN (GpioPortE<<16u|GpioPin10<<8u|GpioAf2)
  672. #define PE11_2x (GpioPortE<<16u|GpioPin11<<8u|GpioAf2)
  673. #define PE12_SPI0_CS (GpioPortE<<16u|GpioPin12<<8u|GpioAf2)
  674. #define PE13_SPI0_SCK (GpioPortE<<16u|GpioPin13<<8u|GpioAf2)
  675. #define PE14_SPI0_MISO (GpioPortE<<16u|GpioPin14<<8u|GpioAf2)
  676. #define PE15_SPI0_MOSI (GpioPortE<<16u|GpioPin15<<8u|GpioAf2)
  677. #define PF00_2x (GpioPortF<<16u|GpioPin0 <<8u|GpioAf2)
  678. #define PF01_TIM4_CHB (GpioPortF<<16u|GpioPin1 <<8u|GpioAf2)
  679. #define PF02_2x (GpioPortF<<16u|GpioPin2 <<8u|GpioAf2)
  680. #define PF03_2x (GpioPortF<<16u|GpioPin3 <<8u|GpioAf2)
  681. #define PF04_2x (GpioPortF<<16u|GpioPin4 <<8u|GpioAf2)
  682. #define PF05_2x (GpioPortF<<16u|GpioPin5 <<8u|GpioAf2)
  683. #define PF06_LPUART1_CTS (GpioPortF<<16u|GpioPin6 <<8u|GpioAf2)
  684. #define PF07_LPUART1_RTS (GpioPortF<<16u|GpioPin7 <<8u|GpioAf2)
  685. #define PF09_2x (GpioPortF<<16u|GpioPin9 <<8u|GpioAf2)
  686. #define PF10_2x (GpioPortF<<16u|GpioPin10<<8u|GpioAf2)
  687. #define PF11_2x (GpioPortF<<16u|GpioPin11<<8u|GpioAf2)
  688. ///< GpioAf3
  689. #define PA00_TIM0_ETR (GpioPortA<<16u|GpioPin0 <<8u|GpioAf3)
  690. #define PA01_TIM0_CHB (GpioPortA<<16u|GpioPin1 <<8u|GpioAf3)
  691. #define PA02_VC1_OUT (GpioPortA<<16u|GpioPin2 <<8u|GpioAf3)
  692. #define PA03_TIM1_CHB (GpioPortA<<16u|GpioPin3 <<8u|GpioAf3)
  693. #define PA04_PCA_CH4 (GpioPortA<<16u|GpioPin4 <<8u|GpioAf3)
  694. #define PA05_PCA_ECI (GpioPortA<<16u|GpioPin5 <<8u|GpioAf3)
  695. #define PA06_TIM3_BK (GpioPortA<<16u|GpioPin6 <<8u|GpioAf3)
  696. #define PA07_HCLK_OUT (GpioPortA<<16u|GpioPin7 <<8u|GpioAf3)
  697. #define PA08_3x (GpioPortA<<16u|GpioPin8 <<8u|GpioAf3)
  698. #define PA09_TIM0_BK (GpioPortA<<16u|GpioPin9 <<8u|GpioAf3)
  699. #define PA10_TIM2_BK (GpioPortA<<16u|GpioPin10<<8u|GpioAf3)
  700. #define PA11_I2C1_SCL (GpioPortA<<16u|GpioPin11<<8u|GpioAf3)
  701. #define PA12_I2C1_SDA (GpioPortA<<16u|GpioPin12<<8u|GpioAf3)
  702. #define PA13_LVD_OUT (GpioPortA<<16u|GpioPin13<<8u|GpioAf3)
  703. #define PA14_TIM3_CH2A (GpioPortA<<16u|GpioPin14<<8u|GpioAf3)
  704. #define PA15_LPUART1_RTS (GpioPortA<<16u|GpioPin15<<8u|GpioAf3)
  705. #define PB00_LPUART0_TXD (GpioPortB<<16u|GpioPin0 <<8u|GpioAf3)
  706. #define PB01_TIM3_CH2B (GpioPortB<<16u|GpioPin1 <<8u|GpioAf3)
  707. #define PB02_LPUART1_TXD (GpioPortB<<16u|GpioPin2 <<8u|GpioAf3)
  708. #define PB03_TIM1_GATE (GpioPortB<<16u|GpioPin3 <<8u|GpioAf3)
  709. #define PB04_TIM2_BK (GpioPortB<<16u|GpioPin4 <<8u|GpioAf3)
  710. #define PB05_TIM1_BK (GpioPortB<<16u|GpioPin5 <<8u|GpioAf3)
  711. #define PB06_TIM1_CHB (GpioPortB<<16u|GpioPin6 <<8u|GpioAf3)
  712. #define PB07_TIM2_CHB (GpioPortB<<16u|GpioPin7 <<8u|GpioAf3)
  713. #define PB08_3x (GpioPortB<<16u|GpioPin8 <<8u|GpioAf3)
  714. #define PB09_SPI1_CS (GpioPortB<<16u|GpioPin9 <<8u|GpioAf3)
  715. #define PB10_TIM1_CHA (GpioPortB<<16u|GpioPin10<<8u|GpioAf3)
  716. #define PB11_LPUART0_RXD (GpioPortB<<16u|GpioPin11<<8u|GpioAf3)
  717. #define PB12_LPUART0_TXD (GpioPortB<<16u|GpioPin12<<8u|GpioAf3)
  718. #define PB13_TIM3_CH0B (GpioPortB<<16u|GpioPin13<<8u|GpioAf3)
  719. #define PB14_TIM3_CH1B (GpioPortB<<16u|GpioPin14<<8u|GpioAf3)
  720. #define PB15_TIM0_CHB (GpioPortB<<16u|GpioPin15<<8u|GpioAf3)
  721. #define PC00_UART1_CTS (GpioPortC<<16u|GpioPin0 <<8u|GpioAf3)
  722. #define PC01_UART1_RTS (GpioPortC<<16u|GpioPin1 <<8u|GpioAf3)
  723. #define PC02_PCNT_S1 (GpioPortC<<16u|GpioPin2 <<8u|GpioAf3)
  724. #define PC03_LPTIM_TOGN (GpioPortC<<16u|GpioPin3 <<8u|GpioAf3)
  725. #define PC04_IR_OUT (GpioPortC<<16u|GpioPin4 <<8u|GpioAf3)
  726. #define PC05_PCA_CH4 (GpioPortC<<16u|GpioPin5 <<8u|GpioAf3)
  727. #define PC06_TIM2_CHA (GpioPortC<<16u|GpioPin6 <<8u|GpioAf3)
  728. #define PC07_TIM2_CHB (GpioPortC<<16u|GpioPin7 <<8u|GpioAf3)
  729. #define PC08_TIM2_ETR (GpioPortC<<16u|GpioPin8 <<8u|GpioAf3)
  730. #define PC09_TIM1_ETR (GpioPortC<<16u|GpioPin9 <<8u|GpioAf3)
  731. #define PC10_PCA_CH2 (GpioPortC<<16u|GpioPin10<<8u|GpioAf3)
  732. #define PC11_PCA_CH3 (GpioPortC<<16u|GpioPin11<<8u|GpioAf3)
  733. #define PC12_PCA_CH4 (GpioPortC<<16u|GpioPin12<<8u|GpioAf3)
  734. #define PC13_TIM3_CH1B (GpioPortC<<16u|GpioPin13<<8u|GpioAf3)
  735. #define PC14_3x (GpioPortC<<16u|GpioPin14<<8u|GpioAf3)
  736. #define PC15_3x (GpioPortC<<16u|GpioPin15<<8u|GpioAf3)
  737. #define PD00_3x (GpioPortD<<16u|GpioPin0 <<8u|GpioAf3)
  738. #define PD01_3x (GpioPortD<<16u|GpioPin1 <<8u|GpioAf3)
  739. #define PD02_TIM1_ETR (GpioPortD<<16u|GpioPin2 <<8u|GpioAf3)
  740. #define PD03_LPTIM1_TOG (GpioPortD<<16u|GpioPin3 <<8u|GpioAf3)
  741. #define PD04_LPTIM1_TOGN (GpioPortD<<16u|GpioPin4 <<8u|GpioAf3)
  742. #define PD05_3x (GpioPortD<<16u|GpioPin5 <<8u|GpioAf3)
  743. #define PD06_3x (GpioPortD<<16u|GpioPin6 <<8u|GpioAf3)
  744. #define PD07_3x (GpioPortD<<16u|GpioPin7 <<8u|GpioAf3)
  745. #define PD08_3x (GpioPortD<<16u|GpioPin8 <<8u|GpioAf3)
  746. #define PD09_3x (GpioPortD<<16u|GpioPin9 <<8u|GpioAf3)
  747. #define PD10_3x (GpioPortD<<16u|GpioPin10<<8u|GpioAf3)
  748. #define PD11_3x (GpioPortD<<16u|GpioPin11<<8u|GpioAf3)
  749. #define PD12_3x (GpioPortD<<16u|GpioPin12<<8u|GpioAf3)
  750. #define PD13_3x (GpioPortD<<16u|GpioPin13<<8u|GpioAf3)
  751. #define PD14_3x (GpioPortD<<16u|GpioPin14<<8u|GpioAf3)
  752. #define PD15_3x (GpioPortD<<16u|GpioPin15<<8u|GpioAf3)
  753. #define PE00_3x (GpioPortE<<16u|GpioPin0 <<8u|GpioAf3)
  754. #define PE01_3x (GpioPortE<<16u|GpioPin1 <<8u|GpioAf3)
  755. #define PE02_3x (GpioPortE<<16u|GpioPin2 <<8u|GpioAf3)
  756. #define PE03_3x (GpioPortE<<16u|GpioPin3 <<8u|GpioAf3)
  757. #define PE04_3x (GpioPortE<<16u|GpioPin4 <<8u|GpioAf3)
  758. #define PE05_3x (GpioPortE<<16u|GpioPin5 <<8u|GpioAf3)
  759. #define PE06_3x (GpioPortE<<16u|GpioPin6 <<8u|GpioAf3)
  760. #define PE07_3x (GpioPortE<<16u|GpioPin7 <<8u|GpioAf3)
  761. #define PE08_3x (GpioPortE<<16u|GpioPin8 <<8u|GpioAf3)
  762. #define PE09_3x (GpioPortE<<16u|GpioPin9 <<8u|GpioAf3)
  763. #define PE10_3x (GpioPortE<<16u|GpioPin10<<8u|GpioAf3)
  764. #define PE11_3x (GpioPortE<<16u|GpioPin11<<8u|GpioAf3)
  765. #define PE12_UART3_CTS (GpioPortE<<16u|GpioPin12<<8u|GpioAf3)
  766. #define PE13_UART3_RTS (GpioPortE<<16u|GpioPin13<<8u|GpioAf3)
  767. #define PE14_UART3_RXD (GpioPortE<<16u|GpioPin14<<8u|GpioAf3)
  768. #define PE15_UART3_TXD (GpioPortE<<16u|GpioPin15<<8u|GpioAf3)
  769. #define PF00_UART1_TXD (GpioPortF<<16u|GpioPin0 <<8u|GpioAf3)
  770. #define PF01_UART1_RXD (GpioPortF<<16u|GpioPin1 <<8u|GpioAf3)
  771. #define PF02_3x (GpioPortF<<16u|GpioPin2 <<8u|GpioAf3)
  772. #define PF03_3x (GpioPortF<<16u|GpioPin3 <<8u|GpioAf3)
  773. #define PF04_3x (GpioPortF<<16u|GpioPin4 <<8u|GpioAf3)
  774. #define PF05_3x (GpioPortF<<16u|GpioPin5 <<8u|GpioAf3)
  775. #define PF06_UART0_CTS (GpioPortF<<16u|GpioPin6 <<8u|GpioAf3)
  776. #define PF07_UART0_RTS (GpioPortF<<16u|GpioPin7 <<8u|GpioAf3)
  777. #define PF09_3x (GpioPortF<<16u|GpioPin9 <<8u|GpioAf3)
  778. #define PF10_3x (GpioPortF<<16u|GpioPin10<<8u|GpioAf3)
  779. #define PF11_3x (GpioPortF<<16u|GpioPin11<<8u|GpioAf3)
  780. ///< GpioAf4
  781. #define PA00_VC0_OUT (GpioPortA<<16u|GpioPin0 <<8u|GpioAf4)
  782. #define PA01_TIM1_ETR (GpioPortA<<16u|GpioPin1 <<8u|GpioAf4)
  783. #define PA02_TIM1_CHA (GpioPortA<<16u|GpioPin2 <<8u|GpioAf4)
  784. #define PA03_TIM2_CHB (GpioPortA<<16u|GpioPin3 <<8u|GpioAf4)
  785. #define PA04_TIM2_ETR (GpioPortA<<16u|GpioPin4 <<8u|GpioAf4)
  786. #define PA05_TIM0_CHA (GpioPortA<<16u|GpioPin5 <<8u|GpioAf4)
  787. #define PA06_TIM1_CHA (GpioPortA<<16u|GpioPin6 <<8u|GpioAf4)
  788. #define PA07_TIM3_CH0B (GpioPortA<<16u|GpioPin7 <<8u|GpioAf4)
  789. #define PA08_4x (GpioPortA<<16u|GpioPin8 <<8u|GpioAf4)
  790. #define PA09_I2C0_SCL (GpioPortA<<16u|GpioPin9 <<8u|GpioAf4)
  791. #define PA10_I2C0_SDA (GpioPortA<<16u|GpioPin10<<8u|GpioAf4)
  792. #define PA11_4x (GpioPortA<<16u|GpioPin11<<8u|GpioAf4)
  793. #define PA12_4x (GpioPortA<<16u|GpioPin12<<8u|GpioAf4)
  794. #define PA13_TIM3_ETR (GpioPortA<<16u|GpioPin13<<8u|GpioAf4)
  795. #define PA14_LVD_OUT (GpioPortA<<16u|GpioPin14<<8u|GpioAf4)
  796. #define PA15_TIM0_ETR (GpioPortA<<16u|GpioPin15<<8u|GpioAf4)
  797. #define PB00_TIM5_CHB (GpioPortB<<16u|GpioPin0 <<8u|GpioAf4)
  798. #define PB01_TIM6_CHB (GpioPortB<<16u|GpioPin1 <<8u|GpioAf4)
  799. #define PB02_TIM4_CHA (GpioPortB<<16u|GpioPin2 <<8u|GpioAf4)
  800. #define PB03_TIM3_CH0A (GpioPortB<<16u|GpioPin3 <<8u|GpioAf4)
  801. #define PB04_UART0_CTS (GpioPortB<<16u|GpioPin4 <<8u|GpioAf4)
  802. #define PB05_PCA_CH1 (GpioPortB<<16u|GpioPin5 <<8u|GpioAf4)
  803. #define PB06_TIM0_CHA (GpioPortB<<16u|GpioPin6 <<8u|GpioAf4)
  804. #define PB07_LPUART1_CTS (GpioPortB<<16u|GpioPin7 <<8u|GpioAf4)
  805. #define PB08_TIM2_CHA (GpioPortB<<16u|GpioPin8 <<8u|GpioAf4)
  806. #define PB09_TIM2_CHA (GpioPortB<<16u|GpioPin9 <<8u|GpioAf4)
  807. #define PB10_LPUART0_TXD (GpioPortB<<16u|GpioPin10<<8u|GpioAf4)
  808. #define PB11_TIM2_GATE (GpioPortB<<16u|GpioPin11<<8u|GpioAf4)
  809. #define PB12_TIM0_BK (GpioPortB<<16u|GpioPin12<<8u|GpioAf4)
  810. #define PB13_LPUART0_CTS (GpioPortB<<16u|GpioPin13<<8u|GpioAf4)
  811. #define PB14_TIM0_CHA (GpioPortB<<16u|GpioPin14<<8u|GpioAf4)
  812. #define PB15_TIM0_GATE (GpioPortB<<16u|GpioPin15<<8u|GpioAf4)
  813. #define PC00_UART2_RTS (GpioPortC<<16u|GpioPin0 <<8u|GpioAf4)
  814. #define PC01_PCNT_S0FO (GpioPortC<<16u|GpioPin1 <<8u|GpioAf4)
  815. #define PC02_UART2_RXD (GpioPortC<<16u|GpioPin2 <<8u|GpioAf4)
  816. #define PC03_PCNT_S1FO (GpioPortC<<16u|GpioPin3 <<8u|GpioAf4)
  817. #define PC04_VC2_OUT (GpioPortC<<16u|GpioPin4 <<8u|GpioAf4)
  818. #define PC05_4x (GpioPortC<<16u|GpioPin5 <<8u|GpioAf4)
  819. #define PC06_LPTIM1_GATE (GpioPortC<<16u|GpioPin6 <<8u|GpioAf4)
  820. #define PC07_LPTIM1_ETR (GpioPortC<<16u|GpioPin7 <<8u|GpioAf4)
  821. #define PC08_LPTIM1_TOG (GpioPortC<<16u|GpioPin8 <<8u|GpioAf4)
  822. #define PC09_LPTIM1_TOGN (GpioPortC<<16u|GpioPin9 <<8u|GpioAf4)
  823. #define PC10_4x (GpioPortC<<16u|GpioPin10<<8u|GpioAf4)
  824. #define PC11_PCNT_S0FO (GpioPortC<<16u|GpioPin11<<8u|GpioAf4)
  825. #define PC12_PCNT_S1FO (GpioPortC<<16u|GpioPin12<<8u|GpioAf4)
  826. #define PC13_4x (GpioPortC<<16u|GpioPin13<<8u|GpioAf4)
  827. #define PC14_4x (GpioPortC<<16u|GpioPin14<<8u|GpioAf4)
  828. #define PC15_4x (GpioPortC<<16u|GpioPin15<<8u|GpioAf4)
  829. #define PD00_4x (GpioPortD<<16u|GpioPin0 <<8u|GpioAf4)
  830. #define PD01_4x (GpioPortD<<16u|GpioPin1 <<8u|GpioAf4)
  831. #define PD02_4x (GpioPortD<<16u|GpioPin2 <<8u|GpioAf4)
  832. #define PD03_4x (GpioPortD<<16u|GpioPin3 <<8u|GpioAf4)
  833. #define PD04_4x (GpioPortD<<16u|GpioPin4 <<8u|GpioAf4)
  834. #define PD05_4x (GpioPortD<<16u|GpioPin5 <<8u|GpioAf4)
  835. #define PD06_4x (GpioPortD<<16u|GpioPin6 <<8u|GpioAf4)
  836. #define PD07_4x (GpioPortD<<16u|GpioPin7 <<8u|GpioAf4)
  837. #define PD08_4x (GpioPortD<<16u|GpioPin8 <<8u|GpioAf4)
  838. #define PD09_4x (GpioPortD<<16u|GpioPin9 <<8u|GpioAf4)
  839. #define PD10_4x (GpioPortD<<16u|GpioPin10<<8u|GpioAf4)
  840. #define PD11_4x (GpioPortD<<16u|GpioPin11<<8u|GpioAf4)
  841. #define PD12_4x (GpioPortD<<16u|GpioPin12<<8u|GpioAf4)
  842. #define PD13_4x (GpioPortD<<16u|GpioPin13<<8u|GpioAf4)
  843. #define PD14_4x (GpioPortD<<16u|GpioPin14<<8u|GpioAf4)
  844. #define PD15_4x (GpioPortD<<16u|GpioPin15<<8u|GpioAf4)
  845. #define PE00_4x (GpioPortE<<16u|GpioPin0 <<8u|GpioAf4)
  846. #define PE01_4x (GpioPortE<<16u|GpioPin1 <<8u|GpioAf4)
  847. #define PE02_4x (GpioPortE<<16u|GpioPin2 <<8u|GpioAf4)
  848. #define PE03_4x (GpioPortE<<16u|GpioPin3 <<8u|GpioAf4)
  849. #define PE04_4x (GpioPortE<<16u|GpioPin4 <<8u|GpioAf4)
  850. #define PE05_4x (GpioPortE<<16u|GpioPin5 <<8u|GpioAf4)
  851. #define PE06_4x (GpioPortE<<16u|GpioPin6 <<8u|GpioAf4)
  852. #define PE07_4x (GpioPortE<<16u|GpioPin7 <<8u|GpioAf4)
  853. #define PE08_4x (GpioPortE<<16u|GpioPin8 <<8u|GpioAf4)
  854. #define PE09_4x (GpioPortE<<16u|GpioPin9 <<8u|GpioAf4)
  855. #define PE10_4x (GpioPortE<<16u|GpioPin10<<8u|GpioAf4)
  856. #define PE11_4x (GpioPortE<<16u|GpioPin11<<8u|GpioAf4)
  857. #define PE12_4x (GpioPortE<<16u|GpioPin12<<8u|GpioAf4)
  858. #define PE13_4x (GpioPortE<<16u|GpioPin13<<8u|GpioAf4)
  859. #define PE14_4x (GpioPortE<<16u|GpioPin14<<8u|GpioAf4)
  860. #define PE15_4x (GpioPortE<<16u|GpioPin15<<8u|GpioAf4)
  861. #define PF00_4x (GpioPortF<<16u|GpioPin0 <<8u|GpioAf4)
  862. #define PF01_4x (GpioPortF<<16u|GpioPin1 <<8u|GpioAf4)
  863. #define PF02_4x (GpioPortF<<16u|GpioPin2 <<8u|GpioAf4)
  864. #define PF03_4x (GpioPortF<<16u|GpioPin3 <<8u|GpioAf4)
  865. #define PF04_4x (GpioPortF<<16u|GpioPin4 <<8u|GpioAf4)
  866. #define PF05_4x (GpioPortF<<16u|GpioPin5 <<8u|GpioAf4)
  867. #define PF06_4x (GpioPortF<<16u|GpioPin6 <<8u|GpioAf4)
  868. #define PF07_4x (GpioPortF<<16u|GpioPin7 <<8u|GpioAf4)
  869. #define PF09_4x (GpioPortF<<16u|GpioPin9 <<8u|GpioAf4)
  870. #define PF10_4x (GpioPortF<<16u|GpioPin10<<8u|GpioAf4)
  871. #define PF11_4x (GpioPortF<<16u|GpioPin11<<8u|GpioAf4)
  872. ///< GpioAf5
  873. #define PA00_TIM1_CHA (GpioPortA<<16u|GpioPin0 <<8u|GpioAf5)
  874. #define PA01_TIM1_CHB (GpioPortA<<16u|GpioPin1 <<8u|GpioAf5)
  875. #define PA02_TIM2_CHA (GpioPortA<<16u|GpioPin2 <<8u|GpioAf5)
  876. #define PA03_SPI1_CS (GpioPortA<<16u|GpioPin3 <<8u|GpioAf5)
  877. #define PA04_TIM5_CHA (GpioPortA<<16u|GpioPin4 <<8u|GpioAf5)
  878. #define PA05_TIM5_CHB (GpioPortA<<16u|GpioPin5 <<8u|GpioAf5)
  879. #define PA06_VC0_OUT (GpioPortA<<16u|GpioPin6 <<8u|GpioAf5)
  880. #define PA07_TIM2_CHA (GpioPortA<<16u|GpioPin7 <<8u|GpioAf5)
  881. #define PA08_TIM1_GATE (GpioPortA<<16u|GpioPin8 <<8u|GpioAf5)
  882. #define PA09_5x (GpioPortA<<16u|GpioPin9 <<8u|GpioAf5)
  883. #define PA10_TIM2_GATE (GpioPortA<<16u|GpioPin10<<8u|GpioAf5)
  884. #define PA11_VC0_OUT (GpioPortA<<16u|GpioPin11<<8u|GpioAf5)
  885. #define PA12_VC1_OUT (GpioPortA<<16u|GpioPin12<<8u|GpioAf5)
  886. #define PA13_RTC_1HZ (GpioPortA<<16u|GpioPin13<<8u|GpioAf5)
  887. #define PA14_RCH_OUT (GpioPortA<<16u|GpioPin14<<8u|GpioAf5)
  888. #define PA15_TIM0_CHA (GpioPortA<<16u|GpioPin15<<8u|GpioAf5)
  889. #define PB00_RCH_OUT (GpioPortB<<16u|GpioPin0 <<8u|GpioAf5)
  890. #define PB01_LPUART0_RTS (GpioPortB<<16u|GpioPin1 <<8u|GpioAf5)
  891. #define PB02_TIM1_BK (GpioPortB<<16u|GpioPin2 <<8u|GpioAf5)
  892. #define PB03_LPTIM_GATE (GpioPortB<<16u|GpioPin3 <<8u|GpioAf5)
  893. #define PB04_TIM2_GATE (GpioPortB<<16u|GpioPin4 <<8u|GpioAf5)
  894. #define PB05_LPTIM_GATE (GpioPortB<<16u|GpioPin5 <<8u|GpioAf5)
  895. #define PB06_LPTIM_ETR (GpioPortB<<16u|GpioPin6 <<8u|GpioAf5)
  896. #define PB07_TIM0_CHB (GpioPortB<<16u|GpioPin7 <<8u|GpioAf5)
  897. #define PB08_TIM0_GATE (GpioPortB<<16u|GpioPin8 <<8u|GpioAf5)
  898. #define PB09_5x (GpioPortB<<16u|GpioPin9 <<8u|GpioAf5)
  899. #define PB10_TIM3_CH1A (GpioPortB<<16u|GpioPin10<<8u|GpioAf5)
  900. #define PB11_TIM6_CHA (GpioPortB<<16u|GpioPin11<<8u|GpioAf5)
  901. #define PB12_5x (GpioPortB<<16u|GpioPin12<<8u|GpioAf5)
  902. #define PB13_TIM1_CHA (GpioPortB<<16u|GpioPin13<<8u|GpioAf5)
  903. #define PB14_RTC_1HZ (GpioPortB<<16u|GpioPin14<<8u|GpioAf5)
  904. #define PB15_5x (GpioPortB<<16u|GpioPin15<<8u|GpioAf5)
  905. #define PC00_5x (GpioPortC<<16u|GpioPin0 <<8u|GpioAf5)
  906. #define PC01_5x (GpioPortC<<16u|GpioPin1 <<8u|GpioAf5)
  907. #define PC02_5x (GpioPortC<<16u|GpioPin2 <<8u|GpioAf5)
  908. #define PC03_UART2_TXD (GpioPortC<<16u|GpioPin3 <<8u|GpioAf5)
  909. #define PC04_5x (GpioPortC<<16u|GpioPin4 <<8u|GpioAf5)
  910. #define PC05_5x (GpioPortC<<16u|GpioPin5 <<8u|GpioAf5)
  911. #define PC06_5x (GpioPortC<<16u|GpioPin6 <<8u|GpioAf5)
  912. #define PC07_5x (GpioPortC<<16u|GpioPin7 <<8u|GpioAf5)
  913. #define PC08_5x (GpioPortC<<16u|GpioPin8 <<8u|GpioAf5)
  914. #define PC09_5x (GpioPortC<<16u|GpioPin9 <<8u|GpioAf5)
  915. #define PC10_5x (GpioPortC<<16u|GpioPin10<<8u|GpioAf5)
  916. #define PC11_5x (GpioPortC<<16u|GpioPin11<<8u|GpioAf5)
  917. #define PC12_5x (GpioPortC<<16u|GpioPin12<<8u|GpioAf5)
  918. #define PC13_5x (GpioPortC<<16u|GpioPin13<<8u|GpioAf5)
  919. #define PC14_5x (GpioPortC<<16u|GpioPin14<<8u|GpioAf5)
  920. #define PC15_5x (GpioPortC<<16u|GpioPin15<<8u|GpioAf5)
  921. #define PD00_5x (GpioPortD<<16u|GpioPin0 <<8u|GpioAf5)
  922. #define PD01_5x (GpioPortD<<16u|GpioPin1 <<8u|GpioAf5)
  923. #define PD02_5x (GpioPortD<<16u|GpioPin2 <<8u|GpioAf5)
  924. #define PD03_5x (GpioPortD<<16u|GpioPin3 <<8u|GpioAf5)
  925. #define PD04_5x (GpioPortD<<16u|GpioPin4 <<8u|GpioAf5)
  926. #define PD05_5x (GpioPortD<<16u|GpioPin5 <<8u|GpioAf5)
  927. #define PD06_5x (GpioPortD<<16u|GpioPin6 <<8u|GpioAf5)
  928. #define PD07_5x (GpioPortD<<16u|GpioPin7 <<8u|GpioAf5)
  929. #define PD08_5x (GpioPortD<<16u|GpioPin8 <<8u|GpioAf5)
  930. #define PD09_5x (GpioPortD<<16u|GpioPin9 <<8u|GpioAf5)
  931. #define PD10_5x (GpioPortD<<16u|GpioPin10<<8u|GpioAf5)
  932. #define PD11_5x (GpioPortD<<16u|GpioPin11<<8u|GpioAf5)
  933. #define PD12_5x (GpioPortD<<16u|GpioPin12<<8u|GpioAf5)
  934. #define PD13_5x (GpioPortD<<16u|GpioPin13<<8u|GpioAf5)
  935. #define PD14_5x (GpioPortD<<16u|GpioPin14<<8u|GpioAf5)
  936. #define PD15_5x (GpioPortD<<16u|GpioPin15<<8u|GpioAf5)
  937. #define PE00_5x (GpioPortE<<16u|GpioPin0 <<8u|GpioAf5)
  938. #define PE01_5x (GpioPortE<<16u|GpioPin1 <<8u|GpioAf5)
  939. #define PE02_5x (GpioPortE<<16u|GpioPin2 <<8u|GpioAf5)
  940. #define PE03_5x (GpioPortE<<16u|GpioPin3 <<8u|GpioAf5)
  941. #define PE04_5x (GpioPortE<<16u|GpioPin4 <<8u|GpioAf5)
  942. #define PE05_5x (GpioPortE<<16u|GpioPin5 <<8u|GpioAf5)
  943. #define PE06_5x (GpioPortE<<16u|GpioPin6 <<8u|GpioAf5)
  944. #define PE07_5x (GpioPortE<<16u|GpioPin7 <<8u|GpioAf5)
  945. #define PE08_5x (GpioPortE<<16u|GpioPin8 <<8u|GpioAf5)
  946. #define PE09_5x (GpioPortE<<16u|GpioPin9 <<8u|GpioAf5)
  947. #define PE10_5x (GpioPortE<<16u|GpioPin10<<8u|GpioAf5)
  948. #define PE11_5x (GpioPortE<<16u|GpioPin11<<8u|GpioAf5)
  949. #define PE12_5x (GpioPortE<<16u|GpioPin12<<8u|GpioAf5)
  950. #define PE13_5x (GpioPortE<<16u|GpioPin13<<8u|GpioAf5)
  951. #define PE14_5x (GpioPortE<<16u|GpioPin14<<8u|GpioAf5)
  952. #define PE15_5x (GpioPortE<<16u|GpioPin15<<8u|GpioAf5)
  953. #define PF00_5x (GpioPortF<<16u|GpioPin0 <<8u|GpioAf5)
  954. #define PF01_5x (GpioPortF<<16u|GpioPin1 <<8u|GpioAf5)
  955. #define PF02_5x (GpioPortF<<16u|GpioPin2 <<8u|GpioAf5)
  956. #define PF03_5x (GpioPortF<<16u|GpioPin3 <<8u|GpioAf5)
  957. #define PF04_5x (GpioPortF<<16u|GpioPin4 <<8u|GpioAf5)
  958. #define PF05_5x (GpioPortF<<16u|GpioPin5 <<8u|GpioAf5)
  959. #define PF06_5x (GpioPortF<<16u|GpioPin6 <<8u|GpioAf5)
  960. #define PF07_5x (GpioPortF<<16u|GpioPin7 <<8u|GpioAf5)
  961. #define PF09_5x (GpioPortF<<16u|GpioPin9 <<8u|GpioAf5)
  962. #define PF10_5x (GpioPortF<<16u|GpioPin10<<8u|GpioAf5)
  963. #define PF11_5x (GpioPortF<<16u|GpioPin11<<8u|GpioAf5)
  964. ///< GpioAf6
  965. #define PA00_TIM3_ETR (GpioPortA<<16u|GpioPin0 <<8u|GpioAf6)
  966. #define PA01_HCLK_OUT (GpioPortA<<16u|GpioPin1 <<8u|GpioAf6)
  967. #define PA02_PCLK_OUT (GpioPortA<<16u|GpioPin2 <<8u|GpioAf6)
  968. #define PA03_TIM3_CH1A (GpioPortA<<16u|GpioPin3 <<8u|GpioAf6)
  969. #define PA04_LVD_OUT (GpioPortA<<16u|GpioPin4 <<8u|GpioAf6)
  970. #define PA05_XTL_OUT (GpioPortA<<16u|GpioPin5 <<8u|GpioAf6)
  971. #define PA06_TIM3_GATE (GpioPortA<<16u|GpioPin6 <<8u|GpioAf6)
  972. #define PA07_VC1_OUT (GpioPortA<<16u|GpioPin7 <<8u|GpioAf6)
  973. #define PA08_TIM4_CHA (GpioPortA<<16u|GpioPin8 <<8u|GpioAf6)
  974. #define PA09_HCLK_OUT (GpioPortA<<16u|GpioPin9 <<8u|GpioAf6)
  975. #define PA10_PCLK_OUT (GpioPortA<<16u|GpioPin10<<8u|GpioAf6)
  976. #define PA11_SPI0_MISO (GpioPortA<<16u|GpioPin11<<8u|GpioAf6)
  977. #define PA12_SPI0_MOSI (GpioPortA<<16u|GpioPin12<<8u|GpioAf6)
  978. #define PA13_PCNT_S1 (GpioPortA<<16u|GpioPin13<<8u|GpioAf6)
  979. #define PA14_RCL_OUT (GpioPortA<<16u|GpioPin14<<8u|GpioAf6)
  980. #define PA15_TIM3_CH1A (GpioPortA<<16u|GpioPin15<<8u|GpioAf6)
  981. #define PB00_RCL_OUT (GpioPortB<<16u|GpioPin0 <<8u|GpioAf6)
  982. #define PB01_VC2_OUT (GpioPortB<<16u|GpioPin1 <<8u|GpioAf6)
  983. #define PB02_TIM0_BK (GpioPortB<<16u|GpioPin2 <<8u|GpioAf6)
  984. #define PB03_XTL_OUT (GpioPortB<<16u|GpioPin3 <<8u|GpioAf6)
  985. #define PB04_TIM3_CH0B (GpioPortB<<16u|GpioPin4 <<8u|GpioAf6)
  986. #define PB05_PCNT_S0 (GpioPortB<<16u|GpioPin5 <<8u|GpioAf6)
  987. #define PB06_TIM3_CH0A (GpioPortB<<16u|GpioPin6 <<8u|GpioAf6)
  988. #define PB07_LPTIM_TOGN (GpioPortB<<16u|GpioPin7 <<8u|GpioAf6)
  989. #define PB08_TIM3_CH2A (GpioPortB<<16u|GpioPin8 <<8u|GpioAf6)
  990. #define PB09_TIM2_CHB (GpioPortB<<16u|GpioPin9 <<8u|GpioAf6)
  991. #define PB10_LPUART1_RTS (GpioPortB<<16u|GpioPin10<<8u|GpioAf6)
  992. #define PB11_LPUART1_CTS (GpioPortB<<16u|GpioPin11<<8u|GpioAf6)
  993. #define PB12_LPUART0_RTS (GpioPortB<<16u|GpioPin12<<8u|GpioAf6)
  994. #define PB13_TIM1_GATE (GpioPortB<<16u|GpioPin13<<8u|GpioAf6)
  995. #define PB14_LPUART0_RTS (GpioPortB<<16u|GpioPin14<<8u|GpioAf6)
  996. #define PB15_6x (GpioPortB<<16u|GpioPin15<<8u|GpioAf6)
  997. #define PC00_6x (GpioPortC<<16u|GpioPin0 <<8u|GpioAf6)
  998. #define PC01_UART2_CTS (GpioPortC<<16u|GpioPin1 <<8u|GpioAf6)
  999. #define PC02_6x (GpioPortC<<16u|GpioPin2 <<8u|GpioAf6)
  1000. #define PC03_6x (GpioPortC<<16u|GpioPin3 <<8u|GpioAf6)
  1001. #define PC04_6x (GpioPortC<<16u|GpioPin4 <<8u|GpioAf6)
  1002. #define PC05_6x (GpioPortC<<16u|GpioPin5 <<8u|GpioAf6)
  1003. #define PC06_UART3_RXD (GpioPortC<<16u|GpioPin6 <<8u|GpioAf6)
  1004. #define PC07_UART3_TXD (GpioPortC<<16u|GpioPin7 <<8u|GpioAf6)
  1005. #define PC08_UART3_CTS (GpioPortC<<16u|GpioPin8 <<8u|GpioAf6)
  1006. #define PC09_UART3_RTS (GpioPortC<<16u|GpioPin9 <<8u|GpioAf6)
  1007. #define PC10_6x (GpioPortC<<16u|GpioPin10<<8u|GpioAf6)
  1008. #define PC11_6x (GpioPortC<<16u|GpioPin11<<8u|GpioAf6)
  1009. #define PC12_6x (GpioPortC<<16u|GpioPin12<<8u|GpioAf6)
  1010. #define PC13_6x (GpioPortC<<16u|GpioPin13<<8u|GpioAf6)
  1011. #define PC14_6x (GpioPortC<<16u|GpioPin14<<8u|GpioAf6)
  1012. #define PC15_6x (GpioPortC<<16u|GpioPin15<<8u|GpioAf6)
  1013. #define PD00_6x (GpioPortD<<16u|GpioPin0 <<8u|GpioAf6)
  1014. #define PD01_6x (GpioPortD<<16u|GpioPin1 <<8u|GpioAf6)
  1015. #define PD02_6x (GpioPortD<<16u|GpioPin2 <<8u|GpioAf6)
  1016. #define PD03_6x (GpioPortD<<16u|GpioPin3 <<8u|GpioAf6)
  1017. #define PD04_6x (GpioPortD<<16u|GpioPin4 <<8u|GpioAf6)
  1018. #define PD05_6x (GpioPortD<<16u|GpioPin5 <<8u|GpioAf6)
  1019. #define PD06_6x (GpioPortD<<16u|GpioPin6 <<8u|GpioAf6)
  1020. #define PD07_6x (GpioPortD<<16u|GpioPin7 <<8u|GpioAf6)
  1021. #define PD08_6x (GpioPortD<<16u|GpioPin8 <<8u|GpioAf6)
  1022. #define PD09_6x (GpioPortD<<16u|GpioPin9 <<8u|GpioAf6)
  1023. #define PD10_6x (GpioPortD<<16u|GpioPin10<<8u|GpioAf6)
  1024. #define PD11_6x (GpioPortD<<16u|GpioPin11<<8u|GpioAf6)
  1025. #define PD12_6x (GpioPortD<<16u|GpioPin12<<8u|GpioAf6)
  1026. #define PD13_6x (GpioPortD<<16u|GpioPin13<<8u|GpioAf6)
  1027. #define PD14_6x (GpioPortD<<16u|GpioPin14<<8u|GpioAf6)
  1028. #define PD15_6x (GpioPortD<<16u|GpioPin15<<8u|GpioAf6)
  1029. #define PE00_6x (GpioPortE<<16u|GpioPin0 <<8u|GpioAf6)
  1030. #define PE01_6x (GpioPortE<<16u|GpioPin1 <<8u|GpioAf6)
  1031. #define PE02_6x (GpioPortE<<16u|GpioPin2 <<8u|GpioAf6)
  1032. #define PE03_6x (GpioPortE<<16u|GpioPin3 <<8u|GpioAf6)
  1033. #define PE04_6x (GpioPortE<<16u|GpioPin4 <<8u|GpioAf6)
  1034. #define PE05_6x (GpioPortE<<16u|GpioPin5 <<8u|GpioAf6)
  1035. #define PE06_6x (GpioPortE<<16u|GpioPin6 <<8u|GpioAf6)
  1036. #define PE07_6x (GpioPortE<<16u|GpioPin7 <<8u|GpioAf6)
  1037. #define PE08_6x (GpioPortE<<16u|GpioPin8 <<8u|GpioAf6)
  1038. #define PE09_6x (GpioPortE<<16u|GpioPin9 <<8u|GpioAf6)
  1039. #define PE10_6x (GpioPortE<<16u|GpioPin10<<8u|GpioAf6)
  1040. #define PE11_6x (GpioPortE<<16u|GpioPin11<<8u|GpioAf6)
  1041. #define PE12_6x (GpioPortE<<16u|GpioPin12<<8u|GpioAf6)
  1042. #define PE13_6x (GpioPortE<<16u|GpioPin13<<8u|GpioAf6)
  1043. #define PE14_6x (GpioPortE<<16u|GpioPin14<<8u|GpioAf6)
  1044. #define PE15_6x (GpioPortE<<16u|GpioPin15<<8u|GpioAf6)
  1045. #define PF00_6x (GpioPortF<<16u|GpioPin0 <<8u|GpioAf6)
  1046. #define PF01_6x (GpioPortF<<16u|GpioPin1 <<8u|GpioAf6)
  1047. #define PF02_6x (GpioPortF<<16u|GpioPin2 <<8u|GpioAf6)
  1048. #define PF03_6x (GpioPortF<<16u|GpioPin3 <<8u|GpioAf6)
  1049. #define PF04_6x (GpioPortF<<16u|GpioPin4 <<8u|GpioAf6)
  1050. #define PF05_6x (GpioPortF<<16u|GpioPin5 <<8u|GpioAf6)
  1051. #define PF06_6x (GpioPortF<<16u|GpioPin6 <<8u|GpioAf6)
  1052. #define PF07_6x (GpioPortF<<16u|GpioPin7 <<8u|GpioAf6)
  1053. #define PF09_6x (GpioPortF<<16u|GpioPin9 <<8u|GpioAf6)
  1054. #define PF10_6x (GpioPortF<<16u|GpioPin10<<8u|GpioAf6)
  1055. #define PF11_6x (GpioPortF<<16u|GpioPin11<<8u|GpioAf6)
  1056. ///< GpioAf7
  1057. #define PA00_TIM0_CHA (GpioPortA<<16u|GpioPin0 <<8u|GpioAf7)
  1058. #define PA01_SPI1_MOSI (GpioPortA<<16u|GpioPin1 <<8u|GpioAf7)
  1059. #define PA02_SPI1_MISO (GpioPortA<<16u|GpioPin2 <<8u|GpioAf7)
  1060. #define PA03_TIM5_CHA (GpioPortA<<16u|GpioPin3 <<8u|GpioAf7)
  1061. #define PA04_TIM3_CH2B (GpioPortA<<16u|GpioPin4 <<8u|GpioAf7)
  1062. #define PA05_XTH_OUT (GpioPortA<<16u|GpioPin5 <<8u|GpioAf7)
  1063. #define PA06_LPUART0_CTS (GpioPortA<<16u|GpioPin6 <<8u|GpioAf7)
  1064. #define PA07_TIM4_CHB (GpioPortA<<16u|GpioPin7 <<8u|GpioAf7)
  1065. #define PA08_TIM3_BK (GpioPortA<<16u|GpioPin8 <<8u|GpioAf7)
  1066. #define PA09_TIM5_CHA (GpioPortA<<16u|GpioPin9 <<8u|GpioAf7)
  1067. #define PA10_TIM6_CHA (GpioPortA<<16u|GpioPin10<<8u|GpioAf7)
  1068. #define PA11_TIM4_CHB (GpioPortA<<16u|GpioPin11<<8u|GpioAf7)
  1069. #define PA12_PCNT_S0 (GpioPortA<<16u|GpioPin12<<8u|GpioAf7)
  1070. #define PA13_VC2_OUT (GpioPortA<<16u|GpioPin13<<8u|GpioAf7)
  1071. #define PA14_PLL_OUT (GpioPortA<<16u|GpioPin14<<8u|GpioAf7)
  1072. #define PA15_7x (GpioPortA<<16u|GpioPin15<<8u|GpioAf7)
  1073. #define PB00_PLL_OUT (GpioPortB<<16u|GpioPin0 <<8u|GpioAf7)
  1074. #define PB01_TCLK_OUT (GpioPortB<<16u|GpioPin1 <<8u|GpioAf7)
  1075. #define PB02_TIM2_BK (GpioPortB<<16u|GpioPin2 <<8u|GpioAf7)
  1076. #define PB03_XTH_OUT (GpioPortB<<16u|GpioPin3 <<8u|GpioAf7)
  1077. #define PB04_LPTIM_ETR (GpioPortB<<16u|GpioPin4 <<8u|GpioAf7)
  1078. #define PB05_UART0_RTS (GpioPortB<<16u|GpioPin5 <<8u|GpioAf7)
  1079. #define PB06_LPTIM_TOG (GpioPortB<<16u|GpioPin6 <<8u|GpioAf7)
  1080. #define PB07_PCNT_S1 (GpioPortB<<16u|GpioPin7 <<8u|GpioAf7)
  1081. #define PB08_UART0_TXD (GpioPortB<<16u|GpioPin8 <<8u|GpioAf7)
  1082. #define PB09_UART0_RXD (GpioPortB<<16u|GpioPin9 <<8u|GpioAf7)
  1083. #define PB10_UART1_RTS (GpioPortB<<16u|GpioPin10<<8u|GpioAf7)
  1084. #define PB11_UART1_CTS (GpioPortB<<16u|GpioPin11<<8u|GpioAf7)
  1085. #define PB12_TIM6_CHA (GpioPortB<<16u|GpioPin12<<8u|GpioAf7)
  1086. #define PB13_TIM6_CHB (GpioPortB<<16u|GpioPin13<<8u|GpioAf7)
  1087. #define PB14_TIM1_BK (GpioPortB<<16u|GpioPin14<<8u|GpioAf7)
  1088. #define PB15_LPUART1_RXD (GpioPortB<<16u|GpioPin15<<8u|GpioAf7)
  1089. #define PC00_7x (GpioPortC<<16u|GpioPin0 <<8u|GpioAf7)
  1090. #define PC01_7x (GpioPortC<<16u|GpioPin1 <<8u|GpioAf7)
  1091. #define PC02_7x (GpioPortC<<16u|GpioPin2 <<8u|GpioAf7)
  1092. #define PC03_7x (GpioPortC<<16u|GpioPin3 <<8u|GpioAf7)
  1093. #define PC04_7x (GpioPortC<<16u|GpioPin4 <<8u|GpioAf7)
  1094. #define PC05_7x (GpioPortC<<16u|GpioPin5 <<8u|GpioAf7)
  1095. #define PC06_7x (GpioPortC<<16u|GpioPin6 <<8u|GpioAf7)
  1096. #define PC07_7x (GpioPortC<<16u|GpioPin7 <<8u|GpioAf7)
  1097. #define PC08_7x (GpioPortC<<16u|GpioPin8 <<8u|GpioAf7)
  1098. #define PC09_7x (GpioPortC<<16u|GpioPin9 <<8u|GpioAf7)
  1099. #define PC10_7x (GpioPortC<<16u|GpioPin10<<8u|GpioAf7)
  1100. #define PC11_7x (GpioPortC<<16u|GpioPin11<<8u|GpioAf7)
  1101. #define PC12_7x (GpioPortC<<16u|GpioPin12<<8u|GpioAf7)
  1102. #define PC13_7x (GpioPortC<<16u|GpioPin13<<8u|GpioAf7)
  1103. #define PC14_7x (GpioPortC<<16u|GpioPin14<<8u|GpioAf7)
  1104. #define PC15_7x (GpioPortC<<16u|GpioPin15<<8u|GpioAf7)
  1105. #define PD00_7x (GpioPortD<<16u|GpioPin0 <<8u|GpioAf7)
  1106. #define PD01_7x (GpioPortD<<16u|GpioPin1 <<8u|GpioAf7)
  1107. #define PD02_7x (GpioPortD<<16u|GpioPin2 <<8u|GpioAf7)
  1108. #define PD03_7x (GpioPortD<<16u|GpioPin3 <<8u|GpioAf7)
  1109. #define PD04_7x (GpioPortD<<16u|GpioPin4 <<8u|GpioAf7)
  1110. #define PD05_7x (GpioPortD<<16u|GpioPin5 <<8u|GpioAf7)
  1111. #define PD06_7x (GpioPortD<<16u|GpioPin6 <<8u|GpioAf7)
  1112. #define PD07_7x (GpioPortD<<16u|GpioPin7 <<8u|GpioAf7)
  1113. #define PD08_7x (GpioPortD<<16u|GpioPin8 <<8u|GpioAf7)
  1114. #define PD09_7x (GpioPortD<<16u|GpioPin9 <<8u|GpioAf7)
  1115. #define PD10_7x (GpioPortD<<16u|GpioPin10<<8u|GpioAf7)
  1116. #define PD11_7x (GpioPortD<<16u|GpioPin11<<8u|GpioAf7)
  1117. #define PD12_7x (GpioPortD<<16u|GpioPin12<<8u|GpioAf7)
  1118. #define PD13_7x (GpioPortD<<16u|GpioPin13<<8u|GpioAf7)
  1119. #define PD14_7x (GpioPortD<<16u|GpioPin14<<8u|GpioAf7)
  1120. #define PD15_7x (GpioPortD<<16u|GpioPin15<<8u|GpioAf7)
  1121. #define PE00_7x (GpioPortE<<16u|GpioPin0 <<8u|GpioAf7)
  1122. #define PE01_7x (GpioPortE<<16u|GpioPin1 <<8u|GpioAf7)
  1123. #define PE02_7x (GpioPortE<<16u|GpioPin2 <<8u|GpioAf7)
  1124. #define PE03_7x (GpioPortE<<16u|GpioPin3 <<8u|GpioAf7)
  1125. #define PE04_7x (GpioPortE<<16u|GpioPin4 <<8u|GpioAf7)
  1126. #define PE05_7x (GpioPortE<<16u|GpioPin5 <<8u|GpioAf7)
  1127. #define PE06_7x (GpioPortE<<16u|GpioPin6 <<8u|GpioAf7)
  1128. #define PE07_7x (GpioPortE<<16u|GpioPin7 <<8u|GpioAf7)
  1129. #define PE08_7x (GpioPortE<<16u|GpioPin8 <<8u|GpioAf7)
  1130. #define PE09_7x (GpioPortE<<16u|GpioPin9 <<8u|GpioAf7)
  1131. #define PE10_7x (GpioPortE<<16u|GpioPin10<<8u|GpioAf7)
  1132. #define PE11_7x (GpioPortE<<16u|GpioPin11<<8u|GpioAf7)
  1133. #define PE12_7x (GpioPortE<<16u|GpioPin12<<8u|GpioAf7)
  1134. #define PE13_7x (GpioPortE<<16u|GpioPin13<<8u|GpioAf7)
  1135. #define PE14_7x (GpioPortE<<16u|GpioPin14<<8u|GpioAf7)
  1136. #define PE15_7x (GpioPortE<<16u|GpioPin15<<8u|GpioAf7)
  1137. #define PF00_7x (GpioPortF<<16u|GpioPin0 <<8u|GpioAf7)
  1138. #define PF01_7x (GpioPortF<<16u|GpioPin1 <<8u|GpioAf7)
  1139. #define PF02_7x (GpioPortF<<16u|GpioPin2 <<8u|GpioAf7)
  1140. #define PF03_7x (GpioPortF<<16u|GpioPin3 <<8u|GpioAf7)
  1141. #define PF04_7x (GpioPortF<<16u|GpioPin4 <<8u|GpioAf7)
  1142. #define PF05_7x (GpioPortF<<16u|GpioPin5 <<8u|GpioAf7)
  1143. #define PF06_7x (GpioPortF<<16u|GpioPin6 <<8u|GpioAf7)
  1144. #define PF07_7x (GpioPortF<<16u|GpioPin7 <<8u|GpioAf7)
  1145. #define PF09_7x (GpioPortF<<16u|GpioPin9 <<8u|GpioAf7)
  1146. #define PF10_7x (GpioPortF<<16u|GpioPin10<<8u|GpioAf7)
  1147. #define PF11_7x (GpioPortF<<16u|GpioPin11<<8u|GpioAf7)
  1148. #define GPIO_ADS_Pos 0
  1149. #define GPIO_DIR_Pos 1
  1150. #define GPIO_DR_Pos 2
  1151. #define GPIO_PU_Pos 3
  1152. #define GPIO_PD_Pos 4
  1153. #define GPIO_OD_Pos 5
  1154. #define GPIO_ADS_Msk (0x1U<<GPIO_ADS_Pos)
  1155. #define GPIO_DIR_Msk (0x1U<<GPIO_DIR_Pos)
  1156. #define GPIO_DR_Msk (0x1U<<GPIO_DR_Pos)
  1157. #define GPIO_PU_Msk (0x1U<<GPIO_PU_Pos)
  1158. #define GPIO_PD_Msk (0x1U<<GPIO_PD_Pos)
  1159. #define GPIO_OD_Msk (0x1U<<GPIO_OD_Pos)
  1160. // DIG/ANA OUT/IN FAST/SLOW PUSH/OPEN NONEUP/PULLUP NONEDOWN/PULLDOWN
  1161. #define GPIO_ANA ((1<<GPIO_ADS_Pos) | (1<<GPIO_DIR_Pos) | (1<<GPIO_DR_Pos) | (1<<GPIO_OD_Pos) | (0<<GPIO_PU_Pos) | (0<<GPIO_PD_Pos))
  1162. #define GPIO_DIG_OUT_STRN_PUSH_NONEUP_NONEDOWN ((0<<GPIO_ADS_Pos) | (0<<GPIO_DIR_Pos) | (0<<GPIO_DR_Pos) | (0<<GPIO_OD_Pos) | (0<<GPIO_PU_Pos) | (0<<GPIO_PD_Pos))
  1163. #define GPIO_DIG_OUT_WEAK_PUSH_NONEUP_NONEDOWN ((0<<GPIO_ADS_Pos) | (0<<GPIO_DIR_Pos) | (1<<GPIO_DR_Pos) | (0<<GPIO_OD_Pos) | (0<<GPIO_PU_Pos) | (0<<GPIO_PD_Pos))
  1164. #define GPIO_DIG_OUT_STRN_OPEN_NONEUP_NONEDOWN ((0<<GPIO_ADS_Pos) | (0<<GPIO_DIR_Pos) | (0<<GPIO_DR_Pos) | (1<<GPIO_OD_Pos) | (0<<GPIO_PU_Pos) | (0<<GPIO_PD_Pos))
  1165. #define GPIO_DIG_OUT_WEAK_OPEN_NONEUP_NONEDOWN ((0<<GPIO_ADS_Pos) | (0<<GPIO_DIR_Pos) | (1<<GPIO_DR_Pos) | (1<<GPIO_OD_Pos) | (0<<GPIO_PU_Pos) | (0<<GPIO_PD_Pos))
  1166. #define GPIO_DIG_OUT_STRN_PUSH_PULLUP_NONEDOWN ((0<<GPIO_ADS_Pos) | (0<<GPIO_DIR_Pos) | (0<<GPIO_DR_Pos) | (0<<GPIO_OD_Pos) | (1<<GPIO_PU_Pos) | (0<<GPIO_PD_Pos))
  1167. #define GPIO_DIG_OUT_WEAK_PUSH_PULLUP_NONEDOWN ((0<<GPIO_ADS_Pos) | (0<<GPIO_DIR_Pos) | (1<<GPIO_DR_Pos) | (0<<GPIO_OD_Pos) | (1<<GPIO_PU_Pos) | (0<<GPIO_PD_Pos))
  1168. #define GPIO_DIG_OUT_STRN_OPEN_PULLUP_NONEDOWN ((0<<GPIO_ADS_Pos) | (0<<GPIO_DIR_Pos) | (0<<GPIO_DR_Pos) | (1<<GPIO_OD_Pos) | (1<<GPIO_PU_Pos) | (0<<GPIO_PD_Pos))
  1169. #define GPIO_DIG_OUT_WEAK_OPEN_PULLUP_NONEDOWN ((0<<GPIO_ADS_Pos) | (0<<GPIO_DIR_Pos) | (1<<GPIO_DR_Pos) | (1<<GPIO_OD_Pos) | (1<<GPIO_PU_Pos) | (0<<GPIO_PD_Pos))
  1170. #define GPIO_DIG_OUT_STRN_PUSH_NONEUP_PULLDOWN ((0<<GPIO_ADS_Pos) | (0<<GPIO_DIR_Pos) | (0<<GPIO_DR_Pos) | (0<<GPIO_OD_Pos) | (0<<GPIO_PU_Pos) | (1<<GPIO_PD_Pos))
  1171. #define GPIO_DIG_OUT_WEAK_PUSH_NONEUP_PULLDOWN ((0<<GPIO_ADS_Pos) | (0<<GPIO_DIR_Pos) | (1<<GPIO_DR_Pos) | (0<<GPIO_OD_Pos) | (0<<GPIO_PU_Pos) | (1<<GPIO_PD_Pos))
  1172. #define GPIO_DIG_OUT_STRN_OPEN_NONEUP_PULLDOWN ((0<<GPIO_ADS_Pos) | (0<<GPIO_DIR_Pos) | (0<<GPIO_DR_Pos) | (1<<GPIO_OD_Pos) | (0<<GPIO_PU_Pos) | (1<<GPIO_PD_Pos))
  1173. #define GPIO_DIG_OUT_WEAK_OPEN_NONEUP_PULLDOWN ((0<<GPIO_ADS_Pos) | (0<<GPIO_DIR_Pos) | (1<<GPIO_DR_Pos) | (1<<GPIO_OD_Pos) | (0<<GPIO_PU_Pos) | (1<<GPIO_PD_Pos))
  1174. #define GPIO_DIG_IN_NONEUP_NONEDOWN ((0<<GPIO_ADS_Pos) | (1<<GPIO_DIR_Pos) | (1<<GPIO_DR_Pos) | (1<<GPIO_OD_Pos) | (0<<GPIO_PU_Pos) | (0<<GPIO_PD_Pos))
  1175. #define GPIO_DIG_IN_PULLUP_NONEDOWN ((0<<GPIO_ADS_Pos) | (1<<GPIO_DIR_Pos) | (1<<GPIO_DR_Pos) | (1<<GPIO_OD_Pos) | (1<<GPIO_PU_Pos) | (0<<GPIO_PD_Pos))
  1176. #define GPIO_DIG_IN_NONEUP_PULLDOWN ((0<<GPIO_ADS_Pos) | (1<<GPIO_DIR_Pos) | (1<<GPIO_DR_Pos) | (1<<GPIO_OD_Pos) | (0<<GPIO_PU_Pos) | (1<<GPIO_PD_Pos))
  1177. #define GPIO_EVENT_NONE (0x00U)
  1178. #define GPIO_EVENT_HIGH (0x01U)
  1179. #define GPIO_EVENT_LOW (0x02U)
  1180. #define GPIO_EVENT_RISE (0x04U)
  1181. #define GPIO_EVENT_FALL (0x08U)
  1182. // be sure that GPIO clk is ON before using the following MACRO
  1183. #define GpioSetReg(Port, BitsMsk) (((Port)==GpioPortA) ? (M0P_GPIO->PABSET = (BitsMsk)) : \
  1184. ((Port)==GpioPortB) ? (M0P_GPIO->PBBSET = (BitsMsk)) : \
  1185. ((Port)==GpioPortC) ? (M0P_GPIO->PCBSET = (BitsMsk)) : \
  1186. ((Port)==GpioPortD) ? (M0P_GPIO->PDBSET = (BitsMsk)) : \
  1187. ((Port)==GpioPortE) ? (M0P_GPIO->PEBSET = (BitsMsk)) : \
  1188. (M0P_GPIO->PFBSET = (BitsMsk)) \
  1189. )
  1190. #define GpioClrReg(Port, BitsMsk) (((Port)==GpioPortA) ? (M0P_GPIO->PABCLR = (BitsMsk)) : \
  1191. ((Port)==GpioPortB) ? (M0P_GPIO->PBBCLR = (BitsMsk)) : \
  1192. ((Port)==GpioPortC) ? (M0P_GPIO->PCBCLR = (BitsMsk)) : \
  1193. ((Port)==GpioPortD) ? (M0P_GPIO->PDBCLR = (BitsMsk)) : \
  1194. ((Port)==GpioPortE) ? (M0P_GPIO->PEBCLR = (BitsMsk)) : \
  1195. (M0P_GPIO->PFBCLR = (BitsMsk)) \
  1196. )
  1197. #define GpioSetClrReg(Port, BitsMsk, data) (((Port)==GpioPortA) ? (M0P_GPIO->PABSETCLR = (((~(data))&(BitsMsk)) | (((data)&(BitsMsk))<<16))) : \
  1198. ((Port)==GpioPortB) ? (M0P_GPIO->PBBSETCLR = (((~(data))&(BitsMsk)) | (((data)&(BitsMsk))<<16))) : \
  1199. ((Port)==GpioPortC) ? (M0P_GPIO->PCBSETCLR = (((~(data))&(BitsMsk)) | (((data)&(BitsMsk))<<16))) : \
  1200. ((Port)==GpioPortD) ? (M0P_GPIO->PDBSETCLR = (((~(data))&(BitsMsk)) | (((data)&(BitsMsk))<<16))) : \
  1201. ((Port)==GpioPortE) ? (M0P_GPIO->PEBSETCLR = (((~(data))&(BitsMsk)) | (((data)&(BitsMsk))<<16))) : \
  1202. (M0P_GPIO->PFBSETCLR = (((~(data))&(BitsMsk)) | (((data)&(BitsMsk))<<16))) \
  1203. )
  1204. #define GpioOutReg(Port, BitsMsk) (((Port)==GpioPortA) ? (M0P_GPIO->PAOUT & (BitsMsk)) : \
  1205. ((Port)==GpioPortB) ? (M0P_GPIO->PBOUT & (BitsMsk)) : \
  1206. ((Port)==GpioPortC) ? (M0P_GPIO->PCOUT & (BitsMsk)) : \
  1207. ((Port)==GpioPortD) ? (M0P_GPIO->PDOUT & (BitsMsk)) : \
  1208. ((Port)==GpioPortE) ? (M0P_GPIO->PEOUT & (BitsMsk)) : \
  1209. (M0P_GPIO->PFOUT & (BitsMsk)) \
  1210. )
  1211. #define GpioInReg(Port, BitsMsk) (((Port)==GpioPortA) ? (M0P_GPIO->PAIN & (BitsMsk)) : \
  1212. ((Port)==GpioPortB) ? (M0P_GPIO->PBIN & (BitsMsk)) : \
  1213. ((Port)==GpioPortC) ? (M0P_GPIO->PCIN & (BitsMsk)) : \
  1214. ((Port)==GpioPortD) ? (M0P_GPIO->PDIN & (BitsMsk)) : \
  1215. ((Port)==GpioPortE) ? (M0P_GPIO->PEIN & (BitsMsk)) : \
  1216. (M0P_GPIO->PFIN & (BitsMsk)) \
  1217. )
  1218. extern void GPIO_ReqClkOn(void);
  1219. extern void GPIO_ReqClkOff(void);
  1220. extern void GpioInit(uint32_t PinFunc, uint32_t Property);
  1221. extern void GpioEventInit(uint32_t PinFunc, uint32_t EventType);
  1222. extern uint32_t GpioGetEvents(en_gpio_port_t Port, uint32_t BitsMsk);
  1223. extern void GpioSetPins(en_gpio_port_t GpioPort, uint32_t BitsMask);
  1224. extern void GpioClrPins(en_gpio_port_t GpioPort, uint32_t BitsMask);
  1225. extern uint16_t GpioInPins(en_gpio_port_t GpioPort, uint32_t BitsMask);
  1226. #ifdef __cplusplus
  1227. }
  1228. #endif
  1229. #endif /* __GPIO_H__ */
  1230. /******************************************************************************
  1231. * EOF (not truncated)
  1232. ******************************************************************************/