libopencm3
A free/libre/open-source firmware library for various ARM Cortex-M3 microcontrollers.
l1/gpio.h File Reference
Include dependency graph for l1/gpio.h:

Go to the source code of this file.

Macros

#define GPIOA   GPIO_PORT_A_BASE
 
#define GPIOB   GPIO_PORT_B_BASE
 
#define GPIOC   GPIO_PORT_C_BASE
 
#define GPIOD   GPIO_PORT_D_BASE
 
#define GPIOE   GPIO_PORT_E_BASE
 
#define GPIOH   GPIO_PORT_H_BASE
 
#define GPIO_MODER(port)   MMIO32((port) + 0x00)
 
#define GPIOA_MODER   GPIO_MODER(GPIOA)
 
#define GPIOB_MODER   GPIO_MODER(GPIOB)
 
#define GPIOC_MODER   GPIO_MODER(GPIOC)
 
#define GPIOD_MODER   GPIO_MODER(GPIOD)
 
#define GPIOE_MODER   GPIO_MODER(GPIOE)
 
#define GPIOH_MODER   GPIO_MODER(GPIOH)
 
#define GPIO_OTYPER(port)   MMIO32((port) + 0x04)
 
#define GPIOA_OTYPER   GPIO_OTYPER(GPIOA)
 
#define GPIOB_OTYPER   GPIO_OTYPER(GPIOB)
 
#define GPIOC_OTYPER   GPIO_OTYPER(GPIOC)
 
#define GPIOD_OTYPER   GPIO_OTYPER(GPIOD)
 
#define GPIOE_OTYPER   GPIO_OTYPER(GPIOE)
 
#define GPIOH_OTYPER   GPIO_OTYPER(GPIOH)
 
#define GPIO_OSPEEDR(port)   MMIO32((port) + 0x08)
 
#define GPIOA_OSPEEDR   GPIO_OSPEEDR(GPIOA)
 
#define GPIOB_OSPEEDR   GPIO_OSPEEDR(GPIOB)
 
#define GPIOC_OSPEEDR   GPIO_OSPEEDR(GPIOC)
 
#define GPIOD_OSPEEDR   GPIO_OSPEEDR(GPIOD)
 
#define GPIOE_OSPEEDR   GPIO_OSPEEDR(GPIOE)
 
#define GPIOH_OSPEEDR   GPIO_OSPEEDR(GPIOH)
 
#define GPIO_PUPDR(port)   MMIO32((port) + 0x0c)
 
#define GPIOA_PUPDR   GPIO_PUPDR(GPIOA)
 
#define GPIOB_PUPDR   GPIO_PUPDR(GPIOB)
 
#define GPIOC_PUPDR   GPIO_PUPDR(GPIOC)
 
#define GPIOD_PUPDR   GPIO_PUPDR(GPIOD)
 
#define GPIOE_PUPDR   GPIO_PUPDR(GPIOE)
 
#define GPIOH_PUPDR   GPIO_PUPDR(GPIOH)
 
#define GPIO_IDR(port)   MMIO32((port) + 0x10)
 
#define GPIOA_IDR   GPIO_IDR(GPIOA)
 
#define GPIOB_IDR   GPIO_IDR(GPIOB)
 
#define GPIOC_IDR   GPIO_IDR(GPIOC)
 
#define GPIOD_IDR   GPIO_IDR(GPIOD)
 
#define GPIOE_IDR   GPIO_IDR(GPIOE)
 
#define GPIOH_IDR   GPIO_IDR(GPIOH)
 
#define GPIO_ODR(port)   MMIO32((port) + 0x14)
 
#define GPIOA_ODR   GPIO_ODR(GPIOA)
 
#define GPIOB_ODR   GPIO_ODR(GPIOB)
 
#define GPIOC_ODR   GPIO_ODR(GPIOC)
 
#define GPIOD_ODR   GPIO_ODR(GPIOD)
 
#define GPIOE_ODR   GPIO_ODR(GPIOE)
 
#define GPIOH_ODR   GPIO_ODR(GPIOH)
 
#define GPIO_BSRR(port)   MMIO32((port) + 0x18)
 
#define GPIOA_BSRR   GPIO_BSRR(GPIOA)
 
#define GPIOB_BSRR   GPIO_BSRR(GPIOB)
 
#define GPIOC_BSRR   GPIO_BSRR(GPIOC)
 
#define GPIOD_BSRR   GPIO_BSRR(GPIOD)
 
#define GPIOE_BSRR   GPIO_BSRR(GPIOE)
 
#define GPIOH_BSRR   GPIO_BSRR(GPIOH)
 
#define GPIO_LCKR(port)   MMIO32((port) + 0x1C)
 
#define GPIOA_LCKR   GPIO_LCKR(GPIOA)
 
#define GPIOB_LCKR   GPIO_LCKR(GPIOB)
 
#define GPIOC_LCKR   GPIO_LCKR(GPIOC)
 
#define GPIOD_LCKR   GPIO_LCKR(GPIOD)
 
#define GPIOE_LCKR   GPIO_LCKR(GPIOE)
 
#define GPIOH_LCKR   GPIO_LCKR(GPIOH)
 
#define GPIO_AFRL(port)   MMIO32((port) + 0x20)
 
#define GPIOA_AFRL   GPIO_AFRL(GPIOA)
 
#define GPIOB_AFRL   GPIO_AFRL(GPIOB)
 
#define GPIOC_AFRL   GPIO_AFRL(GPIOC)
 
#define GPIOD_AFRL   GPIO_AFRL(GPIOD)
 
#define GPIOE_AFRL   GPIO_AFRL(GPIOE)
 
#define GPIOH_AFRL   GPIO_AFRL(GPIOH)
 
#define GPIO_AFRH(port)   MMIO32((port) + 0x24)
 
#define GPIOA_AFRH   GPIO_AFRH(GPIOA)
 
#define GPIOB_AFRH   GPIO_AFRH(GPIOB)
 
#define GPIOC_AFRH   GPIO_AFRH(GPIOC)
 
#define GPIOD_AFRH   GPIO_AFRH(GPIOD)
 
#define GPIOE_AFRH   GPIO_AFRH(GPIOE)
 
#define GPIOH_AFRH   GPIO_AFRH(GPIOH)
 
#define GPIO_MODE(n, mode)   ((mode) << (2 * (n)))
 
#define GPIO_MODE_MASK(n)   (0x3 << (2 * (n)))
 
#define GPIO_MODE_INPUT   0x00 /* Default */
 
#define GPIO_MODE_OUTPUT   0x01
 
#define GPIO_MODE_AF   0x02
 
#define GPIO_MODE_ANALOG   0x03
 
#define GPIO_OTYPE_PP   0x0
 Push-Pull. More...
 
#define GPIO_OTYPE_OD   0x1
 Open Drain. More...
 
#define GPIO_OSPEED(n, speed)   ((speed) << (2 * (n)))
 
#define GPIO_OSPEED_MASK(n)   (0x3 << (2 * (n)))
 
#define GPIO_OSPEED_400KHZ   0x0
 
#define GPIO_OSPEED_2MHZ   0x1
 
#define GPIO_OSPEED_10MHZ   0x2
 
#define GPIO_OSPEED_40MHZ   0x3
 
#define GPIO_PUPD(n, pupd)   ((pupd) << (2 * (n)))
 
#define GPIO_PUPD_MASK(n)   (0x3 << (2 * (n)))
 
#define GPIO_PUPD_NONE   0x0
 
#define GPIO_PUPD_PULLUP   0x1
 
#define GPIO_PUPD_PULLDOWN   0x2
 
#define GPIO_LCKK   (1 << 16)
 
#define GPIO_AFR(n, af)   ((af) << ((n) * 4))
 
#define GPIO_AFR_MASK(n)   (0xf << ((n) * 4))
 
#define GPIO_AF0   0x0
 
#define GPIO_AF1   0x1
 
#define GPIO_AF2   0x2
 
#define GPIO_AF3   0x3
 
#define GPIO_AF4   0x4
 
#define GPIO_AF5   0x5
 
#define GPIO_AF6   0x6
 
#define GPIO_AF7   0x7
 
#define GPIO_AF8   0x8
 
#define GPIO_AF9   0x9
 
#define GPIO_AF10   0xa
 
#define GPIO_AF11   0xb
 
#define GPIO_AF12   0xc
 
#define GPIO_AF13   0xd
 
#define GPIO_AF14   0xe
 
#define GPIO_AF15   0xf
 

Functions

void gpio_mode_setup (uint32_t gpioport, uint8_t mode, uint8_t pull_up_down, uint16_t gpios)
 Set GPIO Pin Mode. More...
 
void gpio_set_output_options (uint32_t gpioport, uint8_t otype, uint8_t speed, uint16_t gpios)
 Set GPIO Output Options. More...
 
void gpio_set_af (uint32_t gpioport, uint8_t alt_func_num, uint16_t gpios)
 Set GPIO Alternate Function Selection. More...