11 #ifndef __MG32L003_GPIO_H 12 #define __MG32L003_GPIO_H 37 #define GPIO_NUMBER 8U 38 #elif defined(MG32L003Kx) 39 #define GPIO_NUMBER 16U 54 #define GPIO_Pin_0 ((uint16_t)0x0001) 55 #define GPIO_Pin_1 ((uint16_t)0x0002) 56 #define GPIO_Pin_2 ((uint16_t)0x0004) 57 #define GPIO_Pin_3 ((uint16_t)0x0008) 58 #define GPIO_Pin_4 ((uint16_t)0x0010) 59 #define GPIO_Pin_5 ((uint16_t)0x0020) 60 #define GPIO_Pin_6 ((uint16_t)0x0040) 61 #define GPIO_Pin_7 ((uint16_t)0x0080) 62 #define GPIO_Pin_All ((uint16_t)0x00FF) 71 #define GPIO_MODE_IN ((uint32_t)0x00000000U) 72 #define GPIO_MODE_OUT ((uint32_t)0x10000000U) 81 #define GPIO_OTYPE_PP ((uint32_t)0x00000000U) 82 #define GPIO_OTYPE_OD ((uint32_t)0x01000000U) 91 #define GPIO_SPEED_LOW ((uint32_t)0x00000000U) 92 #define GPIO_SPEED_HIGH ((uint32_t)0x00100000U) 101 #define GPIO_PUPD_NOPULL ((uint32_t)0x00000000U) 102 #define GPIO_PUPD_UP ((uint32_t)0x00010000U) 103 #define GPIO_PUPD_DOWN ((uint32_t)0x00020000U) 112 #define GPIO_DRV_HIGH ((uint32_t)0x00000000U) 113 #define GPIO_DRV_LOW ((uint32_t)0x00001000U) 122 #define GPIO_EXTI_IT_DISABLE ((uint32_t)0x00000000U) 123 #define GPIO_EXTI_IT_ENABLE ((uint32_t)0x00000100U) 124 #define GPIO_EXTI_TRIGGER_EDGE ((uint32_t)0x00000000U) 125 #define GPIO_EXTI_TRIGGER_LEVEL ((uint32_t)0x00000200U) 126 #define GPIO_EXTI_TRIGGER_LOW ((uint32_t)0x00000000U) 127 #define GPIO_EXTI_TRIGGER_HIGH ((uint32_t)0x00000400U) 128 #define GPIO_EXTI_TRIGGER_FALLING ((uint32_t)0x00000000U) 129 #define GPIO_EXTI_TRIGGER_RISSING ((uint32_t)0x00000400U) 130 #define GPIO_EXTI_TRIGGER_RISSING_FALLING ((uint32_t)0x00000800U) 131 #define GPIO_EXTI_Mask ((uint32_t)0x00000F00U) 140 #define GPIO_DB_DISABLE ((uint32_t)0x00000000U) 141 #define GPIO_DB_ENABLE ((uint32_t)0x00000010U) 142 #define GPIO_DB_SYNC_DISABLE ((uint32_t)0x00000000U) 143 #define GPIO_DB_SYNC_ENABLE ((uint32_t)0x00000020U) 144 #define GPIO_DB_CLK_DIV_1 ((uint32_t)0x00000000U) 145 #define GPIO_DB_CLK_DIV_2 ((uint32_t)0x00000001U) 146 #define GPIO_DB_CLK_DIV_4 ((uint32_t)0x00000002U) 147 #define GPIO_DB_CLK_DIV_8 ((uint32_t)0x00000003U) 148 #define GPIO_DB_CLK_DIV_16 ((uint32_t)0x00000004U) 149 #define GPIO_DB_CLK_DIV_32 ((uint32_t)0x00000005U) 150 #define GPIO_DB_CLK_DIV_64 ((uint32_t)0x00000006U) 151 #define GPIO_DB_CLK_DIV_128 ((uint32_t)0x00000007U) 152 #define GPIO_DB_CLK_DIV_256 ((uint32_t)0x00000008U) 153 #define GPIO_DB_CLK_DIV_512 ((uint32_t)0x00000009U) 154 #define GPIO_DB_CLK_DIV_1024 ((uint32_t)0x0000000AU) 155 #define GPIO_DB_CLK_DIV_2048 ((uint32_t)0x0000000BU) 156 #define GPIO_DB_CLK_DIV_4096 ((uint32_t)0x0000000CU) 157 #define GPIO_DB_CLK_DIV_8192 ((uint32_t)0x0000000DU) 158 #define GPIO_DB_CLK_DIV_16384 ((uint32_t)0x0000000EU) 159 #define GPIO_DB_CLK_DIV_32768 ((uint32_t)0x0000000FU) 160 #define GPIO_DB_Mask ((uint32_t)0x000000FFU) 169 #define GPIO_AF0 ((uint32_t)0x00000000U) 170 #define GPIO_AF1 ((uint32_t)0x00000001U) 171 #define GPIO_AF2 ((uint32_t)0x00000002U) 172 #define GPIO_AF3 ((uint32_t)0x00000003U) 173 #define GPIO_AF4 ((uint32_t)0x00000004U) 174 #define GPIO_AF5 ((uint32_t)0x00000005U) 175 #define GPIO_AF6 ((uint32_t)0x00000006U) 176 #define GPIO_AF7 ((uint32_t)0x00000007U) 177 #define GPIO_AF8 ((uint32_t)0x00000008U) 178 #define GPIO_AF9 ((uint32_t)0x00000009U) 179 #define GPIO_AF10 ((uint32_t)0x0000000AU) 180 #define GPIO_AF11 ((uint32_t)0x0000000BU) 181 #define GPIO_AF12 ((uint32_t)0x0000000CU) 182 #define GPIO_AF13 ((uint32_t)0x0000000DU) 183 #define GPIO_AF14 ((uint32_t)0x0000000EU) 184 #define GPIO_AF15 ((uint32_t)0x0000000FU) 185 #define GPIO_AF_Mask ((uint32_t)0x0000000FU) 196 #define IS_GPIO_ALL_PERIPH(PERIPH) (((PERIPH) == GPIOA) || \ 197 ((PERIPH) == GPIOB) || \ 198 ((PERIPH) == GPIOC) || \ 201 #define IS_GET_GPIO_PIN(PIN) (((PIN) == GPIO_Pin_0) || \ 202 ((PIN) == GPIO_Pin_1) || \ 203 ((PIN) == GPIO_Pin_2) || \ 204 ((PIN) == GPIO_Pin_3) || \ 205 ((PIN) == GPIO_Pin_4) || \ 206 ((PIN) == GPIO_Pin_5) || \ 207 ((PIN) == GPIO_Pin_6) || \ 208 ((PIN) == GPIO_Pin_7)) 210 #define IS_GPIO_PIN(PIN) (((PIN) & 0x000000FF) != (uint32_t)0x00) 212 #define IS_GPIO_BIT_ACTION(ACTION) (((ACTION) == Bit_RESET) || ((ACTION) == Bit_SET)) void GPIO_DriveCurrentConfig(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, uint32_t Current)
Configure the drive current of several pins for a specified port.
Definition: mg32l003_gpio.c:337
uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
Reads the specified input port pin.
Definition: mg32l003_gpio.c:164
void GPIO_EXTI_ClearFlag(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
Clears the GPIO_Pin's EXTI line pending flags.
Definition: mg32l003_gpio.c:497
void GPIO_ToggleBits(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
Toggle data value for several pin of specified port.
Definition: mg32l003_gpio.c:318
FlagStatus GPIO_EXTI_GetFlagStatus(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
Checks whether the specified GPIO_Pin's EXTI line flag is set or not.
Definition: mg32l003_gpio.c:470
uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
Reads the specified output data port bit.
Definition: mg32l003_gpio.c:204
uint16_t GPIO_ReadOutputData(GPIO_TypeDef *GPIOx)
Reads the specified GPIO output data port.
Definition: mg32l003_gpio.c:229
Definition: mg32l003.h:531
void GPIO_WriteBit(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, BitAction BitVal)
Sets or clears the selected data port bit.
Definition: mg32l003_gpio.c:280
void GPIO_DebounceConfig(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, uint32_t DebounceConfig)
Handles the configuration of GPIO debounce.
Definition: mg32l003_gpio.c:413
void GPIO_SetBits(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
Sets the selected data port bits.
Definition: mg32l003_gpio.c:244
void GPIO_EXTI_ClearIT(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
Clears the GPIO_Pin's EXTI line pending bits.
Definition: mg32l003_gpio.c:540
ITStatus GPIO_EXTI_GetIT(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
Checks that the interrupt of the EXTI line for the specified GPIO Pin is enabled.
Definition: mg32l003_gpio.c:513
void GPIO_SetAFPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, uint32_t Alternate)
Configure gpio alternate function of any pins for a dedicated port.
Definition: mg32l003_gpio.c:135
void GPIO_Write(GPIO_TypeDef *GPIOx, uint16_t PortVal)
Writes data to the specified GPIO data port.
Definition: mg32l003_gpio.c:303
void GPIO_EXTIConfig(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, uint32_t EXTI_Config)
Handles the configuration of GPIO_Pin's EXTI.
Definition: mg32l003_gpio.c:368
void GPIO_ResetBits(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
Clears the selected data port bits.
Definition: mg32l003_gpio.c:260
void GPIO_Init(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, uint32_t PinConfig)
Initializes the GPIOx peripheral according to the PinConfig.
Definition: mg32l003_gpio.c:74
uint16_t GPIO_ReadInputData(GPIO_TypeDef *GPIOx)
Reads the specified GPIO input data port.
Definition: mg32l003_gpio.c:189
void GPIO_DeInit(GPIO_TypeDef *GPIOx)
De-initializes the GPIOx peripheral registers to their default reset values.
Definition: mg32l003_gpio.c:37
BitAction
GPIO Bit SET and Bit RESET enumeration.
Definition: mg32l003_gpio.h:45