1 /******************************************************************************* 2 * Copyright (C) 2018, Huada Semiconductor Co.,Ltd All rights reserved. 3 * 4 * This software is owned and published by: 5 * Huada Semiconductor Co.,Ltd ("HDSC"). 6 * 7 * BY DOWNLOADING, INSTALLING OR USING THIS SOFTWARE, YOU AGREE TO BE BOUND 8 * BY ALL THE TERMS AND CONDITIONS OF THIS AGREEMENT. 9 * 10 * This software contains source code for use with HDSC 11 * components. This software is licensed by HDSC to be adapted only 12 * for use in systems utilizing HDSC components. HDSC shall not be 13 * responsible for misuse or illegal use of this software for devices not 14 * supported herein. HDSC is providing this software "AS IS" and will 15 * not be responsible for issues arising from incorrect user implementation 16 * of the software. 17 * 18 * Disclaimer: 19 * HDSC MAKES NO WARRANTY, EXPRESS OR IMPLIED, ARISING BY LAW OR OTHERWISE, 20 * REGARDING THE SOFTWARE (INCLUDING ANY ACOOMPANYING WRITTEN MATERIALS), 21 * ITS PERFORMANCE OR SUITABILITY FOR YOUR INTENDED USE, INCLUDING, 22 * WITHOUT LIMITATION, THE IMPLIED WARRANTY OF MERCHANTABILITY, THE IMPLIED 23 * WARRANTY OF FITNESS FOR A PARTICULAR PURPOSE OR USE, AND THE IMPLIED 24 * WARRANTY OF NONINFRINGEMENT. 25 * HDSC SHALL HAVE NO LIABILITY (WHETHER IN CONTRACT, WARRANTY, TORT, 26 * NEGLIGENCE OR OTHERWISE) FOR ANY DAMAGES WHATSOEVER (INCLUDING, WITHOUT 27 * LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, 28 * LOSS OF BUSINESS INFORMATION, OR OTHER PECUNIARY LOSS) ARISING FROM USE OR 29 * INABILITY TO USE THE SOFTWARE, INCLUDING, WITHOUT LIMITATION, ANY DIRECT, 30 * INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES OR LOSS OF DATA, 31 * SAVINGS OR PROFITS, 32 * EVEN IF Disclaimer HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 33 * YOU ASSUME ALL RESPONSIBILITIES FOR SELECTION OF THE SOFTWARE TO ACHIEVE YOUR 34 * INTENDED RESULTS, AND FOR THE INSTALLATION OF, USE OF, AND RESULTS OBTAINED 35 * FROM, THE SOFTWARE. 36 * 37 * This software may be replicated in part or whole for the licensed use, 38 * with the restriction that this Disclaimer and Copyright notice must be 39 * included with each copy of this software, whether used in part or whole, 40 * at all times. 41 */ 42 /******************************************************************************/ 43 /** \file gpio.h 44 ** 45 ** GPIO driver 46 ** @link GPIO Group Some description @endlink 47 ** 48 ** - 2018-04-18 49 ** 50 ******************************************************************************/ 51 52 #ifndef __GPIO_H__ 53 #define __GPIO_H__ 54 55 /******************************************************************************* 56 * Include files 57 ******************************************************************************/ 58 #include "ddl.h" 59 #include "interrupts_hc32l136.h" 60 61 /* C binding of definitions if building with C++ compiler */ 62 #ifdef __cplusplus 63 extern "C" 64 { 65 #endif 66 67 /** 68 ******************************************************************************* 69 ** \defgroup GpioGroup General Purpose I/O (GPIO) 70 ** 71 ** 72 ******************************************************************************/ 73 //@{ 74 #define GPIO_GPSZ (0x40u) 75 76 /******************************************************************************* 77 * Global type definitions 78 ******************************************************************************/ 79 /** 80 ******************************************************************************* 81 ** \brief GPIO PORT类型定义 82 ******************************************************************************/ 83 typedef enum en_gpio_port 84 { 85 GpioPortA = 0x00u, ///< GPIO PORT A 86 GpioPortB = 0x40u, ///< GPIO PORT B 87 GpioPortC = 0x80u, ///< GPIO PORT C 88 GpioPortD = 0xc0u, ///< GPIO PORT D 89 }en_gpio_port_t; 90 91 /** 92 ******************************************************************************* 93 ** \brief GPIO PIN类型定义 94 ******************************************************************************/ 95 typedef enum en_gpio_pin 96 { 97 GpioPin0 = 0u, ///< GPIO PIN0 98 GpioPin1 = 1u, ///< GPIO PIN1 99 GpioPin2 = 2u, ///< GPIO PIN2 100 GpioPin3 = 3u, ///< GPIO PIN3 101 GpioPin4 = 4u, ///< GPIO PIN4 102 GpioPin5 = 5u, ///< GPIO PIN5 103 GpioPin6 = 6u, ///< GPIO PIN6 104 GpioPin7 = 7u, ///< GPIO PIN7 105 GpioPin8 = 8u, ///< GPIO PIN8 106 GpioPin9 = 9u, ///< GPIO PIN9 107 GpioPin10 = 10u, ///< GPIO PIN10 108 GpioPin11 = 11u, ///< GPIO PIN11 109 GpioPin12 = 12u, ///< GPIO PIN12 110 GpioPin13 = 13u, ///< GPIO PIN13 111 GpioPin14 = 14u, ///< GPIO PIN14 112 GpioPin15 = 15u, ///< GPIO PIN15 113 }en_gpio_pin_t; 114 115 /** 116 ******************************************************************************* 117 ** \brief GPIO 端口复用功能(AF-Alternate function)类型定义 118 ******************************************************************************/ 119 typedef enum en_gpio_af 120 { 121 GpioAf0 = 0u, ///< GPIO功能 122 GpioAf1 = 1u, ///< GPIO AF1: 123 ///< PA:UART1/SPI0/UART0/IR 124 ///< PB:PCA/LPTIM/SPI0/I2C0/I2C1/SPI1 125 ///< PC:LPTIM/SPI1/LPUART0/PCA/LPUART1 126 ///< PD:I2C0/PCA/I2C1 127 GpioAf2 = 2u, ///< GPIO AF2: 128 ///< PA:LPUART1/TIM0/UART1/PCA/TIM3 129 ///< PB:TIM3/PCLK_OUT/PCA/TIM0/UART0/TIM1/IR/SPI1/I2C1 130 ///< PC:PCNT/TIM5/LPTIM/TIM2/TIM6/TIM4/LPUART0/LPUART1/RTC 131 ///< PD:TIM4/LPUART0/LPUART1 132 GpioAf3 = 3u, ///< GPIO AF3: 133 ///< PA:TIM0/VC1/TIM1/PCA/TIM3/HCLK_OUT/TIM0/TIM2/I2C1/LVD/LPUART1 134 ///< PB:LPUART0/TIM3/LPUART1/TIM1/TIM2/SPI1/TIM0 135 ///< PC:UART1/PCNT/LPTIM/IR/PCA/TIM2/TIM1/TIM3 136 ///< PD:UART1/TIM1/UART0 137 GpioAf4 = 4u, ///< GPIO AF4: 138 ///< PA:VC0/TIM1/TIM2/TIM0/TIM3/I2C0/LVD 139 ///< PB:TIM5/TIM6/TIM4/TIM3/UART0/PCA/TIM0/LPUART1/TIM2/LPUART0 140 ///< PC:RESERVED 141 ///< PD:RESERVED 142 GpioAf5 = 5u, ///< GPIO AF5: 143 ///< PA:TIM1/TIM2/SPI1/TIM5/VC0/VC1/RTC/RCH_OUT/TIM0 144 ///< PB:RCH_OUT/LPUART0/TIM1/LPTIM/TIM2/TIM0/TIM3/TIM6/RTC 145 ///< PC:RESERVED 146 ///< PD:RESERVED 147 GpioAf6 = 6u, ///< GPIO AF6: 148 ///< PA:TIM3/HCLK_OUT/PCLK_OUT/LVD/XTL_OUT/VC1/TIM4/SPI0/PCNT/RCL_OUT 149 ///< PB:TIM0/XTL_OUT/TIM3/PCNT/LPTIM/TIM2/LPUART1/LPUART0/TIM1/RTC 150 ///< PC:RESERVED 151 ///< PD:RESERVED 152 GpioAf7 = 7u, ///< GPIO AF7: 153 ///< PA:TIM0/SPI1/TIM5/TIM3/XTH_OUT/LPUART0/TIM4/TIM6/PCNT/PLL_OUT 154 ///< PB:PLL_OUT/TIM2/XTH_OUT/LPTIM/UART0/PCNT/UART1/TIM6/TIM1/LPUART1 155 ///< PC:RESERVED 156 ///< PD:RESERVED 157 }en_gpio_af_t; 158 159 /** 160 ******************************************************************************* 161 ** \brief GPIO输入输出配置数据类型定义 162 ******************************************************************************/ 163 typedef enum en_gpio_dir 164 { 165 GpioDirOut = 0u, ///< GPIO 输出 166 GpioDirIn = 1u, ///< GPIO 输入 167 }en_gpio_dir_t; 168 169 /** 170 ******************************************************************************* 171 ** \brief GPIO端口上拉、下拉配置数据类型定义 172 ******************************************************************************/ 173 typedef enum en_gpio_pupd 174 { 175 GpioNoPuPd = 0u, ///< GPIO无上拉下拉 176 GpioPu = 1u, ///< GPIO上拉 177 GpioPd = 2u, ///< GPIO下拉 178 }en_gpio_pupd_t; 179 180 /** 181 ******************************************************************************* 182 ** \brief GPIO端口输出驱动能力配置数据类型定义 183 ******************************************************************************/ 184 typedef enum en_gpio_drv 185 { 186 GpioDrvH = 0u, ///< GPIO高驱动能力 187 GpioDrvL = 1u, ///< GPIO低驱动能力 188 }en_gpio_drv_t; 189 190 /** 191 ******************************************************************************* 192 ** \brief GPIO端口开漏输出控制数据类型定义 193 ******************************************************************************/ 194 typedef enum en_gpio_od 195 { 196 GpioOdDisable = 0u, ///< GPIO开漏输出关闭 197 GpioOdEnable = 1u, ///< GPIO开漏输出使能 198 }en_gpio_od_t; 199 200 /** 201 ******************************************************************************* 202 ** \brief GPIO端口输入/输出值寄存器总线控制模式选择 203 ******************************************************************************/ 204 typedef enum en_gpio_ctrl_mode 205 { 206 GpioFastIO = 0u, ///< FAST IO 总线控制模式 207 GpioAHB = 1u, ///< AHB 总线控制模式 208 }en_gpio_ctrl_mode_t; 209 210 /** 211 ******************************************************************************* 212 ** \brief GPIO中断触发方式类型定义 213 ******************************************************************************/ 214 typedef enum en_gpio_irqtype 215 { 216 GpioIrqHigh = 1u, ///< GPIO高电平触发 217 GpioIrqLow = 2u, ///< GPIO低电平触发 218 GpioIrqRising = 4u, ///< GPIO上升沿触发 219 GpioIrqFalling = 8u, ///< GPIO下降沿触发 220 }en_gpio_irqtype_t; 221 222 /** 223 ******************************************************************************* 224 ** \brief GPIO 辅助功能(SF-Secondary Function)端口中断模式类型定义 225 ******************************************************************************/ 226 typedef enum en_gpio_sf_irqmode 227 { 228 GpioSfIrqDpslpMode = 1u, ///< Deep Sleep模式 229 GpioSfIrqActSlpMode = 0u, ///< Active/Sleep模式 230 }en_gpio_sf_irqmode_t; 231 232 /** 233 ******************************************************************************* 234 ** \brief GPIO 辅助功能(SF-Secondary Function)HCLK输出门控类型定义 235 ******************************************************************************/ 236 typedef enum en_gpio_sf_hclkout_g 237 { 238 GpioSfHclkOutDisable = 0u, ///< HCLK输出门控关闭 239 GpioSfHclkOutEnable = 1u, ///< HCLK输出门控使能 240 }en_gpio_sf_hclkout_g_t; 241 242 /** 243 ******************************************************************************* 244 ** \brief GPIO 辅助功能(SF-Secondary Function)HCLK输出分频选择类型定义 245 ******************************************************************************/ 246 typedef enum en_gpio_sf_hclkout_div 247 { 248 GpioSfHclkOutDiv1 = 0u, ///< HCLK 249 GpioSfHclkOutDiv2 = 1u, ///< HCLK/2 250 GpioSfHclkOutDiv4 = 2u, ///< HCLK/4 251 GpioSfHclkOutDiv8 = 3u, ///< HCLK/8 252 }en_gpio_sf_hclkout_div_t; 253 /** 254 ******************************************************************************* 255 ** \brief GPIO 辅助功能(SF-Secondary Function)PCLK输出门控类型定义 256 ******************************************************************************/ 257 typedef enum en_gpio_sf_pclkout_g 258 { 259 GpioSfPclkOutDisable = 0u, ///< PCLK输出门控关闭 260 GpioSfPclkOutEnable = 1u, ///< PCLK输出门控使能 261 }en_gpio_sf_pclkout_g_t; 262 263 /** 264 ******************************************************************************* 265 ** \brief GPIO 辅助功能(SF-Secondary Function)PCLK输出分频选择类型定义 266 ******************************************************************************/ 267 typedef enum en_gpio_sf_pclkout_div 268 { 269 GpioSfPclkOutDiv1 = 0u, ///< PCLK 270 GpioSfPclkOutDiv2 = 1u, ///< PCLK/2 271 GpioSfPclkOutDiv4 = 2u, ///< PCLK/4 272 GpioSfPclkOutDiv8 = 3u, ///< PCLK/8 273 }en_gpio_sf_pclkout_div_t; 274 275 /** 276 ******************************************************************************* 277 ** \brief GPIO 辅助功能(SF-Secondary Function)IR输出极性选择类型定义 278 ******************************************************************************/ 279 typedef enum en_gpio_sf_irpol 280 { 281 GpioSfIrP = 0u, ///< IR正向输出 282 GpioSfIrN = 1u, ///< IR反向输出 283 }en_gpio_sf_irpol_t; 284 285 /** 286 ******************************************************************************* 287 ** \brief GPIO 辅助功能(SF-Secondary Function)SSN通道类型定义 288 ******************************************************************************/ 289 typedef enum en_gpio_sf_ssnspi 290 { 291 GpioSpi0 = 0u, ///< SPI0 SSN 292 GpioSpi1 = 1u, ///< SPI1 SSN 293 }en_gpio_sf_ssnspi_t; 294 295 /** 296 ******************************************************************************* 297 ** \brief GPIO 辅助功能(SF-Secondary Function)SSN与外部时钟输入信号源选择类型定义 298 ******************************************************************************/ 299 typedef enum en_gpio_sf_ssn_extclk 300 { 301 GpioSfSsnExtClkH = 0u, ///< 高电平 302 GpioSfSsnExtClkPA03 = 1u, ///< PA03 303 GpioSfSsnExtClkPA04 = 2u, ///< PA04 304 GpioSfSsnExtClkPA06 = 3u, ///< PA06 305 GpioSfSsnExtClkPA08 = 4u, ///< PA08 306 GpioSfSsnExtClkPA09 = 5u, ///< PA09 307 GpioSfSsnExtClkPA12 = 6u, ///< PA12 308 GpioSfSsnExtClkPA15 = 7u, ///< PA15 309 GpioSfSsnExtClkPB01 = 8u, ///< PB01 310 GpioSfSsnExtClkPB02 = 9u, ///< PB02 311 GpioSfSsnExtClkPB05 = 10u, ///< PB05 312 GpioSfSsnExtClkPB06 = 11u, ///< PB06 313 GpioSfSsnExtClkPB09 = 12u, ///< PB09 314 GpioSfSsnExtClkPB10 = 13u, ///< PB10 315 GpioSfSsnExtClkPB12 = 14u, ///< PB12 316 GpioSfSsnExtClkPB14 = 15u, ///< PB14 317 }en_gpio_sf_ssn_extclk_t; 318 319 /** 320 ******************************************************************************* 321 ** \brief GPIO 辅助功能(SF-Secondary Function)定时器互联功能选择类型定义 322 ******************************************************************************/ 323 typedef enum en_gpio_sf 324 { 325 GpioSf0 = 0u, ///< SF0:PX_SEL的配置功能 326 GpioSf1 = 1u, ///< SF1: 327 ///< TIM_G:UART0_RXD/LPUART0_RXD 328 ///< TIM_E:UART0_RXD/LPUART0_RXD/PCNT_S0 329 ///< TIM_C:UART0_RXD/LPUART0_RXD/UART1_RXD/LPUART1_RXD 330 ///< PCA:PCNT_S1/PCNT_S0 331 GpioSf2 = 2u, ///< SF2: 332 ///< TIM_G:UART1_RXD/LPUART1_RXD 333 ///< TIM_E:UART1_RXD/LPUART1_RXD/LVD_OUT 334 ///< TIM_C:PA00/VC0_OUT/LPUART0_RXD/UART1_RXD 335 ///< PCA:LVD_OUT/PCNT_S1 336 GpioSf3 = 3u, ///< SF3: 337 ///< TIM_G:VC0_OUT/LPUART0 338 ///< TIM_E:VC0_OUT/VC1OUT 339 ///< TIM_C:PA02/PCNT_S0/PCNT_S1 340 ///< PCA:VC0_OUT/LVD_OUT 341 GpioSf4 = 4u, ///< SF4: 342 ///< TIM_G:VC1_OUT/LPUART1 343 ///< TIM_E:LVD_OUT/PCNT_S1/PCNT_S0/VC1_OUT 344 ///< TIM_C:PA05/PA06/PA07/VC0_OUT/VC1_OUT 345 ///< PCA:VC1_OUT 346 GpioSf5 = 5u, ///< SF5: 347 ///< TIM_G:PA03/PA08/PA10/VC0_OUT/PB03 348 ///< TIM_E:PA00/PA01/PA04 349 ///< TIM_C:PA15/PB08/PA08/PA07 350 ///< PCA:PA05/PA06 351 GpioSf6 = 6u, ///< SF6: 352 ///< TIM_G:PB08/PB03/PB04/PA06/PB05 353 ///< TIM_E:PA05/PC09/PC04/PA12/PB06 354 ///< TIM_C:PB06/PB10/PB09/PB03/PB04 355 ///< PCA:PB02/PB04 356 GpioSf7 = 7u, ///< SF7: 357 ///< TIM_G:PB15/PB13/PB11/PC00 358 ///< TIM_E:PA15/PD02/PC08/PA13/PC03 359 ///< TIM_C:PB14/PB13/PC06/PB06 360 ///< PCA:PD02/PC06 361 }en_gpio_sf_t; 362 363 /** 364 ******************************************************************************* 365 ** \brief GPIO 辅助功能(SF-Secondary Function)定时器门控类型选择数据类型定义 366 ******************************************************************************/ 367 typedef enum en_gpio_sf_tim_g 368 { 369 GpioSfTim0G = 0u, ///<Tim0定时器GATE输入选择 370 GpioSfTim1G = 3u, ///<Tim1定时器GATE输入选择 371 GpioSfTim2G = 6u, ///<Tim2定时器GATE输入选择 372 GpioSfTim3G = 9u, ///<Tim3定时器GATE输入选择 373 GpioSfLpTimG = 12u, ///<LPTim定时器GATE输入选择 374 }en_gpio_sf_tim_g_t; 375 376 /** 377 ******************************************************************************* 378 ** \brief GPIO 辅助功能(SF-Secondary Function)定时器ETR类型选择数据类型定义 379 ******************************************************************************/ 380 typedef enum en_gpio_sf_tim_e 381 { 382 GpioSfTim0E = 0u, ///<Tim0定时器ETR输入选择 383 GpioSfTim1E = 3u, ///<Tim1定时器ETR输入选择 384 GpioSfTim2E = 6u, ///<Tim2定时器ETR输入选择 385 GpioSfTim3E = 9u, ///<Tim3定时器ETR输入选择 386 GpioSfLpTimE = 12u, ///<LPTim定时器ETR输入选择 387 }en_gpio_sf_tim_e_t; 388 389 /** 390 ******************************************************************************* 391 ** \brief GPIO 辅助功能(SF-Secondary Function)定时器捕获输入类型选择数据类型定义 392 ******************************************************************************/ 393 typedef enum en_gpio_sf_tim_c 394 { 395 GpioSfTim0CA = 0u, ///<Tim0定时器CHA输入选择 396 GpioSfTim1CA = 3u, ///<Tim1定时器CHA输入选择 397 GpioSfTim2CA = 6u, ///<Tim2定时器CHA输入选择 398 GpioSfTim3CA = 9u, ///<Tim3定时器CH0A输入选择 399 GpioSfTim3CB = 12u, ///<Tim3定时器CH0B输入选择 400 }en_gpio_sf_tim_c_t; 401 402 /** 403 ******************************************************************************* 404 ** \brief GPIO 辅助功能(SF-Secondary Function)PCA捕获选择数据类型定义 405 ******************************************************************************/ 406 typedef enum en_gpio_sf_pca 407 { 408 GpioSfPcaCH0 = 0u, ///<PCA_CH0捕获口输入选择 409 GpioSfPcaECI = 3u, ///<PCA ECI时钟输入选择 410 }en_gpio_sf_pca_t; 411 412 /** 413 ******************************************************************************* 414 ** \brief GPIO 端口配置结构体定义 415 ******************************************************************************/ 416 typedef struct 417 { 418 en_gpio_dir_t enDir; ///< 端口方向配置 419 en_gpio_drv_t enDrv; ///< 端口驱动能力配置 420 en_gpio_pupd_t enPuPd; ///< 端口上下拉配置 421 en_gpio_od_t enOD; ///< 端口开漏输出配置 422 en_gpio_ctrl_mode_t enCtrlMode; ///< 端口输入/输出值寄存器总线控制模式配置 423 }stc_gpio_config_t; 424 425 /******************************************************************************* 426 * Global definitions 427 ******************************************************************************/ 428 429 /****************************************************************************** 430 * Local type definitions ('typedef') 431 ******************************************************************************/ 432 433 /****************************************************************************** 434 * Global variable definitions ('extern') 435 ******************************************************************************/ 436 437 /****************************************************************************** 438 Global function prototypes (definition in C source) 439 *******************************************************************************/ 440 ///< GPIO IO初始化/去初始化 441 en_result_t Gpio_Init(en_gpio_port_t enPort, en_gpio_pin_t enPin, stc_gpio_config_t *pstcGpioCfg); 442 443 ///< GPIO 获取端口输入电平 444 boolean_t Gpio_GetInputIO(en_gpio_port_t enPort, en_gpio_pin_t enPin); 445 uint16_t Gpio_GetInputData(en_gpio_port_t enPort); 446 447 ///< GPIO 设置端口输出 448 ///< GPIO 端口输出电平配置及获取 449 en_result_t Gpio_WriteOutputIO(en_gpio_port_t enPort, en_gpio_pin_t enPin, boolean_t bVal); 450 boolean_t Gpio_ReadOutputIO(en_gpio_port_t enPort, en_gpio_pin_t enPin); 451 ///< GPIO 端口/引脚输出电平置位 452 en_result_t Gpio_SetPort(en_gpio_port_t enPort, uint16_t u16ValMsk); 453 en_result_t Gpio_SetIO(en_gpio_port_t enPort, en_gpio_pin_t enPin); 454 ///< GPIO 端口/引脚输出电平清零 455 en_result_t Gpio_ClrPort(en_gpio_port_t enPort, uint16_t u16ValMsk); 456 en_result_t Gpio_ClrIO(en_gpio_port_t enPort, en_gpio_pin_t enPin); 457 ///< GPIO 端口输出电平置位与清零设置 458 en_result_t Gpio_SetClrPort(en_gpio_port_t enPort, uint32_t u32ValMsk); 459 460 ///< GPIO 设置端口为模拟功能 461 en_result_t Gpio_SetAnalogMode(en_gpio_port_t enPort, en_gpio_pin_t enPin); 462 463 ///< GPIO 设置端口为端口复用功能 464 en_result_t Gpio_SetAfMode(en_gpio_port_t enPort, en_gpio_pin_t enPin, en_gpio_af_t enAf); 465 466 ///< GPIO 端口中断控制功能使能/关闭 467 en_result_t Gpio_EnableIrq(en_gpio_port_t enPort, en_gpio_pin_t enPin, en_gpio_irqtype_t enType); 468 en_result_t Gpio_DisableIrq(en_gpio_port_t enPort, en_gpio_pin_t enPin, en_gpio_irqtype_t enType); 469 ///< GPIO 中断状态获取 470 boolean_t Gpio_GetIrqStatus(en_gpio_port_t enPort, en_gpio_pin_t enPin); 471 ///< GPIO 中断标志清除 472 en_result_t Gpio_ClearIrq(en_gpio_port_t enPort, en_gpio_pin_t enPin); 473 474 ///< GPIO 端口辅助功能配置 475 ///< GPIO 中断模式配置 476 en_result_t Gpio_SfIrqModeConfig(en_gpio_sf_irqmode_t enIrqMode); 477 ///< GPIO IR输出极性配置 478 en_result_t Gpio_SfIrPolConfig(en_gpio_sf_irpol_t enIrPolMode); 479 ///< GPIO HCLK输出配置 480 en_result_t Gpio_SfHClkOutputConfig(en_gpio_sf_hclkout_g_t enGate, en_gpio_sf_hclkout_div_t enDiv); 481 ///< GPIO PCLK输出配置 482 en_result_t Gpio_SfPClkOutputConfig(en_gpio_sf_pclkout_g_t enGate, en_gpio_sf_pclkout_div_t enDiv); 483 ///< GPIO 外部时钟输入配置 484 en_result_t Gpio_SfExtClkConfig(en_gpio_sf_ssn_extclk_t enExtClk); 485 ///< GPIO SPI SSN输入配置 486 en_result_t Gpio_SfSsnConfig(en_gpio_sf_ssnspi_t enSpi, en_gpio_sf_ssn_extclk_t enSsn); 487 ///< GPIO Timer 门控输入配置 488 en_result_t Gpio_SfTimGConfig(en_gpio_sf_tim_g_t enTimG, en_gpio_sf_t enSf); 489 ///< GPIO Timer ETR选择配置 490 en_result_t Gpio_SfTimEConfig(en_gpio_sf_tim_e_t enTimE, en_gpio_sf_t enSf); 491 ///< GPIO Timer 捕获输入配置 492 en_result_t Gpio_SfTimCConfig(en_gpio_sf_tim_c_t enTimC, en_gpio_sf_t enSf); 493 ///< GPIO PCA捕获选择配置 494 en_result_t Gpio_SfPcaConfig(en_gpio_sf_pca_t enPca, en_gpio_sf_t enSf); 495 496 497 //@} // GpioGroup 498 499 #ifdef __cplusplus 500 } 501 #endif 502 503 #endif /* __GPIO_H__ */ 504 /****************************************************************************** 505 * EOF (not truncated) 506 ******************************************************************************/ 507