#define MAP_AF_100(a, af) do { \ gpio_mode_setup( a ## _PORT, GPIO_MODE_AF, GPIO_PUPD_NONE, a ); \ gpio_set_output_options( a ## _PORT, GPIO_OTYPE_PP, GPIO_OSPEED_100MHZ, a); \ gpio_set_af( a ## _PORT, af, a); \ } while (0) #define MAP_AF(a, af) do { \ gpio_mode_setup( a ## _PORT, GPIO_MODE_AF, GPIO_PUPD_NONE, a ); \ gpio_set_output_options( a ## _PORT, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, a); \ gpio_set_af( a ## _PORT, af, a); \ } while (0) #define MAP_AF_PU(a, af) do { \ gpio_mode_setup( a ## _PORT, GPIO_MODE_AF, GPIO_PUPD_PULLUP, a ); \ gpio_set_output_options( a ## _PORT, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, a); \ gpio_set_af( a ## _PORT, af, a); \ } while (0) #define MAP_AF_OD(a, af) do { \ gpio_mode_setup( a ## _PORT, GPIO_MODE_AF, GPIO_PUPD_PULLUP, a ); \ gpio_set_output_options( a ## _PORT, GPIO_OTYPE_OD, GPIO_OSPEED_50MHZ, a); \ gpio_set_af( a ## _PORT, af, a); \ } while (0) #define MAP_OUTPUT_PP(a) do { \ gpio_mode_setup( a ## _PORT, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, a ); \ gpio_set_output_options( a ## _PORT, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, a); \ } while (0) #define MAP_OUTPUT_PP_PU(a) do { \ gpio_mode_setup( a ## _PORT, GPIO_MODE_OUTPUT, GPIO_PUPD_PULLUP, a ); \ gpio_set_output_options( a ## _PORT, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, a); \ } while (0) #define MAP_OUTPUT_OD(a) do { \ gpio_mode_setup( a ## _PORT, GPIO_MODE_OUTPUT, GPIO_PUPD_PULLUP, a ); \ gpio_set_output_options( a ## _PORT, GPIO_OTYPE_OD, GPIO_OSPEED_50MHZ, a); \ } while (0) #define MAP_INPUT_PU(a) do { \ gpio_mode_setup( a ## _PORT, GPIO_MODE_INPUT, GPIO_PUPD_PULLUP, a ); \ } while (0) #define MAP_INPUT(a) do { \ gpio_mode_setup( a ## _PORT, GPIO_MODE_INPUT, GPIO_PUPD_NONE, a ); \ } while (0) #define CLEAR(a) gpio_clear( a ## _PORT, a) #define SET(a) gpio_set( a ## _PORT, a) #define GET(a) gpio_get( a ## _PORT, a)