#ifndef __STM32GPIOMACROS_H__ #define __STM32GPIOMACROS_H__ #define OUTPUT(pin) (0x01U << (pin * 2)) #define PULLUP(pin) (0x1U << (pin* 2)) #define ALTFUNC(pin) ((0x2) << (pin * 2)) #define PINMASK(pin) ((0x3) << (pin * 2)) #define SETAF(PORT,PIN,AF) PORT->AFR[(PIN < 8 ? 0 : 1)] |= AF << ((PIN < 8 ? PIN : (PIN - 8)) * 4) #define ANALOG(pin) (0x03 << (pin * 2)) #endif /* __STM32GPIOMACROS_H__ */