17 #ifndef HAL_PIN_STM32_V0_H_INCLUDED
18 #define HAL_PIN_STM32_V0_H_INCLUDED
20 #if !defined(HAL_PIN_H_INCLUDED)
21 # error please do not include HAL library internals directly
37 return 1 << (pin & 15);
50 GPIO_CRL(
_pin_port(pin)) = (mode << pinid) |
51 (GPIO_CRL(
_pin_port(pin)) & ~(0x0f << pinid));
54 GPIO_CRH(
_pin_port(pin)) = (mode << pinid) |
55 (GPIO_CRH(
_pin_port(pin)) & ~(0x0f << pinid));
63 GPIO_CRL(
_pin_port(pin)) = (mode << bit) |
64 (GPIO_CRL(
_pin_port(pin)) & ~(0x04 << bit));
68 GPIO_CRH(
_pin_port(pin)) = (mode << bit) |
69 (GPIO_CRH(
_pin_port(pin)) & ~(0x04 << bit));
96 _pin_setmode(pin, GPIO_MODE_INPUT | (GPIO_CNF_INPUT_FLOAT << 2));
102 _pin_setmode(pin, GPIO_MODE_INPUT | (GPIO_CNF_INPUT_PULL_UPDOWN << 2));
108 _pin_setmode(pin, GPIO_MODE_INPUT | (GPIO_CNF_INPUT_PULL_UPDOWN << 2));
115 _pin_setmode(pin, GPIO_MODE_OUTPUT_50_MHZ | (GPIO_CNF_OUTPUT_PUSHPULL << 2));
120 _pin_setmode(pin, GPIO_MODE_OUTPUT_50_MHZ | (GPIO_CNF_OUTPUT_OPENDRAIN << 2));
125 _pin_setmode(pin, GPIO_MODE_OUTPUT_50_MHZ | (GPIO_CNF_OUTPUT_ALTFN_PUSHPULL << 2));
130 _pin_setmode(pin, GPIO_MODE_OUTPUT_50_MHZ | (GPIO_CNF_OUTPUT_ALTFN_OPENDRAIN << 2));
135 _pin_setmode(pin, GPIO_MODE_INPUT | (GPIO_CNF_INPUT_FLOAT << 2));
140 _pin_setmode(pin, GPIO_MODE_INPUT | (GPIO_CNF_INPUT_ANALOG << 2));