rt-thread/bsp/hc32f4a0/Libraries/HC32F4A0_StdPeriph_Driver/inc/hc32f4a0_gpio.h

1409 lines
60 KiB
C

/**
*******************************************************************************
* @file hc32f4a0_gpio.h
* @brief This file contains all the functions prototypes of the GPIO driver
* library.
@verbatim
Change Logs:
Date Author Notes
2020-06-12 Zhangxl First version
2020-09-21 Zhangxl Typo, missing FUNC_I2C3 defintion
2020-10-27 Zhangxl Revise debug port definition
@endverbatim
*******************************************************************************
* Copyright (C) 2020, Huada Semiconductor Co., Ltd. All rights reserved.
*
* This software component is licensed by HDSC under BSD 3-Clause license
* (the "License"); You may not use this file except in compliance with the
* License. You may obtain a copy of the License at:
* opensource.org/licenses/BSD-3-Clause
*
*******************************************************************************
*/
#ifndef __HC32F4A0_GPIO_H__
#define __HC32F4A0_GPIO_H__
/* C binding of definitions if building with C++ compiler */
#ifdef __cplusplus
extern "C"
{
#endif
/*******************************************************************************
* Include files
******************************************************************************/
#include "hc32_common.h"
#include "ddl_config.h"
/**
* @addtogroup HC32F4A0_DDL_Driver
* @{
*/
/**
* @addtogroup DDL_GPIO
* @{
*/
#if (DDL_GPIO_ENABLE == DDL_ON)
/*******************************************************************************
* Global type definitions ('typedef')
******************************************************************************/
/**
* @defgroup GPIO_Global_Types GPIO Global Types
* @{
*/
/**
* @brief GPIO Pin Set and Reset enumeration
*/
typedef enum
{
Pin_Reset = 0U, /*!< Pin reset */
Pin_Set = 1U /*!< Pin set */
} en_pin_state_t;
/**
* @brief GPIO Init structure definition
*/
typedef struct
{
uint16_t u16PinState; /*!< Set pin state to High or Low, @ref GPIO_PinState_Sel for details */
uint16_t u16PinDir; /*!< Pin mode setting, @ref GPIO_PinDirection_Sel for details */
uint16_t u16PinOType; /*!< Output type setting, @ref GPIO_PinOutType_Sel for details */
uint16_t u16PinDrv; /*!< Pin drive capacity setting, @ref GPIO_PinDrv_Sel for details */
uint16_t u16Latch; /*!< Pin latch setting, @ref GPIO_PinLatch_Sel for details */
uint16_t u16PullUp; /*!< Internal pull-up resistor setting, @ref GPIO_PinPU_Sel for details */
uint16_t u16Invert; /*!< Pin input/output invert setting, @ref GPIO_PinInvert_Sel */
uint16_t u16PinIType; /*!< Input type setting, @ref GPIO_PinInType_Sel */
uint16_t u16ExInt; /*!< External interrupt pin setting, @ref GPIO_PinExInt_Sel for details */
uint16_t u16PinAttr; /*!< Digital or analog attribute setting, @ref GPIO_PinMode_Sel for details */
} stc_gpio_init_t;
/**
* @}
*/
/*******************************************************************************
* Global pre-processor symbols/macros ('#define')
******************************************************************************/
/**
* @defgroup GPIO_Global_Macros GPIO Global Macros
* @{
*/
/** @defgroup GPIO_pins_define GPIO pin source
* @{
*/
#define GPIO_PIN_00 (0x0001U) /*!< Pin 00 selected */
#define GPIO_PIN_01 (0x0002U) /*!< Pin 01 selected */
#define GPIO_PIN_02 (0x0004U) /*!< Pin 02 selected */
#define GPIO_PIN_03 (0x0008U) /*!< Pin 03 selected */
#define GPIO_PIN_04 (0x0010U) /*!< Pin 04 selected */
#define GPIO_PIN_05 (0x0020U) /*!< Pin 05 selected */
#define GPIO_PIN_06 (0x0040U) /*!< Pin 06 selected */
#define GPIO_PIN_07 (0x0080U) /*!< Pin 07 selected */
#define GPIO_PIN_08 (0x0100U) /*!< Pin 08 selected */
#define GPIO_PIN_09 (0x0200U) /*!< Pin 09 selected */
#define GPIO_PIN_10 (0x0400U) /*!< Pin 10 selected */
#define GPIO_PIN_11 (0x0800U) /*!< Pin 11 selected */
#define GPIO_PIN_12 (0x1000U) /*!< Pin 12 selected */
#define GPIO_PIN_13 (0x2000U) /*!< Pin 13 selected */
#define GPIO_PIN_14 (0x4000U) /*!< Pin 14 selected */
#define GPIO_PIN_15 (0x8000U) /*!< Pin 15 selected */
#define GPIO_PIN_ALL (0xFFFFU) /*!< All pins selected */
#define GPIO_PIN_MASK (0xFFFFU) /*!< PIN mask for assert test */
/**
* @}
*/
/** @defgroup GPIO_Port_source GPIO port source
* @{
*/
#define GPIO_PORT_A (0x00U) /*!< Port A selected */
#define GPIO_PORT_B (0x01U) /*!< Port B selected */
#define GPIO_PORT_C (0x02U) /*!< Port C selected */
#define GPIO_PORT_D (0x03U) /*!< Port D selected */
#define GPIO_PORT_E (0x04U) /*!< Port E selected */
#define GPIO_PORT_F (0x05U) /*!< Port F selected */
#define GPIO_PORT_G (0x06U) /*!< Port G selected */
#define GPIO_PORT_H (0x07U) /*!< Port H selected */
#define GPIO_PORT_I (0x08U) /*!< Port I selected */
/**
* @}
*/
/** @defgroup GPIO_Port_index GPIO port index
* @{
*/
#define GPIO_PORTA_IDX (0x0001U)
#define GPIO_PORTB_IDX (0x0002U)
#define GPIO_PORTC_IDX (0x0004U)
#define GPIO_PORTD_IDX (0x0008U)
#define GPIO_PORTE_IDX (0x0010U)
#define GPIO_PORTF_IDX (0x0020U)
#define GPIO_PORTG_IDX (0x0040U)
#define GPIO_PORTH_IDX (0x0080U)
#define GPIO_PORTI_IDX (0x0100U)
#define GPIO_PORT_ALL (0x01FFU)
#define GPIO_PORT_MASK (0x01FFU)
/**
* @}
*/
/**
* @}
*/
/** @defgroup GPIO_function_selection_define GPIO function selection
* @{
*/
/** @defgroup GPIO_PinFunction0 GPIO Function 0 selection
* @{
*/
#define GPIO_FUNC_0 (0x00U)
#define GPIO_FUNC_0_GPO (GPIO_FUNC_0) /* GPO function */
/**
* @}
*/
/** @defgroup GPIO_PinFunction1 GPIO Function 1 selection
* @{
*/
#define GPIO_FUNC_1 (0x01U)
#define GPIO_FUNC_1_FCMREF (GPIO_FUNC_1) /*!< Reference clock input for FCM */
#define GPIO_FUNC_1_CTCREF (GPIO_FUNC_1) /*!< Reference clock input for internal CTC */
#define GPIO_FUNC_1_RTCOUT (GPIO_FUNC_1) /*!< RTC 1Hz output */
#define GPIO_FUNC_1_VCOUT (GPIO_FUNC_1) /*!< Voltage comparator output */
#define GPIO_FUNC_1_ADTRG (GPIO_FUNC_1) /*!< ADC external trigger */
#define GPIO_FUNC_1_MCO (GPIO_FUNC_1) /*!< Clock output */
/**
* @}
*/
/** @defgroup GPIO_PinFunction2 GPIO Function 2 selection
* @{
*/
#define GPIO_FUNC_2 (0x02U)
#define GPIO_FUNC_2_TIM41 (GPIO_FUNC_2) /*!< TMR4 unit */
#define GPIO_FUNC_2_TIM41_PCT (GPIO_FUNC_2) /*!< TMR4 unit 1 basetimer count direction indicator */
#define GPIO_FUNC_2_TIM41_ADSM (GPIO_FUNC_2) /*!< TMR4 unit 1 special event */
#define GPIO_FUNC_2_TIM41_CLK (GPIO_FUNC_2) /*!< TMR4 unit 1 clock input */
#define GPIO_FUNC_2_TIM41_OUH (GPIO_FUNC_2) /*!< TMR4 unit 1 U-phase output high */
#define GPIO_FUNC_2_TIM41_OUL (GPIO_FUNC_2) /*!< TMR4 unit 1 U-phase output low */
#define GPIO_FUNC_2_TIM41_OVH (GPIO_FUNC_2) /*!< TMR4 unit 1 V-phase output high */
#define GPIO_FUNC_2_TIM41_OVL (GPIO_FUNC_2) /*!< TMR4 unit 1 V-phase output low */
#define GPIO_FUNC_2_TIM41_OWH (GPIO_FUNC_2) /*!< TMR4 unit 1 W-phase output high */
#define GPIO_FUNC_2_TIM41_OWL (GPIO_FUNC_2) /*!< TMR4 unit 1 W-phase output low */
#define GPIO_FUNC_2_TIM42 (GPIO_FUNC_2) /*!< TMR4 unit */
#define GPIO_FUNC_2_TIM42_PCT (GPIO_FUNC_2) /*!< TMR4 unit 2 basetimer count direction indicator */
#define GPIO_FUNC_2_TIM42_ADSM (GPIO_FUNC_2) /*!< TMR4 unit 2 special event */
#define GPIO_FUNC_2_TIM42_CLK (GPIO_FUNC_2) /*!< TMR4 unit 2 clock input */
#define GPIO_FUNC_2_TIM42_OUH (GPIO_FUNC_2) /*!< TMR4 unit 2 U-phase output high */
#define GPIO_FUNC_2_TIM42_OUL (GPIO_FUNC_2) /*!< TMR4 unit 2 U-phase output low */
#define GPIO_FUNC_2_TIM42_OVH (GPIO_FUNC_2) /*!< TMR4 unit 2 V-phase output high */
#define GPIO_FUNC_2_TIM42_OVL (GPIO_FUNC_2) /*!< TMR4 unit 2 V-phase output low */
#define GPIO_FUNC_2_TIM42_OWH (GPIO_FUNC_2) /*!< TMR4 unit 2 W-phase output high */
#define GPIO_FUNC_2_TIM42_OWL (GPIO_FUNC_2) /*!< TMR4 unit 2 W-phase output low */
#define GPIO_FUNC_2_TIM43 (GPIO_FUNC_2) /*!< TMR4 unit */
#define GPIO_FUNC_2_TIM43_PCT (GPIO_FUNC_2) /*!< TMR4 unit 3 basetimer count direction indicator */
#define GPIO_FUNC_2_TIM43_ADSM (GPIO_FUNC_2) /*!< TMR4 unit 3 special event */
#define GPIO_FUNC_2_TIM43_CLK (GPIO_FUNC_2) /*!< TMR4 unit 3 clock input */
#define GPIO_FUNC_2_TIM43_OUH (GPIO_FUNC_2) /*!< TMR4 unit 3 U-phase output high */
#define GPIO_FUNC_2_TIM43_OUL (GPIO_FUNC_2) /*!< TMR4 unit 3 U-phase output low */
#define GPIO_FUNC_2_TIM43_OVH (GPIO_FUNC_2) /*!< TMR4 unit 3 V-phase output high */
#define GPIO_FUNC_2_TIM43_OVL (GPIO_FUNC_2) /*!< TMR4 unit 3 V-phase output low */
#define GPIO_FUNC_2_TIM43_OWH (GPIO_FUNC_2) /*!< TMR4 unit 3 W-phase output high */
#define GPIO_FUNC_2_TIM43_OWL (GPIO_FUNC_2) /*!< TMR4 unit 3 W-phase output low */
/**
* @}
*/
/** @defgroup GPIO_PinFunction3 GPIO Function 3 selection
* @{
*/
#define GPIO_FUNC_3 (0x03U)
#define GPIO_FUNC_3_TIM6_TRIG (GPIO_FUNC_3) /*!< TMR6 trigger */
#define GPIO_FUNC_3_TIM6_TRIGA (GPIO_FUNC_3) /*!< TMR6 trigger A */
#define GPIO_FUNC_3_TIM6_TRIGB (GPIO_FUNC_3) /*!< TMR6 trigger B */
#define GPIO_FUNC_3_TIM6_TRIGC (GPIO_FUNC_3) /*!< TMR6 trigger C */
#define GPIO_FUNC_3_TIM6_TRIGD (GPIO_FUNC_3) /*!< TMR6 trigger D */
#define GPIO_FUNC_3_TIM61 (GPIO_FUNC_3) /*!< TMR6 unit 1 */
#define GPIO_FUNC_3_TIM61_PWMA (GPIO_FUNC_3) /*!< TMR6 unit 1 channel A PWM output */
#define GPIO_FUNC_3_TIM61_PWMB (GPIO_FUNC_3) /*!< TMR6 unit 1 channel B PWM output */
#define GPIO_FUNC_3_TIM62 (GPIO_FUNC_3) /*!< TMR6 unit 2 */
#define GPIO_FUNC_3_TIM62_PWMA (GPIO_FUNC_3) /*!< TMR6 unit 2 channel A PWM output */
#define GPIO_FUNC_3_TIM62_PWMB (GPIO_FUNC_3) /*!< TMR6 unit 2 channel B PWM output */
#define GPIO_FUNC_3_TIM63 (GPIO_FUNC_3) /*!< TMR6 unit 3 */
#define GPIO_FUNC_3_TIM63_PWMA (GPIO_FUNC_3) /*!< TMR6 unit 3 channel A PWM output */
#define GPIO_FUNC_3_TIM63_PWMB (GPIO_FUNC_3) /*!< TMR6 unit 3 channel B PWM output */
#define GPIO_FUNC_3_TIM64 (GPIO_FUNC_3) /*!< TMR6 unit 4 */
#define GPIO_FUNC_3_TIM64_PWMA (GPIO_FUNC_3) /*!< TMR6 unit 4 channel A PWM output */
#define GPIO_FUNC_3_TIM64_PWMB (GPIO_FUNC_3) /*!< TMR6 unit 4 channel B PWM output */
#define GPIO_FUNC_3_TIM65 (GPIO_FUNC_3) /*!< TMR6 unit 5 */
#define GPIO_FUNC_3_TIM65_PWMA (GPIO_FUNC_3) /*!< TMR6 unit 5 channel A PWM output */
#define GPIO_FUNC_3_TIM65_PWMB (GPIO_FUNC_3) /*!< TMR6 unit 5 channel B PWM output */
#define GPIO_FUNC_3_TIM66 (GPIO_FUNC_3) /*!< TMR6 unit 6 */
#define GPIO_FUNC_3_TIM66_PWMA (GPIO_FUNC_3) /*!< TMR6 unit 6 channel A PWM output */
#define GPIO_FUNC_3_TIM66_PWMB (GPIO_FUNC_3) /*!< TMR6 unit 6 channel B PWM output */
#define GPIO_FUNC_3_TIM67 (GPIO_FUNC_3) /*!< TMR6 unit 7 */
#define GPIO_FUNC_3_TIM67_PWMA (GPIO_FUNC_3) /*!< TMR6 unit 7 channel A PWM output */
#define GPIO_FUNC_3_TIM67_PWMB (GPIO_FUNC_3) /*!< TMR6 unit 7 channel B PWM output */
#define GPIO_FUNC_3_TIM68 (GPIO_FUNC_3) /*!< TMR6 unit 8 */
#define GPIO_FUNC_3_TIM68_PWMA (GPIO_FUNC_3) /*!< TMR6 unit 8 channel A PWM output */
#define GPIO_FUNC_3_TIM68_PWMB (GPIO_FUNC_3) /*!< TMR6 unit 8 channel B PWM output */
/**
* @}
*/
/** @defgroup GPIO_PinFunction4 GPIO Function 4 selection
* @{
*/
#define GPIO_FUNC_4 (0x04U)
#define GPIO_FUNC_4_TIMA1 (GPIO_FUNC_4) /*!< TMRA unit 1 */
#define GPIO_FUNC_4_TIMA1_TRIG (GPIO_FUNC_4) /*!< TMRA unit 1 trigger */
#define GPIO_FUNC_4_TIMA1_PWM1 (GPIO_FUNC_4) /*!< TMRA unit 1 channel 1 PWM output */
#define GPIO_FUNC_4_TIMA1_PWM2 (GPIO_FUNC_4) /*!< TMRA unit 1 channel 2 PWM output */
#define GPIO_FUNC_4_TIMA1_PWM3 (GPIO_FUNC_4) /*!< TMRA unit 1 channel 3 PWM output */
#define GPIO_FUNC_4_TIMA1_PWM4 (GPIO_FUNC_4) /*!< TMRA unit 1 channel 4 PWM output */
#define GPIO_FUNC_4_TIMA2_PWM (GPIO_FUNC_4) /*!< TMRA unit 2 PWM */
#define GPIO_FUNC_4_TIMA2_PWM1 (GPIO_FUNC_4) /*!< TMRA unit 2 channel 1 PWM output */
#define GPIO_FUNC_4_TIMA2_PWM2 (GPIO_FUNC_4) /*!< TMRA unit 2 channel 2 PWM output */
#define GPIO_FUNC_4_TIMA2_PWM3 (GPIO_FUNC_4) /*!< TMRA unit 2 channel 3 PWM output */
#define GPIO_FUNC_4_TIMA2_PWM4 (GPIO_FUNC_4) /*!< TMRA unit 2 channel 4 PWM output */
#define GPIO_FUNC_4_TIMA3 (GPIO_FUNC_4) /*!< TMRA unit 3 */
#define GPIO_FUNC_4_TIMA3_TRIG (GPIO_FUNC_4) /*!< TMRA unit 3 trigger */
#define GPIO_FUNC_4_TIMA3_PWM1 (GPIO_FUNC_4) /*!< TMRA unit 3 channel 1 PWM output */
#define GPIO_FUNC_4_TIMA3_PWM2 (GPIO_FUNC_4) /*!< TMRA unit 3 channel 2 PWM output */
#define GPIO_FUNC_4_TIMA3_PWM3 (GPIO_FUNC_4) /*!< TMRA unit 3 channel 3 PWM output */
#define GPIO_FUNC_4_TIMA3_PWM4 (GPIO_FUNC_4) /*!< TMRA unit 3 channel 4 PWM output */
#define GPIO_FUNC_4_TIMA4 (GPIO_FUNC_4) /*!< TMRA unit 4 */
#define GPIO_FUNC_4_TIMA4_TRIG (GPIO_FUNC_4) /*!< TMRA unit 4 trigger */
#define GPIO_FUNC_4_TIMA4_PWM1 (GPIO_FUNC_4) /*!< TMRA unit 4 channel 1 PWM output */
#define GPIO_FUNC_4_TIMA4_PWM2 (GPIO_FUNC_4) /*!< TMRA unit 4 channel 2 PWM output */
#define GPIO_FUNC_4_TIMA4_PWM3 (GPIO_FUNC_4) /*!< TMRA unit 4 channel 3 PWM output */
#define GPIO_FUNC_4_TIMA4_PWM4 (GPIO_FUNC_4) /*!< TMRA unit 4 channel 4 PWM output */
#define GPIO_FUNC_4_TIMA6 (GPIO_FUNC_4) /*!< TMRA unit 6 */
#define GPIO_FUNC_4_TIMA6_PWM1 (GPIO_FUNC_4) /*!< TMRA unit 6 channel 1 PWM output */
#define GPIO_FUNC_4_TIMA6_PWM2 (GPIO_FUNC_4) /*!< TMRA unit 6 channel 2 PWM output */
#define GPIO_FUNC_4_TIMA6_PWM3 (GPIO_FUNC_4) /*!< TMRA unit 6 channel 3 PWM output */
#define GPIO_FUNC_4_TIMA6_PWM4 (GPIO_FUNC_4) /*!< TMRA unit 6 channel 4 PWM output */
#define GPIO_FUNC_4_TIMA7 (GPIO_FUNC_4) /*!< TMRA unit 7 */
#define GPIO_FUNC_4_TIMA7_PWM1 (GPIO_FUNC_4) /*!< TMRA unit 7 channel 1 PWM output */
#define GPIO_FUNC_4_TIMA7_PWM2 (GPIO_FUNC_4) /*!< TMRA unit 7 channel 2 PWM output */
#define GPIO_FUNC_4_TIMA7_PWM3 (GPIO_FUNC_4) /*!< TMRA unit 7 channel 3 PWM output */
#define GPIO_FUNC_4_TIMA7_PWM4 (GPIO_FUNC_4) /*!< TMRA unit 7 channel 4 PWM output */
#define GPIO_FUNC_4_TIMA8 (GPIO_FUNC_4) /*!< TMRA unit 8 */
#define GPIO_FUNC_4_TIMA8_PWM1 (GPIO_FUNC_4) /*!< TMRA unit 8 channel 1 PWM output */
#define GPIO_FUNC_4_TIMA8_PWM2 (GPIO_FUNC_4) /*!< TMRA unit 8 channel 2 PWM output */
#define GPIO_FUNC_4_TIMA8_PWM3 (GPIO_FUNC_4) /*!< TMRA unit 8 channel 3 PWM output */
#define GPIO_FUNC_4_TIMA8_PWM4 (GPIO_FUNC_4) /*!< TMRA unit 8 channel 4 PWM output */
#define GPIO_FUNC_4_TIMA9 (GPIO_FUNC_4) /*!< TMRA unit 9 */
#define GPIO_FUNC_4_TIMA9_PWM1 (GPIO_FUNC_4) /*!< TMRA unit 9 channel 1 PWM output */
#define GPIO_FUNC_4_TIMA9_PWM2 (GPIO_FUNC_4) /*!< TMRA unit 9 channel 2 PWM output */
#define GPIO_FUNC_4_TIMA9_PWM3 (GPIO_FUNC_4) /*!< TMRA unit 9 channel 3 PWM output */
#define GPIO_FUNC_4_TIMA9_PWM4 (GPIO_FUNC_4) /*!< TMRA unit 9 channel 4 PWM output */
#define GPIO_FUNC_4_TIMA10 (GPIO_FUNC_4) /*!< TMRA unit 10 */
#define GPIO_FUNC_4_TIMA10_PWM1 (GPIO_FUNC_4) /*!< TMRA unit 10 channel 1 PWM output */
#define GPIO_FUNC_4_TIMA10_PWM2 (GPIO_FUNC_4) /*!< TMRA unit 10 channel 2 PWM output */
#define GPIO_FUNC_4_TIMA10_PWM3 (GPIO_FUNC_4) /*!< TMRA unit 10 channel 3 PWM output */
#define GPIO_FUNC_4_TIMA10_PWM4 (GPIO_FUNC_4) /*!< TMRA unit 10 channel 4 PWM output */
/**
* @}
*/
/** @defgroup GPIO_PinFunction5 GPIO Function 5 selection
* @{
*/
#define GPIO_FUNC_5 (0x05U)
#define GPIO_FUNC_5_TIMA2_TRIG (GPIO_FUNC_5) /*!< TMRA unit 2 trigger */
#define GPIO_FUNC_5_TIMA3 (GPIO_FUNC_5) /*!< TMRA unit 3 */
#define GPIO_FUNC_5_TIMA3_TRIG (GPIO_FUNC_5) /*!< TMRA unit 3 trigger */
#define GPIO_FUNC_5_TIMA3_PWM1 (GPIO_FUNC_5) /*!< TMRA unit 3 channel 1 PWM output */
#define GPIO_FUNC_5_TIMA3_PWM2 (GPIO_FUNC_5) /*!< TMRA unit 3 channel 2 PWM output */
#define GPIO_FUNC_5_TIMA3_PWM3 (GPIO_FUNC_5) /*!< TMRA unit 3 channel 3 PWM output */
#define GPIO_FUNC_5_TIMA3_PWM4 (GPIO_FUNC_5) /*!< TMRA unit 3 channel 4 PWM output */
#define GPIO_FUNC_5_TIMA4 (GPIO_FUNC_5) /*!< TMRA unit 4 */
#define GPIO_FUNC_5_TIMA4_PWM1 (GPIO_FUNC_5) /*!< TMRA unit 4 channel 1 PWM output */
#define GPIO_FUNC_5_TIMA4_PWM2 (GPIO_FUNC_5) /*!< TMRA unit 4 channel 2 PWM output */
#define GPIO_FUNC_5_TIMA4_PWM3 (GPIO_FUNC_5) /*!< TMRA unit 4 channel 3 PWM output */
#define GPIO_FUNC_5_TIMA4_PWM4 (GPIO_FUNC_5) /*!< TMRA unit 4 channel 4 PWM output */
#define GPIO_FUNC_5_TIMA5 (GPIO_FUNC_5) /*!< TMRA unit 5 */
#define GPIO_FUNC_5_TIMA5_TRIG (GPIO_FUNC_5) /*!< TMRA unit 5 trigger */
#define GPIO_FUNC_5_TIMA5_PWM1 (GPIO_FUNC_5) /*!< TMRA unit 5 channel 1 PWM output */
#define GPIO_FUNC_5_TIMA5_PWM2 (GPIO_FUNC_5) /*!< TMRA unit 5 channel 2 PWM output */
#define GPIO_FUNC_5_TIMA5_PWM3 (GPIO_FUNC_5) /*!< TMRA unit 5 channel 3 PWM output */
#define GPIO_FUNC_5_TIMA5_PWM4 (GPIO_FUNC_5) /*!< TMRA unit 5 channel 4 PWM output */
#define GPIO_FUNC_5_TIMA6 (GPIO_FUNC_5) /*!< TMRA unit 6 */
#define GPIO_FUNC_5_TIMA6_TRIG (GPIO_FUNC_5) /*!< TMRA unit 6 trigger */
#define GPIO_FUNC_5_TIMA6_PWM1 (GPIO_FUNC_5) /*!< TMRA unit 6 channel 1 PWM output */
#define GPIO_FUNC_5_TIMA6_PWM2 (GPIO_FUNC_5) /*!< TMRA unit 6 channel 2 PWM output */
#define GPIO_FUNC_5_TIMA6_PWM3 (GPIO_FUNC_5) /*!< TMRA unit 6 channel 3 PWM output */
#define GPIO_FUNC_5_TIMA6_PWM4 (GPIO_FUNC_5) /*!< TMRA unit 6 channel 4 PWM output */
#define GPIO_FUNC_5_TIMA9 (GPIO_FUNC_5) /*!< TMRA unit 9 */
#define GPIO_FUNC_5_TIMA9_TRIG (GPIO_FUNC_5) /*!< TMRA unit 9 trigger */
#define GPIO_FUNC_5_TIMA9_PWM1 (GPIO_FUNC_5) /*!< TMRA unit 9 channel 1 PWM output */
#define GPIO_FUNC_5_TIMA9_PWM2 (GPIO_FUNC_5) /*!< TMRA unit 9 channel 2 PWM output */
#define GPIO_FUNC_5_TIMA9_PWM3 (GPIO_FUNC_5) /*!< TMRA unit 9 channel 3 PWM output */
#define GPIO_FUNC_5_TIMA9_PWM4 (GPIO_FUNC_5) /*!< TMRA unit 9 channel 4 PWM output */
#define GPIO_FUNC_5_TIMA11_PWM (GPIO_FUNC_5) /*!< TMRA unit 11 PWM */
#define GPIO_FUNC_5_TIMA11_PWM1 (GPIO_FUNC_5) /*!< TMRA unit 11 channel 1 PWM output */
#define GPIO_FUNC_5_TIMA11_PWM2 (GPIO_FUNC_5) /*!< TMRA unit 11 channel 2 PWM output */
#define GPIO_FUNC_5_TIMA11_PWM3 (GPIO_FUNC_5) /*!< TMRA unit 11 channel 3 PWM output */
#define GPIO_FUNC_5_TIMA11_PWM4 (GPIO_FUNC_5) /*!< TMRA unit 11 channel 4 PWM output */
#define GPIO_FUNC_5_TIMA12_PWM (GPIO_FUNC_5) /*!< TMRA unit 12 PWM */
#define GPIO_FUNC_5_TIMA12_PWM1 (GPIO_FUNC_5) /*!< TMRA unit 12 channel 1 PWM output */
#define GPIO_FUNC_5_TIMA12_PWM2 (GPIO_FUNC_5) /*!< TMRA unit 12 channel 2 PWM output */
#define GPIO_FUNC_5_TIMA12_PWM3 (GPIO_FUNC_5) /*!< TMRA unit 12 channel 3 PWM output */
#define GPIO_FUNC_5_TIMA12_PWM4 (GPIO_FUNC_5) /*!< TMRA unit 12 channel 4 PWM output */
/**
* @}
*/
/** @defgroup GPIO_PinFunction6 GPIO Function 6 selection
* @{
*/
#define GPIO_FUNC_6 (0x06U)
#define GPIO_FUNC_6_TIMA1_TRIG (GPIO_FUNC_6) /*!< TMRA unit 1 trigger */
#define GPIO_FUNC_6_TIMA2_TRIG (GPIO_FUNC_6) /*!< TMRA unit 2 trigger */
#define GPIO_FUNC_6_TIMA3_TRIG (GPIO_FUNC_6) /*!< TMRA unit 3 trigger */
#define GPIO_FUNC_6_TIMA4_TRIG (GPIO_FUNC_6) /*!< TMRA unit 4 trigger */
#define GPIO_FUNC_6_TIMA6_TRIG (GPIO_FUNC_6) /*!< TMRA unit 6 trigger */
#define GPIO_FUNC_6_TIMA7_TRIG (GPIO_FUNC_6) /*!< TMRA unit 7 trigger */
#define GPIO_FUNC_6_TIMA8_TRIG (GPIO_FUNC_6) /*!< TMRA unit 8 trigger */
#define GPIO_FUNC_6_TIMA11_TRIG (GPIO_FUNC_6) /*!< TMRA unit 11 trigger */
#define GPIO_FUNC_6_TIMA12_TRIG (GPIO_FUNC_6) /*!< TMRA unit 12 trigger */
#define GPIO_FUNC_6_TIMA5 (GPIO_FUNC_6) /*!< TMRA unit 5 */
#define GPIO_FUNC_6_TIMA5_TRIG (GPIO_FUNC_6) /*!< TMRA unit 5 trigger */
#define GPIO_FUNC_6_TIMA5_PWM1 (GPIO_FUNC_6) /*!< TMRA unit 5 channel 1 PWM output */
#define GPIO_FUNC_6_TIMA5_PWM2 (GPIO_FUNC_6) /*!< TMRA unit 5 channel 2 PWM output */
#define GPIO_FUNC_6_TIMA5_PWM3 (GPIO_FUNC_6) /*!< TMRA unit 5 channel 3 PWM output */
#define GPIO_FUNC_6_TIMA5_PWM4 (GPIO_FUNC_6) /*!< TMRA unit 5 channel 4 PWM output */
#define GPIO_FUNC_6_TIMA9 (GPIO_FUNC_6) /*!< TMRA unit 9 */
#define GPIO_FUNC_6_TIMA9_TRIG (GPIO_FUNC_6) /*!< TMRA unit 9 trigger */
#define GPIO_FUNC_6_TIMA9_PWM1 (GPIO_FUNC_6) /*!< TMRA unit 9 channel 1 PWM output */
#define GPIO_FUNC_6_TIMA9_PWM2 (GPIO_FUNC_6) /*!< TMRA unit 9 channel 2 PWM output */
#define GPIO_FUNC_6_TIMA9_PWM3 (GPIO_FUNC_6) /*!< TMRA unit 9 channel 3 PWM output */
#define GPIO_FUNC_6_TIMA9_PWM4 (GPIO_FUNC_6) /*!< TMRA unit 9 channel 4 PWM output */
#define GPIO_FUNC_6_TIMA10 (GPIO_FUNC_6) /*!< TMRA unit 10 */
#define GPIO_FUNC_6_TIMA10_TRIG (GPIO_FUNC_6) /*!< TMRA unit 10 trigger */
#define GPIO_FUNC_6_TIMA10_PWM1 (GPIO_FUNC_6) /*!< TMRA unit 10 channel 1 PWM output */
#define GPIO_FUNC_6_TIMA10_PWM2 (GPIO_FUNC_6) /*!< TMRA unit 10 channel 2 PWM output */
#define GPIO_FUNC_6_TIMA10_PWM3 (GPIO_FUNC_6) /*!< TMRA unit 10 channel 3 PWM output */
#define GPIO_FUNC_6_TIMA10_PWM4 (GPIO_FUNC_6) /*!< TMRA unit 10 channel 4 PWM output */
#define GPIO_FUNC_6_TIM65_PWMA (GPIO_FUNC_6) /*!< TMR6 unit 5 channel A PWM output */
#define GPIO_FUNC_6_TIM66_PWMA (GPIO_FUNC_6) /*!< TMR6 unit 6 channel A PWM output */
#define GPIO_FUNC_6_TIM67_PWMA (GPIO_FUNC_6) /*!< TMR6 unit 7 channel A PWM output */
#define GPIO_FUNC_6_TIM68_PWMA (GPIO_FUNC_6) /*!< TMR6 unit 8 channel A PWM output */
#define GPIO_FUNC_6_EMB_PORT (GPIO_FUNC_6) /*!< EMB port */
#define GPIO_FUNC_6_EMB_PORT0 (GPIO_FUNC_6) /*!< EMB port 0 */
#define GPIO_FUNC_6_EMB_PORT1 (GPIO_FUNC_6) /*!< EMB port 1 */
#define GPIO_FUNC_6_EMB_PORT2 (GPIO_FUNC_6) /*!< EMB port 2 */
#define GPIO_FUNC_6_EMB_PORT3 (GPIO_FUNC_6) /*!< EMB port 3 */
/**
* @}
*/
/** @defgroup GPIO_PinFunction7 GPIO Function 7 selection
* @{
*/
#define GPIO_FUNC_7 (0x07U)
#define GPIO_FUNC_7_USART1 (GPIO_FUNC_7) /*!< USART1 */
#define GPIO_FUNC_7_USART1_CK (GPIO_FUNC_7) /*!< USART1 CK */
#define GPIO_FUNC_7_USART1_CTS (GPIO_FUNC_7) /*!< USART1 CTS */
#define GPIO_FUNC_7_USART1_RTS (GPIO_FUNC_7) /*!< USART1 RTS */
#define GPIO_FUNC_7_USART2 (GPIO_FUNC_7) /*!< USART2 */
#define GPIO_FUNC_7_USART2_CK (GPIO_FUNC_7) /*!< USART2 CK */
#define GPIO_FUNC_7_USART2_CTS (GPIO_FUNC_7) /*!< USART2 CTS */
#define GPIO_FUNC_7_USART2_RTS (GPIO_FUNC_7) /*!< USART2 RTS */
#define GPIO_FUNC_7_USART3 (GPIO_FUNC_7) /*!< USART3 */
#define GPIO_FUNC_7_USART3_CK (GPIO_FUNC_7) /*!< USART3 CK */
#define GPIO_FUNC_7_USART3_CTS (GPIO_FUNC_7) /*!< USART3 CTS */
#define GPIO_FUNC_7_USART3_RTS (GPIO_FUNC_7) /*!< USART3 RTS */
#define GPIO_FUNC_7_USART4 (GPIO_FUNC_7) /*!< USART4 */
#define GPIO_FUNC_7_USART4_CK (GPIO_FUNC_7) /*!< USART4 CK */
#define GPIO_FUNC_7_USART4_CTS (GPIO_FUNC_7) /*!< USART4 CTS */
#define GPIO_FUNC_7_USART4_RTS (GPIO_FUNC_7) /*!< USART4 RTS */
#define GPIO_FUNC_7_USART5 (GPIO_FUNC_7) /*!< USART5 */
#define GPIO_FUNC_7_USART5_CK (GPIO_FUNC_7) /*!< USART5 CK */
#define GPIO_FUNC_7_USART5_CTS (GPIO_FUNC_7) /*!< USART5 CTS */
#define GPIO_FUNC_7_USART5_RTS (GPIO_FUNC_7) /*!< USART5 RTS */
#define GPIO_FUNC_7_USART6 (GPIO_FUNC_7) /*!< USART6 */
#define GPIO_FUNC_7_USART6_CK (GPIO_FUNC_7) /*!< USART6 CK */
#define GPIO_FUNC_7_USART6_CTS (GPIO_FUNC_7) /*!< USART6 CTS */
#define GPIO_FUNC_7_USART6_RTS (GPIO_FUNC_7) /*!< USART6 RTS */
#define GPIO_FUNC_7_USART7 (GPIO_FUNC_7) /*!< USART7 */
#define GPIO_FUNC_7_USART7_CK (GPIO_FUNC_7) /*!< USART7 CK */
#define GPIO_FUNC_7_USART7_CTS (GPIO_FUNC_7) /*!< USART7 CTS */
#define GPIO_FUNC_7_USART7_RTS (GPIO_FUNC_7) /*!< USART7 RTS */
#define GPIO_FUNC_7_USART8 (GPIO_FUNC_7) /*!< USART8 */
#define GPIO_FUNC_7_USART8_CK (GPIO_FUNC_7) /*!< USART8 CK */
#define GPIO_FUNC_7_USART8_CTS (GPIO_FUNC_7) /*!< USART8 CTS */
#define GPIO_FUNC_7_USART8_RTS (GPIO_FUNC_7) /*!< USART8 RTS */
#define GPIO_FUNC_7_USART9 (GPIO_FUNC_7) /*!< USART9 */
#define GPIO_FUNC_7_USART9_CK (GPIO_FUNC_7) /*!< USART9 CK */
#define GPIO_FUNC_7_USART9_CTS (GPIO_FUNC_7) /*!< USART9 CTS */
#define GPIO_FUNC_7_USART9_RTS (GPIO_FUNC_7) /*!< USART9 RTS */
#define GPIO_FUNC_7_USART10 (GPIO_FUNC_7) /*!< USART10 */
#define GPIO_FUNC_7_USART10_CK (GPIO_FUNC_7) /*!< USART10 CK */
#define GPIO_FUNC_7_USART10_CTS (GPIO_FUNC_7) /*!< USART10 CTS */
#define GPIO_FUNC_7_USART10_RTS (GPIO_FUNC_7) /*!< USART10 RTS */
/**
* @}
*/
/** @defgroup GPIO_PinFunction8 GPIO Function 8 selection
* @{
*/
#define GPIO_FUNC_8 (0x08U)
#define GPIO_FUNC_8_KEYSCAN (GPIO_FUNC_8) /*!< KEYSCAN */
/**
* @}
*/
/** @defgroup GPIO_PinFunction9 GPIO Function 9 selection
* @{
*/
#define GPIO_FUNC_9 (0x09U)
#define GPIO_FUNC_9_SDIO (GPIO_FUNC_9) /*!< SDIO */
#define GPIO_FUNC_9_SDIO1 (GPIO_FUNC_9) /*!< SDIO1 */
#define GPIO_FUNC_9_SDIO1_WP (GPIO_FUNC_9) /*!< SDIO1 WP */
#define GPIO_FUNC_9_SDIO1_CD (GPIO_FUNC_9) /*!< SDIO1 CD */
#define GPIO_FUNC_9_SDIO1_CMD (GPIO_FUNC_9) /*!< SDIO1 CMD */
#define GPIO_FUNC_9_SDIO1_CK (GPIO_FUNC_9) /*!< SDIO1 CK */
#define GPIO_FUNC_9_SDIO1_DATA (GPIO_FUNC_9) /*!< SDIO1 data bus */
#define GPIO_FUNC_9_SDIO2 (GPIO_FUNC_9) /*!< SDIO2 */
#define GPIO_FUNC_9_SDIO2_WP (GPIO_FUNC_9) /*!< SDIO2 WP */
#define GPIO_FUNC_9_SDIO2_CD (GPIO_FUNC_9) /*!< SDIO2 CD */
#define GPIO_FUNC_9_SDIO2_CMD (GPIO_FUNC_9) /*!< SDIO2 CMD */
#define GPIO_FUNC_9_SDIO2_CK (GPIO_FUNC_9) /*!< SDIO2 CK */
#define GPIO_FUNC_9_SDIO2_DATA (GPIO_FUNC_9) /*!< SDIO2 data bus */
/**
* @}
*/
/** @defgroup GPIO_PinFunction10 GPIO Function 10 selection
* @{
*/
#define GPIO_FUNC_10 (0x0AU)
#define GPIO_FUNC_10_USBF (GPIO_FUNC_10) /*!< USB Full-speed */
#define GPIO_FUNC_10_USBF_DRVVBUS (GPIO_FUNC_10) /*!< USB Full-speed host VBUS ctrl */
#define GPIO_FUNC_10_USBF_SOF (GPIO_FUNC_10) /*!< USB Full-speed SOF */
#define GPIO_FUNC_10_USBF_VBUS (GPIO_FUNC_10) /*!< USB Full-speed slave VBUS */
#define GPIO_FUNC_10_USBF_ID (GPIO_FUNC_10) /*!< USB Full-speed */
#define GPIO_FUNC_10_USBH (GPIO_FUNC_10) /*!< USB High-speed */
#define GPIO_FUNC_10_USBH_ULPI_DIR (GPIO_FUNC_10) /*!< USB High-speed ULPI DIR */
#define GPIO_FUNC_10_USBH_ULPI_STP (GPIO_FUNC_10) /*!< USB High-speed ULPI STP */
#define GPIO_FUNC_10_USBH_ULPI_NXT (GPIO_FUNC_10) /*!< USB High-speed ULPI NXT */
#define GPIO_FUNC_10_USBH_ULPI_CK (GPIO_FUNC_10) /*!< USB High-speed ULPI CK */
#define GPIO_FUNC_10_USBH_ULPI_DRVVBUS (GPIO_FUNC_10) /*!< USB High-speed host VBUS ctrl */
#define GPIO_FUNC_10_USBH_ULPI_DATA (GPIO_FUNC_10) /*!< USB High-speed ULPI data bus */
#define GPIO_FUNC_10_TIM22_PWM (GPIO_FUNC_10) /*!< TMR2 unit 2 PWM */
#define GPIO_FUNC_10_TIM22_PWMA (GPIO_FUNC_10) /*!< TMR2 unit 2 channel A PWM */
#define GPIO_FUNC_10_TIM22_PWMB (GPIO_FUNC_10) /*!< TMR2 unit 2 channel B PWM */
#define GPIO_FUNC_10_TIM24_PWM (GPIO_FUNC_10) /*!< TMR2 unit 4 PWM */
#define GPIO_FUNC_10_TIM24_PWMA (GPIO_FUNC_10) /*!< TMR2 unit 4 channel A PWM */
#define GPIO_FUNC_10_TIM24_PWMB (GPIO_FUNC_10) /*!< TMR2 unit 4 channel B PWM */
/**
* @}
*/
/** @defgroup GPIO_PinFunction11 GPIO Function 11 selection
* @{
*/
#define GPIO_FUNC_11 (0x0BU)
#define GPIO_FUNC_11_ETH (GPIO_FUNC_11) /*!< Ethernet */
#define GPIO_FUNC_11_ETH_TXD (GPIO_FUNC_11) /*!< ETH TXD */
#define GPIO_FUNC_11_ETH_TXEN (GPIO_FUNC_11) /*!< ETH TX enable */
#define GPIO_FUNC_11_ETH_TXCLK (GPIO_FUNC_11) /*!< ETH TX clock */
#define GPIO_FUNC_11_ETH_RXD (GPIO_FUNC_11) /*!< ETH RXD */
#define GPIO_FUNC_11_ETH_RXER (GPIO_FUNC_11) /*!< ETH RX error */
#define GPIO_FUNC_11_ETH_RXCLK (GPIO_FUNC_11) /*!< ETH RX clock */
#define GPIO_FUNC_11_ETH_RXDV (GPIO_FUNC_11) /*!< ETH RX data valid */
#define GPIO_FUNC_11_ETH_SMI_MDIO (GPIO_FUNC_11) /*!< SMI data */
#define GPIO_FUNC_11_ETH_SMI_MDC (GPIO_FUNC_11) /*!< SMI clock */
#define GPIO_FUNC_11_ETH_CRS (GPIO_FUNC_11) /*!< ETH MII carrier sense */
#define GPIO_FUNC_11_ETH_COL (GPIO_FUNC_11) /*!< ETH MII collisioin detected */
#define GPIO_FUNC_11_ETH_PPS_OUT (GPIO_FUNC_11) /*!< ETH PPS out */
/**
* @}
*/
/** @defgroup GPIO_PinFunction12 GPIO Function 12 selection
* @{
*/
#define GPIO_FUNC_12 (0x0CU)
#define GPIO_FUNC_12_EXMC (GPIO_FUNC_12) /*!< Ext. Bus */
#define GPIO_FUNC_12_EXMC_CLE (GPIO_FUNC_12) /*!< Ext. Bus NAND CMD latch */
#define GPIO_FUNC_12_EXMC_ALE (GPIO_FUNC_12) /*!< Ext. Bus NAND ADDR latch */
#define GPIO_FUNC_12_EXMC_RB (GPIO_FUNC_12) /*!< Ext. Bus NAND busy or SRAM wait(RB0) input */
#define GPIO_FUNC_12_EXMC_CE (GPIO_FUNC_12) /*!< Ext. Bus chip enable */
#define GPIO_FUNC_12_EXMC_WE (GPIO_FUNC_12) /*!< Ext. Bus write enable */
#define GPIO_FUNC_12_EXMC_OE (GPIO_FUNC_12) /*!< Ext. Bus output enable */
#define GPIO_FUNC_12_EXMC_BAA (GPIO_FUNC_12) /*!< Ext. Bus SRAM BAA */
#define GPIO_FUNC_12_EXMC_ADV (GPIO_FUNC_12) /*!< Ext. Bus SRAM ADDR latch */
#define GPIO_FUNC_12_EXMC_CLK (GPIO_FUNC_12) /*!< Ext. Bus clock output */
#define GPIO_FUNC_12_EXMC_ADDR (GPIO_FUNC_12) /*!< Ext. Bus Addr. Bus */
#define GPIO_FUNC_12_EXMC_DATA (GPIO_FUNC_12) /*!< Ext. Bus data Bus */
#define GPIO_FUNC_12_USBH (GPIO_FUNC_12) /*!< USB High-speed */
#define GPIO_FUNC_12_USBH_SOF (GPIO_FUNC_12) /*!< USB High-speed SOF */
#define GPIO_FUNC_12_USBH_VBUS (GPIO_FUNC_12) /*!< USB High-speed slave VBUS */
#define GPIO_FUNC_12_USBH_ID (GPIO_FUNC_12) /*!< USB High-speed ID */
#define GPIO_FUNC_12_I2S2_EXCK (GPIO_FUNC_12) /*!< I2S2 EXCK */
/**
* @}
*/
/** @defgroup GPIO_PinFunction13 GPIO Function 13 selection
* @{
*/
#define GPIO_FUNC_13 (0x0DU)
#define GPIO_FUNC_13_DVP (GPIO_FUNC_13) /*!< DVP */
#define GPIO_FUNC_13_DVP_DATA (GPIO_FUNC_13) /*!< DVP data bus */
#define GPIO_FUNC_13_DVP_PIXCLK (GPIO_FUNC_13) /*!< DVP pix clock */
#define GPIO_FUNC_13_DVP_HSYNC (GPIO_FUNC_13) /*!< DVP line sync */
#define GPIO_FUNC_13_DVP_VSYNC (GPIO_FUNC_13) /*!< DVP frame sync */
#define GPIO_FUNC_13_EXMC (GPIO_FUNC_13) /*!< Ext. Bus */
#define GPIO_FUNC_13_EXMC_A16 (GPIO_FUNC_13) /*!< Ext. Bus address 16 */
#define GPIO_FUNC_13_EXMC_A17 (GPIO_FUNC_13) /*!< Ext. Bus address 17 */
/**
* @}
*/
/** @defgroup GPIO_PinFunction14 GPIO Function 14 selection
* @{
*/
#define GPIO_FUNC_14 (0x0EU)
#define GPIO_FUNC_14_EP (GPIO_FUNC_14) /*!< Event Port */
#define GPIO_FUNC_14_EP1 (GPIO_FUNC_14) /*!< Event Port Group 1 */
#define GPIO_FUNC_14_EP2 (GPIO_FUNC_14) /*!< Event Port Group 2 */
#define GPIO_FUNC_14_EP3 (GPIO_FUNC_14) /*!< Event Port Group 3 */
#define GPIO_FUNC_14_EP4 (GPIO_FUNC_14) /*!< Event Port Group 4 */
/**
* @}
*/
/** @defgroup GPIO_PinFunction15 GPIO Function 15 selection
* @{
*/
#define GPIO_FUNC_15 (0x0FU)
#define GPIO_FUNC_15_EVENTOUT (GPIO_FUNC_15) /*!< Event Out */
/**
* @}
*/
/** @defgroup GPIO_PinFunction16 GPIO Function 16 selection
* @{
*/
#define GPIO_FUNC_16 (0x10U)
#define GPIO_FUNC_16_TIM21 (GPIO_FUNC_16) /*!< TMR2 unit 1 */
#define GPIO_FUNC_16_TIM21_CLKA (GPIO_FUNC_16) /*!< TMR2 unit 1 channel A CLK input */
#define GPIO_FUNC_16_TIM21_CLKB (GPIO_FUNC_16) /*!< TMR2 unit 1 channel B CLK input */
#define GPIO_FUNC_16_TIM21_PWMA (GPIO_FUNC_16) /*!< TMR2 unit 1 channel A PWM output */
#define GPIO_FUNC_16_TIM21_PWMB (GPIO_FUNC_16) /*!< TMR2 unit 1 channel B PWM output */
#define GPIO_FUNC_16_TIM22 (GPIO_FUNC_16) /*!< TMR2 unit 2 */
#define GPIO_FUNC_16_TIM22_CLKA (GPIO_FUNC_16) /*!< TMR2 unit 2 channel A CLK input */
#define GPIO_FUNC_16_TIM22_CLKB (GPIO_FUNC_16) /*!< TMR2 unit 2 channel B CLK input */
#define GPIO_FUNC_16_TIM22_PWMA (GPIO_FUNC_16) /*!< TMR2 unit 2 channel A PWM output */
#define GPIO_FUNC_16_TIM22_PWMB (GPIO_FUNC_16) /*!< TMR2 unit 2 channel B PWM output */
#define GPIO_FUNC_16_TIM23 (GPIO_FUNC_16) /*!< TMR2 unit 3 */
#define GPIO_FUNC_16_TIM23_CLKA (GPIO_FUNC_16) /*!< TMR2 unit 3 channel A CLK input */
#define GPIO_FUNC_16_TIM23_CLKB (GPIO_FUNC_16) /*!< TMR2 unit 3 channel B CLK input */
#define GPIO_FUNC_16_TIM23_PWMA (GPIO_FUNC_16) /*!< TMR2 unit 3 channel A PWM output */
#define GPIO_FUNC_16_TIM23_PWMB (GPIO_FUNC_16) /*!< TMR2 unit 3 channel B PWM output */
#define GPIO_FUNC_16_TIM24 (GPIO_FUNC_16) /*!< TMR2 unit 4 */
#define GPIO_FUNC_16_TIM24_CLKA (GPIO_FUNC_16) /*!< TMR2 unit 4 channel A CLK input */
#define GPIO_FUNC_16_TIM24_CLKB (GPIO_FUNC_16) /*!< TMR2 unit 4 channel B CLK input */
#define GPIO_FUNC_16_TIM24_PWMA (GPIO_FUNC_16) /*!< TMR2 unit 4 channel A PWM output */
#define GPIO_FUNC_16_TIM24_PWMB (GPIO_FUNC_16) /*!< TMR2 unit 4 channel B PWM output */
#define GPIO_FUNC_16_TIM41_CLK (GPIO_FUNC_16) /*!< TMR4 unit 1 CLK input */
#define GPIO_FUNC_16_TIM42_CLK (GPIO_FUNC_16) /*!< TMR4 unit 2 CLK input */
#define GPIO_FUNC_16_TIM42_OUL (GPIO_FUNC_16) /*!< TMR4 unit 2 U-phase low output */
#define GPIO_FUNC_16_TIM42_OVL (GPIO_FUNC_16) /*!< TMR4 unit 2 V-phase low output */
#define GPIO_FUNC_16_TIM42_OWL (GPIO_FUNC_16) /*!< TMR4 unit 2 W-phase low output */
#define GPIO_FUNC_16_TIM43_ADSM (GPIO_FUNC_16) /*!< TMR4 unit 3 special event */
/**
* @}
*/
/** @defgroup GPIO_PinFunction17 GPIO Function 17 selection
* @{
*/
#define GPIO_FUNC_17 (0x11U)
#define GPIO_FUNC_17_I2S1 (GPIO_FUNC_17) /*!< I2S1 */
#define GPIO_FUNC_17_I2S1_MCK (GPIO_FUNC_17) /*!< I2S1 MCK */
#define GPIO_FUNC_17_I2S1_EXCK (GPIO_FUNC_17) /*!< I2S1 EXCK */
#define GPIO_FUNC_17_I2S1_SDIN (GPIO_FUNC_17) /*!< I2S1 SDIN */
#define GPIO_FUNC_17_I2S2 (GPIO_FUNC_17) /*!< I2S2 */
#define GPIO_FUNC_17_I2S2_CK (GPIO_FUNC_17) /*!< I2S2 CK */
#define GPIO_FUNC_17_I2S2_MCK (GPIO_FUNC_17) /*!< I2S2 MCK */
#define GPIO_FUNC_17_I2S2_EXCK (GPIO_FUNC_17) /*!< I2S2 EXCK */
#define GPIO_FUNC_17_I2S2_SD (GPIO_FUNC_17) /*!< I2S2 SD */
#define GPIO_FUNC_17_I2S2_SDIN (GPIO_FUNC_17) /*!< I2S2 SDIN */
#define GPIO_FUNC_17_I2S3 (GPIO_FUNC_17) /*!< I2S3 */
#define GPIO_FUNC_17_I2S3_MCK (GPIO_FUNC_17) /*!< I2S3 MCK */
#define GPIO_FUNC_17_I2S3_EXCK (GPIO_FUNC_17) /*!< I2S3 EXCK */
#define GPIO_FUNC_17_I2S3_SDIN (GPIO_FUNC_17) /*!< I2S3 SDIN */
#define GPIO_FUNC_17_I2S4 (GPIO_FUNC_17) /*!< I2S4 */
#define GPIO_FUNC_17_I2S4_MCK (GPIO_FUNC_17) /*!< I2S4 MCK */
#define GPIO_FUNC_17_I2S4_EXCK (GPIO_FUNC_17) /*!< I2S4 EXCK */
#define GPIO_FUNC_17_I2S4_SDIN (GPIO_FUNC_17) /*!< I2S4 SDIN */
#define GPIO_FUNC_17_I2S4_SD (GPIO_FUNC_17) /*!< I2S4 SD */
/**
* @}
*/
/** @defgroup GPIO_PinFunction18 GPIO Function 18 selection
* @{
*/
#define GPIO_FUNC_18 (0x12U)
#define GPIO_FUNC_18_SPI1 (GPIO_FUNC_18) /*!< SPI1 */
#define GPIO_FUNC_18_SPI1_NSS1 (GPIO_FUNC_18) /*!< SPI1 NSS1 */
#define GPIO_FUNC_18_SPI1_NSS2 (GPIO_FUNC_18) /*!< SPI1 NSS2 */
#define GPIO_FUNC_18_SPI1_NSS3 (GPIO_FUNC_18) /*!< SPI1 NSS3 */
#define GPIO_FUNC_18_SPI2 (GPIO_FUNC_18) /*!< SPI2 */
#define GPIO_FUNC_18_SPI2_NSS0 (GPIO_FUNC_18) /*!< SPI2 NSS0 */
#define GPIO_FUNC_18_SPI2_NSS1 (GPIO_FUNC_18) /*!< SPI2 NSS1 */
#define GPIO_FUNC_18_SPI2_NSS2 (GPIO_FUNC_18) /*!< SPI2 NSS2 */
#define GPIO_FUNC_18_SPI2_NSS3 (GPIO_FUNC_18) /*!< SPI2 NSS3 */
#define GPIO_FUNC_18_SPI3 (GPIO_FUNC_18) /*!< SPI3 */
#define GPIO_FUNC_18_SPI3_NSS1 (GPIO_FUNC_18) /*!< SPI3 NSS1 */
#define GPIO_FUNC_18_SPI3_NSS2 (GPIO_FUNC_18) /*!< SPI3 NSS2 */
#define GPIO_FUNC_18_SPI3_NSS3 (GPIO_FUNC_18) /*!< SPI3 NSS3 */
#define GPIO_FUNC_18_SPI4 (GPIO_FUNC_18) /*!< SPI4 */
#define GPIO_FUNC_18_SPI4_NSS1 (GPIO_FUNC_18) /*!< SPI4 NSS1 */
#define GPIO_FUNC_18_SPI4_NSS2 (GPIO_FUNC_18) /*!< SPI4 NSS2 */
#define GPIO_FUNC_18_SPI4_NSS3 (GPIO_FUNC_18) /*!< SPI4 NSS3 */
#define GPIO_FUNC_18_SPI5 (GPIO_FUNC_18) /*!< SPI5 */
#define GPIO_FUNC_18_SPI5_NSS0 (GPIO_FUNC_18) /*!< SPI5 NSS0 */
#define GPIO_FUNC_18_SPI5_NSS1 (GPIO_FUNC_18) /*!< SPI5 NSS1 */
#define GPIO_FUNC_18_SPI5_NSS2 (GPIO_FUNC_18) /*!< SPI5 NSS2 */
#define GPIO_FUNC_18_SPI5_NSS3 (GPIO_FUNC_18) /*!< SPI5 NSS3 */
#define GPIO_FUNC_18_SPI6 (GPIO_FUNC_18) /*!< SPI6 */
#define GPIO_FUNC_18_SPI6_NSS1 (GPIO_FUNC_18) /*!< SPI6 NSS1 */
#define GPIO_FUNC_18_SPI6_NSS2 (GPIO_FUNC_18) /*!< SPI6 NSS2 */
#define GPIO_FUNC_18_SPI6_NSS3 (GPIO_FUNC_18) /*!< SPI6 NSS3 */
#define GPIO_FUNC_18_QSPI (GPIO_FUNC_18) /*!< QSPI */
#define GPIO_FUNC_18_QSPI_NSS (GPIO_FUNC_18) /*!< QSPI NSS */
#define GPIO_FUNC_18_QSPI_SCK (GPIO_FUNC_18) /*!< QSPI SCK */
#define GPIO_FUNC_18_QSPI_IO0 (GPIO_FUNC_18) /*!< QSPI IO0 */
#define GPIO_FUNC_18_QSPI_IO1 (GPIO_FUNC_18) /*!< QSPI IO1 */
#define GPIO_FUNC_18_QSPI_IO2 (GPIO_FUNC_18) /*!< QSPI IO2 */
#define GPIO_FUNC_18_QSPI_IO3 (GPIO_FUNC_18) /*!< QSPI IO3 */
/**
* @}
*/
/** @defgroup GPIO_PinFunction19 GPIO Function 19 selection
* @{
*/
#define GPIO_FUNC_19 (0x13U)
#define GPIO_FUNC_19_SPI1 (GPIO_FUNC_19) /*!< SPI1 */
#define GPIO_FUNC_19_SPI1_NSS0 (GPIO_FUNC_19) /*!< SPI1 NSS0 */
#define GPIO_FUNC_19_SPI2 (GPIO_FUNC_19) /*!< SPI2 */
#define GPIO_FUNC_19_SPI2_NSS0 (GPIO_FUNC_19) /*!< SPI2 NSS0 */
#define GPIO_FUNC_19_SPI2_MOSI (GPIO_FUNC_19) /*!< SPI2 MOSI */
#define GPIO_FUNC_19_SPI2_MISO (GPIO_FUNC_19) /*!< SPI2 MISO */
#define GPIO_FUNC_19_SPI2_SCK (GPIO_FUNC_19) /*!< SPI2 SCK */
#define GPIO_FUNC_19_SPI3 (GPIO_FUNC_19) /*!< SPI3 */
#define GPIO_FUNC_19_SPI3_NSS0 (GPIO_FUNC_19) /*!< SPI3 NSS0 */
#define GPIO_FUNC_19_SPI3_MOSI (GPIO_FUNC_19) /*!< SPI3 MOSI */
#define GPIO_FUNC_19_SPI3_MISO (GPIO_FUNC_19) /*!< SPI3 MISO */
#define GPIO_FUNC_19_SPI3_SCK (GPIO_FUNC_19) /*!< SPI3 SCK */
#define GPIO_FUNC_19_SPI (GPIO_FUNC_19) /*!< SPI4 */
#define GPIO_FUNC_19_SPI4_NSS0 (GPIO_FUNC_19) /*!< SPI4 NSS0 */
#define GPIO_FUNC_19_SPI5 (GPIO_FUNC_19) /*!< SPI5 */
#define GPIO_FUNC_19_SPI5_NSS0 (GPIO_FUNC_19) /*!< SPI5 NSS0 */
#define GPIO_FUNC_19_SPI5_MOSI (GPIO_FUNC_19) /*!< SPI5 MOSI */
#define GPIO_FUNC_19_SPI5_MISO (GPIO_FUNC_19) /*!< SPI5 MISO */
#define GPIO_FUNC_19_SPI5_SCK (GPIO_FUNC_19) /*!< SPI5 SCK */
#define GPIO_FUNC_19_SPI6 (GPIO_FUNC_19) /*!< SPI6 */
#define GPIO_FUNC_19_SPI6_NSS0 (GPIO_FUNC_19) /*!< SPI6 NSS0 */
/**
* @}
*/
/** @defgroup GPIO_PinFunction20 GPIO Function 20 selection
* @{
*/
#define GPIO_FUNC_20 (0x14U)
#define GPIO_FUNC_20_USART1 (GPIO_FUNC_20) /*!< USART1 */
#define GPIO_FUNC_20_USART1_TX (GPIO_FUNC_20) /*!< USART1 TX */
#define GPIO_FUNC_20_USART1_RX (GPIO_FUNC_20) /*!< USART1 RX */
#define GPIO_FUNC_20_USART1_CTS (GPIO_FUNC_20) /*!< USART1 CTS */
#define GPIO_FUNC_20_USART1_RTS (GPIO_FUNC_20) /*!< USART1 RTS */
#define GPIO_FUNC_20_USART1_CK (GPIO_FUNC_20) /*!< USART1 CK */
#define GPIO_FUNC_20_USART2 (GPIO_FUNC_20) /*!< USART2 */
#define GPIO_FUNC_20_USART2_TX (GPIO_FUNC_20) /*!< USART2 TX */
#define GPIO_FUNC_20_USART2_RX (GPIO_FUNC_20) /*!< USART2 RX */
#define GPIO_FUNC_20_USART2_CTS (GPIO_FUNC_20) /*!< USART2 CTS */
#define GPIO_FUNC_20_USART2_RTS (GPIO_FUNC_20) /*!< USART2 RTS */
#define GPIO_FUNC_20_USART2_CK (GPIO_FUNC_20) /*!< USART2 CK */
#define GPIO_FUNC_20_USART4 (GPIO_FUNC_20) /*!< USART4 */
#define GPIO_FUNC_20_USART4_TX (GPIO_FUNC_20) /*!< USART4 TX */
#define GPIO_FUNC_20_USART4_RX (GPIO_FUNC_20) /*!< USART4 RX */
#define GPIO_FUNC_20_USART5 (GPIO_FUNC_20) /*!< USART5 */
#define GPIO_FUNC_20_USART5_TX (GPIO_FUNC_20) /*!< USART5 TX */
#define GPIO_FUNC_20_USART5_RX (GPIO_FUNC_20) /*!< USART5 RX */
#define GPIO_FUNC_20_USART6 (GPIO_FUNC_20) /*!< USART6 */
#define GPIO_FUNC_20_USART6_TX (GPIO_FUNC_20) /*!< USART6 TX */
#define GPIO_FUNC_20_USART6_RX (GPIO_FUNC_20) /*!< USART6 RX */
#define GPIO_FUNC_20_USART6_CTS (GPIO_FUNC_20) /*!< USART6 CTS */
#define GPIO_FUNC_20_USART6_RTS (GPIO_FUNC_20) /*!< USART6 RTS */
#define GPIO_FUNC_20_USART6_CK (GPIO_FUNC_20) /*!< USART6 CK */
#define GPIO_FUNC_20_USART7 (GPIO_FUNC_20) /*!< USART7 */
#define GPIO_FUNC_20_USART7_TX (GPIO_FUNC_20) /*!< USART7 TX */
#define GPIO_FUNC_20_USART7_RX (GPIO_FUNC_20) /*!< USART7 RX */
#define GPIO_FUNC_20_USART8 (GPIO_FUNC_20) /*!< USART8 */
#define GPIO_FUNC_20_USART8_TX (GPIO_FUNC_20) /*!< USART8 TX */
#define GPIO_FUNC_20_USART8_RX (GPIO_FUNC_20) /*!< USART8 RX */
/**
* @}
*/
/** @defgroup GPIO_PinFunction32 GPIO Function 32 selection
* @{
*/
#define GPIO_FUNC_32 (0x20U)
#define GPIO_FUNC_32_USART1_TX (GPIO_FUNC_32) /*!< USART1 TX in Function Group 1 */
#define GPIO_FUNC_32_USART4_TX (GPIO_FUNC_32) /*!< USART4 TX in Function Group 2 */
#define GPIO_FUNC_32_USART3_TX (GPIO_FUNC_32) /*!< USART3 TX in Function Group 3 */
/**
* @}
*/
/** @defgroup GPIO_PinFunction33 GPIO Function 33 selection
* @{
*/
#define GPIO_FUNC_33 (0x21U)
#define GPIO_FUNC_33_USART1_RX (GPIO_FUNC_33) /*!< USART1 RX in Function Group 1 */
#define GPIO_FUNC_33_USART4_RX (GPIO_FUNC_33) /*!< USART4 RX in Function Group 2 */
#define GPIO_FUNC_33_USART3_RX (GPIO_FUNC_33) /*!< USART3 RX in Function Group 3 */
/**
* @}
*/
/** @defgroup GPIO_PinFunction34 GPIO Function 34 selection
* @{
*/
#define GPIO_FUNC_34 (0x22U)
#define GPIO_FUNC_34_USART2_TX (GPIO_FUNC_34) /*!< USART2 TX in Function Group 1 */
#define GPIO_FUNC_34_USART5_TX (GPIO_FUNC_34) /*!< USART5 TX in Function Group 2 */
#define GPIO_FUNC_34_USART8_TX (GPIO_FUNC_34) /*!< USART8 TX in Function Group 3 */
/**
* @}
*/
/** @defgroup GPIO_PinFunction35 GPIO Function 35 selection
* @{
*/
#define GPIO_FUNC_35 (0x23U)
#define GPIO_FUNC_35_USART2_RX (GPIO_FUNC_35) /*!< USART2 RX in Function Group 1 */
#define GPIO_FUNC_35_USART5_RX (GPIO_FUNC_35) /*!< USART5 RX in Function Group 2 */
#define GPIO_FUNC_35_USART8_RX (GPIO_FUNC_35) /*!< USART8 RX in Function Group 3 */
/**
* @}
*/
/** @defgroup GPIO_PinFunction36 GPIO Function 36 selection
* @{
*/
#define GPIO_FUNC_36 (0x24U)
#define GPIO_FUNC_36_USART3_TX (GPIO_FUNC_36) /*!< USART3 TX in Function Group 1 */
#define GPIO_FUNC_36_USART6_TX (GPIO_FUNC_36) /*!< USART6 TX in Function Group 2 */
#define GPIO_FUNC_36_USART9_TX (GPIO_FUNC_36) /*!< USART9 TX in Function Group 3 */
/**
* @}
*/
/** @defgroup GPIO_PinFunction37 GPIO Function 37 selection
* @{
*/
#define GPIO_FUNC_37 (0x25U)
#define GPIO_FUNC_37_USART3_RX (GPIO_FUNC_37) /*!< USART3 RX in Function Group 1 */
#define GPIO_FUNC_37_USART6_RX (GPIO_FUNC_37) /*!< USART6 RX in Function Group 2 */
#define GPIO_FUNC_37_USART9_RX (GPIO_FUNC_37) /*!< USART9 RX in Function Group 3 */
/**
* @}
*/
/** @defgroup GPIO_PinFunction38 GPIO Function 38 selection
* @{
*/
#define GPIO_FUNC_38 (0x26U)
#define GPIO_FUNC_38_USART4_TX (GPIO_FUNC_38) /*!< USART4 TX in Function Group 1 */
#define GPIO_FUNC_38_USART7_TX (GPIO_FUNC_38) /*!< USART7 TX in Function Group 2 */
#define GPIO_FUNC_38_USART10_TX (GPIO_FUNC_38) /*!< USART10 TX in Function Group 3 */
/**
* @}
*/
/** @defgroup GPIO_PinFunction39 GPIO Function 39 selection
* @{
*/
#define GPIO_FUNC_39 (0x27U)
#define GPIO_FUNC_39_USART4_RX (GPIO_FUNC_39) /*!< USART4 RX in Function Group 1 */
#define GPIO_FUNC_39_USART7_RX (GPIO_FUNC_39) /*!< USART7 RX in Function Group 2 */
#define GPIO_FUNC_39_USART10_RX (GPIO_FUNC_39) /*!< USART10 RX in Function Group 3 */
/**
* @}
*/
/** @defgroup GPIO_PinFunction40 GPIO Function 40 selection
* @{
*/
#define GPIO_FUNC_40 (0x28U)
#define GPIO_FUNC_40_SPI1_SCK (GPIO_FUNC_40) /*!< SPI1 SCK in Function Group 1 & 3 */
#define GPIO_FUNC_40_SPI4_SCK (GPIO_FUNC_40) /*!< SPI4 SCK in Function Group 2 */
/**
* @}
*/
/** @defgroup GPIO_PinFunction41 GPIO Function 41 selection
* @{
*/
#define GPIO_FUNC_41 (0x29U)
#define GPIO_FUNC_41_SPI1_MOSI (GPIO_FUNC_41) /*!< SPI1 MOSI in Function Group 1 & 3 */
#define GPIO_FUNC_41_SPI4_MOSI (GPIO_FUNC_41) /*!< SPI4 MOSI in Function Group 2 */
/**
* @}
*/
/** @defgroup GPIO_PinFunction42 GPIO Function 42 selection
* @{
*/
#define GPIO_FUNC_42 (0x2AU)
#define GPIO_FUNC_42_SPI1_MISO (GPIO_FUNC_42) /*!< SPI1 MISO in Function Group 1 & 3 */
#define GPIO_FUNC_42_SPI4_MISO (GPIO_FUNC_42) /*!< SPI4 MISO in Function Group 2 */
/**
* @}
*/
/** @defgroup GPIO_PinFunction43 GPIO Function 43 selection
* @{
*/
#define GPIO_FUNC_43 (0x2BU)
#define GPIO_FUNC_43_SPI2_SCK (GPIO_FUNC_43) /*!< SPI2 SCK in Function Group 1 */
#define GPIO_FUNC_43_SPI5_SCK (GPIO_FUNC_43) /*!< SPI5 SCK in Function Group 2 */
#define GPIO_FUNC_43_SPI4_SCK (GPIO_FUNC_43) /*!< SPI4 SCK in Function Group 3 */
/**
* @}
*/
/** @defgroup GPIO_PinFunction44 GPIO Function 44 selection
* @{
*/
#define GPIO_FUNC_44 (0x2CU)
#define GPIO_FUNC_44_SPI2_MOSI (GPIO_FUNC_44) /*!< SPI2 MOSI in Function Group 1 */
#define GPIO_FUNC_44_SPI5_MOSI (GPIO_FUNC_44) /*!< SPI5 MOSI in Function Group 2 */
#define GPIO_FUNC_44_SPI4_MOSI (GPIO_FUNC_44) /*!< SPI4 MOSI in Function Group 3 */
/**
* @}
*/
/** @defgroup GPIO_PinFunction45 GPIO Function 45 selection
* @{
*/
#define GPIO_FUNC_45 (0x2DU)
#define GPIO_FUNC_45_SPI2_MISO (GPIO_FUNC_45) /*!< SPI2 MISO in Function Group 1 */
#define GPIO_FUNC_45_SPI5_MISO (GPIO_FUNC_45) /*!< SPI5 MISO in Function Group 2 */
#define GPIO_FUNC_45_SPI4_MISO (GPIO_FUNC_45) /*!< SPI4 MISO in Function Group 3 */
/**
* @}
*/
/** @defgroup GPIO_PinFunction46 GPIO Function 46 selection
* @{
*/
#define GPIO_FUNC_46 (0x2EU)
#define GPIO_FUNC_46_SPI3_SCK (GPIO_FUNC_46) /*!< SPI3 SCK in Function Group 1 */
#define GPIO_FUNC_46_SPI6_SCK (GPIO_FUNC_46) /*!< SPI6 SCK in Function Group 2 */
#define GPIO_FUNC_46_SPI4_NSS0 (GPIO_FUNC_46) /*!< SPI4 NSS0 in Function Group 3 */
/**
* @}
*/
/** @defgroup GPIO_PinFunction47 GPIO Function 47 selection
* @{
*/
#define GPIO_FUNC_47 (0x2FU)
#define GPIO_FUNC_47_SPI3_MOSI (GPIO_FUNC_47) /*!< SPI3 MOSI in Function Group 1 */
#define GPIO_FUNC_47_SPI6_MOSI (GPIO_FUNC_47) /*!< SPI6 MOSI in Function Group 2 */
#define GPIO_FUNC_47_SPI1_NSS0 (GPIO_FUNC_47) /*!< SPI4 NSS0 in Function Group 3 */
/**
* @}
*/
/** @defgroup GPIO_PinFunction48 GPIO Function 48 selection
* @{
*/
#define GPIO_FUNC_48 (0x30U)
#define GPIO_FUNC_48_SPI3_MISO (GPIO_FUNC_48) /*!< SPI3 MISO in Function Group 1 */
#define GPIO_FUNC_48_SPI6_MISO (GPIO_FUNC_48) /*!< SPI6 MISO in Function Group 2 */
#define GPIO_FUNC_48_I2C1_SDA (GPIO_FUNC_48) /*!< I2C1 SDA in Function Group 3 */
/**
* @}
*/
/** @defgroup GPIO_PinFunction49 GPIO Function 49 selection
* @{
*/
#define GPIO_FUNC_49 (0x31U)
#define GPIO_FUNC_49_SPI3_NSS0 (GPIO_FUNC_49) /*!< SPI3 NSS0 in Function Group 1 */
#define GPIO_FUNC_49_SPI6_NSS0 (GPIO_FUNC_49) /*!< SPI6 NSS0 in Function Group 2 */
#define GPIO_FUNC_49_I2C1_SCL (GPIO_FUNC_49) /*!< I2C1 SCL in Function Group 3 */
/**
* @}
*/
/** @defgroup GPIO_PinFunction50 GPIO Function 50 selection
* @{
*/
#define GPIO_FUNC_50 (0x32U)
#define GPIO_FUNC_50_I2C1_SDA (GPIO_FUNC_50) /*!< I2C1 SDA in Function Group 1 */
#define GPIO_FUNC_50_I2C2_SDA (GPIO_FUNC_50) /*!< I2C2 SDA in Function Group 2 & 3 */
/**
* @}
*/
/** @defgroup GPIO_PinFunction51 GPIO Function 51 selection
* @{
*/
#define GPIO_FUNC_51 (0x33U)
#define GPIO_FUNC_51_I2C1_SCL (GPIO_FUNC_51) /*!< I2C1 SCL in Function Group 1 */
#define GPIO_FUNC_51_I2C2_SCL (GPIO_FUNC_51) /*!< I2C2 SCL in Function Group 2 & 3 */
/**
* @}
*/
/** @defgroup GPIO_PinFunction52 GPIO Function 52 selection
* @{
*/
#define GPIO_FUNC_52 (0x34U)
#define GPIO_FUNC_52_I2C3_SDA (GPIO_FUNC_52) /*!< I2C3 SDA in Function Group 1 */
#define GPIO_FUNC_52_I2C4_SDA (GPIO_FUNC_52) /*!< I2C4 SDA in Function Group 2 */
#define GPIO_FUNC_52_I2C6_SDA (GPIO_FUNC_52) /*!< I2C6 SDA in Function Group 3 */
/**
* @}
*/
/** @defgroup GPIO_PinFunction53 GPIO Function 53 selection
* @{
*/
#define GPIO_FUNC_53 (0x35U)
#define GPIO_FUNC_53_I2C3_SCL (GPIO_FUNC_53) /*!< I2C3 SCL in Function Group 1 */
#define GPIO_FUNC_53_I2C4_SCL (GPIO_FUNC_53) /*!< I2C4 SCL in Function Group 2 */
#define GPIO_FUNC_53_I2C6_SCL (GPIO_FUNC_53) /*!< I2C6 SCL in Function Group 3 */
/**
* @}
*/
/** @defgroup GPIO_PinFunction54 GPIO Function 54 selection
* @{
*/
#define GPIO_FUNC_54 (0x36U)
#define GPIO_FUNC_54_I2S1_CK (GPIO_FUNC_54) /*!< I2S1 CK in Function Group 1&3 */
#define GPIO_FUNC_54_I2C5_SDA (GPIO_FUNC_54) /*!< I2C5 SDA in Function Group 2 */
/**
* @}
*/
/** @defgroup GPIO_PinFunction55 GPIO Function 55 selection
* @{
*/
#define GPIO_FUNC_55 (0x37U)
#define GPIO_FUNC_55_I2S1_WS (GPIO_FUNC_55) /*!< I2S1_WS in Function Group 1&3 */
#define GPIO_FUNC_55_I2C5_SCL (GPIO_FUNC_55) /*!< I2C5_SCL in Function Group 2 */
/**
* @}
*/
/** @defgroup GPIO_PinFunction56 GPIO Function 56 selection
* @{
*/
#define GPIO_FUNC_56 (0x38U)
#define GPIO_FUNC_56_I2S1_SD (GPIO_FUNC_56) /*!< I2S1 SD in Function Group 1&3 */
/**
* @}
*/
/** @defgroup GPIO_PinFunction57 GPIO Function 57 selection
* @{
*/
#define GPIO_FUNC_57 (0x39U)
#define GPIO_FUNC_57_I2S2_CK (GPIO_FUNC_57) /*!< I2S2 CK in Function Group 1 */
#define GPIO_FUNC_57_I2S3_CK (GPIO_FUNC_57) /*!< I2S3 CK in Function Group 2 */
#define GPIO_FUNC_57_I2S4_CK (GPIO_FUNC_57) /*!< I2S4 CK in Function Group 3 */
/**
* @}
*/
/** @defgroup GPIO_PinFunction58 GPIO Function 58 selection
* @{
*/
#define GPIO_FUNC_58 (0x3AU)
#define GPIO_FUNC_58_I2S2_WS (GPIO_FUNC_58) /*!< I2S2 WS in Function Group 1 */
#define GPIO_FUNC_58_I2S3_WS (GPIO_FUNC_58) /*!< I2S3 WS in Function Group 2 */
#define GPIO_FUNC_58_I2S4_WS (GPIO_FUNC_58) /*!< I2S4 WS in Function Group 3 */
/**
* @}
*/
/** @defgroup GPIO_PinFunction59 GPIO Function 59 selection
* @{
*/
#define GPIO_FUNC_59 (0x3BU)
#define GPIO_FUNC_59_I2S2_SD (GPIO_FUNC_59) /*!< I2S2 SD in Function Group 1 */
#define GPIO_FUNC_59_I2S3_SD (GPIO_FUNC_59) /*!< I2S3 SD in Function Group 2 */
#define GPIO_FUNC_59_I2S4_SD (GPIO_FUNC_59) /*!< I2S4 SD in Function Group 3 */
/**
* @}
*/
/** @defgroup GPIO_PinFunction60 GPIO Function 60 selection
* @{
*/
#define GPIO_FUNC_60 (0x3CU)
#define GPIO_FUNC_60_CAN1_TX (GPIO_FUNC_60) /*!< CAN1 TX in Function Group 1~3 */
/**
* @}
*/
/** @defgroup GPIO_PinFunction61 GPIO Function 61 selection
* @{
*/
#define GPIO_FUNC_61 (0x3DU)
#define GPIO_FUNC_61_CAN1_RX (GPIO_FUNC_61) /*!< CAN1 RX in Function Group 1~3 */
/**
* @}
*/
/** @defgroup GPIO_PinFunction62 GPIO Function 62 selection
* @{
*/
#define GPIO_FUNC_62 (0x3EU)
#define GPIO_FUNC_62_CAN2_TX (GPIO_FUNC_62) /*!< CAN2 TX in Function Group 1~3 */
/**
* @}
*/
/** @defgroup GPIO_PinFunction63 GPIO Function 63 selection
* @{
*/
#define GPIO_FUNC_63 (0x3FU)
#define GPIO_FUNC_63_CAN2_RX (GPIO_FUNC_63) /*!< CAN2 RX in Function Group 1~3 */
/**
* @}
*/
/** @defgroup GPIO_DebugPin_Sel GPIO Debug pin selection
* @{
*/
#define GPIO_PIN_SWCLK (0x01U)
#define GPIO_PIN_SWDIO (0x02U)
#define GPIO_PIN_SWO (0x04U)
#define GPIO_PIN_DEBUG_SWD (0x07U)
#define GPIO_PIN_TCK (0x01U)
#define GPIO_PIN_TMS (0x02U)
#define GPIO_PIN_TDO (0x04U)
#define GPIO_PIN_TDI (0x08U)
#define GPIO_PIN_TRST (0x10U)
#define GPIO_PIN_DEBUG_JTAG (0x1FU)
/**
* @}
*/
/** @defgroup GPIO_ReadCycle_Sel GPIO pin read wait cycle selection
* @{
*/
#define GPIO_READ_WAIT_0 ((uint16_t)(0x00UL << GPIO_PCCR_RDWT_POS))
#define GPIO_READ_WAIT_1 ((uint16_t)(0x01UL << GPIO_PCCR_RDWT_POS))
#define GPIO_READ_WAIT_2 ((uint16_t)(0x02UL << GPIO_PCCR_RDWT_POS))
#define GPIO_READ_WAIT_3 ((uint16_t)(0x03UL << GPIO_PCCR_RDWT_POS))
#define GPIO_READ_WAIT_4 ((uint16_t)(0x04UL << GPIO_PCCR_RDWT_POS))
#define GPIO_READ_WAIT_5 ((uint16_t)(0x05UL << GPIO_PCCR_RDWT_POS))
#define GPIO_READ_WAIT_6 ((uint16_t)(0x06UL << GPIO_PCCR_RDWT_POS))
#define GPIO_READ_WAIT_7 ((uint16_t)(0x07UL << GPIO_PCCR_RDWT_POS))
/**
* @}
*/
/**
* @defgroup GPIO_PinState_Sel GPIO pin output state selection
* @{
*/
#define PIN_STATE_RESET (0U)
#define PIN_STATE_SET (GPIO_PCR_POUT)
/**
* @}
*/
/**
* @defgroup GPIO_PinDirection_Sel GPIO pin input/output direction selection
* @{
*/
#define PIN_DIR_IN (0U)
#define PIN_DIR_OUT (GPIO_PCR_POUTE)
/**
* @}
*/
/**
* @defgroup GPIO_PinOutType_Sel GPIO pin output type selection
* @{
*/
#define PIN_OTYPE_CMOS (0U)
#define PIN_OTYPE_NMOS (GPIO_PCR_NOD)
/**
* @}
*/
/**
* @defgroup GPIO_PinDrv_Sel GPIO Pin drive capacity selection
* @{
*/
#define PIN_DRV_LOW (0U)
#define PIN_DRV_MID (GPIO_PCR_DRV_0)
#define PIN_DRV_HIGH (GPIO_PCR_DRV_1)
/**
* @}
*/
/**
* @defgroup GPIO_PinLatch_Sel GPIO Pin output latch selection
* @{
*/
#define PIN_LATCH_OFF (0U)
#define PIN_LATCH_ON (GPIO_PCR_LTE)
/**
* @}
*/
/**
* @defgroup GPIO_PinPU_Sel GPIO Pin internal pull-up resistor selection
* @{
*/
#define PIN_PU_OFF (0U)
#define PIN_PU_ON (GPIO_PCR_PUU)
/**
* @}
*/
/**
* @defgroup GPIO_PinInvert_Sel GPIO Pin I/O invert selection
* @{
*/
#define PIN_INVERT_OFF (0U)
#define PIN_INVERT_ON (GPIO_PCR_INVE)
/**
* @}
*/
/**
* @defgroup GPIO_PinInType_Sel GPIO Pin input type selection
* @{
*/
#define PIN_ITYPE_SMT (0U)
#define PIN_ITYPE_CMOS (GPIO_PCR_CINSEL)
/**
* @}
*/
/**
* @defgroup GPIO_PinExInt_Sel GPIO Pin external interrupt selection
* @{
*/
#define PIN_EXINT_OFF (0U)
#define PIN_EXINT_ON (GPIO_PCR_INTE)
/**
* @}
*/
/**
* @defgroup GPIO_PinMode_Sel GPIO Pin mode selection
* @{
*/
#define PIN_ATTR_DIGITAL (0U)
#define PIN_ATTR_ANALOG (GPIO_PCR_DDIS)
/**
* @}
*/
/**
* @defgroup GPIO_PinSubFuncSet_Sel GPIO Pin sub-function enable or disable
* @{
*/
#define PIN_SUBFUNC_DISABLE (0U)
#define PIN_SUBFUNC_ENABLE (GPIO_PFSR_BFE)
/**
* @}
*/
/**
* @defgroup GPIO_Register_Protect GPIO Registers Protect Code
* @{
*/
#define GPIO_REG_UNPROTECT (0xA501U)
#define GPIO_REG_PROTECT (0xA500U)
/**
* @}
*/
/**
* @}
*/
/*******************************************************************************
* Global variable definitions ('extern')
******************************************************************************/
/*******************************************************************************
Global function prototypes (definition in C source)
******************************************************************************/
/**
* @addtogroup GPIO_Global_Functions
* @{
*/
/**
* @brief GPIO lock. PSPCR, PCCR, PINAER, PCRxy, PFSRxy write disable
* @param None
* @retval None
*/
__STATIC_INLINE void GPIO_Lock(void)
{
WRITE_REG16(M4_GPIO->PWPR, GPIO_REG_PROTECT);
}
/**
* @brief GPIO unlock. PSPCR, PCCR, PINAER, PCRxy, PFSRxy write enable
* @param None
* @retval None
*/
__STATIC_INLINE void GPIO_Unlock(void)
{
WRITE_REG16(M4_GPIO->PWPR, GPIO_REG_UNPROTECT);
}
en_result_t GPIO_Init(uint8_t u8Port, uint16_t u16Pin, const stc_gpio_init_t *pstcGpioInit);
void GPIO_DeInit(void);
void GPIO_Unlock(void);
void GPIO_Lock(void);
en_result_t GPIO_StructInit(stc_gpio_init_t *pstcGpioInit);
void GPIO_SetDebugPort(uint8_t u8DebugPort, en_functional_state_t enNewState);
void GPIO_SetFunc(uint8_t u8Port, uint16_t u16Pin, uint8_t u8Func, uint16_t u16BFE);
void GPIO_SetSubFunc(uint8_t u8Func);
void GPIO_SetReadWaitCycle(uint16_t u16ReadWait);
void GPIO_InMOSCmd(uint16_t u16PortIdx, en_functional_state_t enNewState);
void GPIO_OE(uint8_t u8Port, uint16_t u16Pin, en_functional_state_t enNewState);
//port pin
en_pin_state_t GPIO_ReadInputPins(uint8_t u8Port, uint16_t u16Pin);
uint16_t GPIO_ReadInputPort(uint8_t u8Port);
en_pin_state_t GPIO_ReadOutputPins(uint8_t u8Port, uint16_t u16Pin);
uint16_t GPIO_ReadOutputPort(uint8_t u8Port);
void GPIO_SetPins(uint8_t u8Port, uint16_t u16Pin);
void GPIO_ResetPins(uint8_t u8Port, uint16_t u16Pin);
void GPIO_TogglePins(uint8_t u8Port, uint16_t u16Pin);
void GPIO_WritePort(uint8_t u8Port, uint16_t u16PortVal);
/**
* @}
*/
#endif /* DDL_GPIO_ENABLE */
/**
* @}
*/
/**
* @}
*/
#ifdef __cplusplus
}
#endif
#endif /* __HC32F4A0_GPIO_H__ */
/*******************************************************************************
* EOF (not truncated)
******************************************************************************/