STM32_GPIO(IO)_HAL - GitMasterNikanjam/ARM_WiKi GitHub Wiki
Configuration GPIO as Output
GPIO output level Low/High
GPIO mode: Push Pull/Open Drain
GPIO Pull-up/Pull-down: no pull-up no pull-down/pull-up/pull-down
Maximum output speed: Low/Medium/High/Very High
User Label
Configuration GPIO as Input
GPIO mode: Input mode/
GPIO Pull-up/Pull-down: no pull-up no pull-down/pull-up/pull-down
User Label
Important Defines and functions:
typedef enum
{
GPIO_PIN_RESET = 0,
GPIO_PIN_SET
}GPIO_PinState;
// GPIO_pins_define GPIO pins define
#define GPIO_PIN_0 ((uint16_t)0x0001) /* Pin 0 selected */
#define GPIO_PIN_1 ((uint16_t)0x0002) /* Pin 1 selected */
#define GPIO_PIN_2 ((uint16_t)0x0004) /* Pin 2 selected */
#define GPIO_PIN_3 ((uint16_t)0x0008) /* Pin 3 selected */
#define GPIO_PIN_4 ((uint16_t)0x0010) /* Pin 4 selected */
#define GPIO_PIN_5 ((uint16_t)0x0020) /* Pin 5 selected */
#define GPIO_PIN_6 ((uint16_t)0x0040) /* Pin 6 selected */
#define GPIO_PIN_7 ((uint16_t)0x0080) /* Pin 7 selected */
#define GPIO_PIN_8 ((uint16_t)0x0100) /* Pin 8 selected */
#define GPIO_PIN_9 ((uint16_t)0x0200) /* Pin 9 selected */
#define GPIO_PIN_10 ((uint16_t)0x0400) /* Pin 10 selected */
#define GPIO_PIN_11 ((uint16_t)0x0800) /* Pin 11 selected */
#define GPIO_PIN_12 ((uint16_t)0x1000) /* Pin 12 selected */
#define GPIO_PIN_13 ((uint16_t)0x2000) /* Pin 13 selected */
#define GPIO_PIN_14 ((uint16_t)0x4000) /* Pin 14 selected */
#define GPIO_PIN_15 ((uint16_t)0x8000) /* Pin 15 selected */
#define GPIO_PIN_All ((uint16_t)0xFFFF) /* All pins selected */
//IO operation functions *****************************************************/
GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
void HAL_GPIO_WritePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState);
void HAL_GPIO_TogglePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
HAL_StatusTypeDef HAL_GPIO_LockPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
// GPIOx: GPIOA/GPIOB/GPIOC/ ...
// GPIO_Pin: GPIO_PIN_0/GPIO_PIN_1/ ...
// PinState: 0/1/GPIO_PIN_RESET/GPIO_PIN_SET
// HAL_GPIO_LockPin(): It's used to lock the configuration of a specific GPIO pin. Once a pin is locked, it can't be modified until it's explicitly unlocked.