libopencm3
A free/libre/open-source firmware library for various ARM Cortex-M3 microcontrollers.
gpio.h File Reference
Include dependency graph for gpio.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define GPIOA   GPIOA_BASE
 
#define GPIOB   GPIOB_BASE
 
#define GPIOC   GPIOC_BASE
 
#define GPIOD   GPIOD_BASE
 
#define GPIOE   GPIOE_BASE
 
#define GPIOF   GPIOF_BASE
 
#define GPIOG   GPIOG_BASE
 
#define GPIO_MAX_PIN   (7U)
 
#define GPIO0   BIT0
 
#define GPIO1   BIT1
 
#define GPIO2   BIT2
 
#define GPIO3   BIT3
 
#define GPIO4   BIT4
 
#define GPIO5   BIT5
 
#define GPIO6   BIT6
 
#define GPIO7   BIT7
 
#define GPIO_ALL   0xff
 
#define GPIO_MODER(base)   MMIO32((base) + 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 GPIOF_MODER   GPIO_MODER(GPIOF)
 
#define GPIOG_MODER   GPIO_MODER(GPIOG)
 
#define GPIO_MODER_MASK   0x3
 
#define GPIO_MODER_MASK_PIN(pin)   (GPIO_MODER_MASK << ((pin)*2))
 
#define GPIO_MODER_MODE(pin, mode)   (((mode)&GPIO_MODER_MASK) << ((pin)*2))
 
#define GPIO_OUTMASKR(base)   MMIO32((base) + 0x04)
 
#define GPIOA_OUTMASKR   GPIO_OUTMASKR(GPIOA)
 
#define GPIOB_OUTMASKR   GPIO_OUTMASKR(GPIOB)
 
#define GPIOC_OUTMASKR   GPIO_OUTMASKR(GPIOC)
 
#define GPIOD_OUTMASKR   GPIO_OUTMASKR(GPIOD)
 
#define GPIOE_OUTMASKR   GPIO_OUTMASKR(GPIOE)
 
#define GPIOF_OUTMASKR   GPIO_OUTMASKR(GPIOF)
 
#define GPIOG_OUTMASKR   GPIO_OUTMASKR(GPIOG)
 
#define GPIO_OUTR(base)   MMIO32((base) + 0x08)
 
#define GPIOA_OUTR   GPIO_OUTR(GPIOA)
 
#define GPIOB_OUTR   GPIO_OUTR(GPIOB)
 
#define GPIOC_OUTR   GPIO_OUTR(GPIOC)
 
#define GPIOD_OUTR   GPIO_OUTR(GPIOD)
 
#define GPIOE_OUTR   GPIO_OUTR(GPIOE)
 
#define GPIOF_OUTR   GPIO_OUTR(GPIOF)
 
#define GPIOG_OUTR   GPIO_OUTR(GPIOG)
 
#define GPIO_INR(base)   MMIO32((base) + 0x0C)
 
#define GPIOA_INR   GPIO_INR(GPIOA)
 
#define GPIOB_INR   GPIO_INR(GPIOB)
 
#define GPIOC_INR   GPIO_INR(GPIOC)
 
#define GPIOD_INR   GPIO_INR(GPIOD)
 
#define GPIOE_INR   GPIO_INR(GPIOE)
 
#define GPIOF_INR   GPIO_INR(GPIOF)
 
#define GPIOG_INR   GPIO_INR(GPIOG)
 
#define GPIO_INTENR(base)   MMIO32((base) + 0x10)
 
#define GPIOA_INTENR   GPIO_INTENR(GPIOA)
 
#define GPIOB_INTENR   GPIO_INTENR(GPIOB)
 
#define GPIOC_INTENR   GPIO_INTENR(GPIOC)
 
#define GPIOD_INTENR   GPIO_INTENR(GPIOD)
 
#define GPIOE_INTENR   GPIO_INTENR(GPIOE)
 
#define GPIOF_INTENR   GPIO_INTENR(GPIOF)
 
#define GPIOG_INTENR   GPIO_INTENR(GPIOG)
 
#define GPIO_INTFLAGR(base)   MMIO32((base) + 0x14)
 
#define GPIOA_INTFLAGR   GPIO_INTFLAGR(GPIOA)
 
#define GPIOB_INTFLAGR   GPIO_INTFLAGR(GPIOB)
 
#define GPIOC_INTFLAGR   GPIO_INTFLAGR(GPIOC)
 
#define GPIOD_INTFLAGR   GPIO_INTFLAGR(GPIOD)
 
#define GPIOE_INTFLAGR   GPIO_INTFLAGR(GPIOE)
 
#define GPIOF_INTFLAGR   GPIO_INTFLAGR(GPIOF)
 
#define GPIOG_INTFLAGR   GPIO_INTFLAGR(GPIOG)
 
#define GPIO_INTCLEARR(base)   MMIO32((base) + 0x1C)
 
#define GPIOA_INTCLEARR   GPIO_INTCLEARR(GPIOA)
 
#define GPIOB_INTCLEARR   GPIO_INTCLEARR(GPIOB)
 
#define GPIOC_INTCLEARR   GPIO_INTCLEARR(GPIOC)
 
#define GPIOD_INTCLEARR   GPIO_INTCLEARR(GPIOD)
 
#define GPIOE_INTCLEARR   GPIO_INTCLEARR(GPIOE)
 
#define GPIOF_INTCLEARR   GPIO_INTCLEARR(GPIOF)
 
#define GPIOG_INTCLEARR   GPIO_INTCLEARR(GPIOG)
 
#define GPIO_INTTYPE_EDGE   0U
 
#define GPIO_INTTYPE_LEVEL   1U
 
#define GPIO_INTTYPER(base)   MMIO32((base) + 0x20)
 
#define GPIOA_INTTYPER   GPIO_INTTYPER(GPIOA)
 
#define GPIOB_INTTYPER   GPIO_INTTYPER(GPIOB)
 
#define GPIOC_INTTYPER   GPIO_INTTYPER(GPIOC)
 
#define GPIOD_INTTYPER   GPIO_INTTYPER(GPIOD)
 
#define GPIOE_INTTYPER   GPIO_INTTYPER(GPIOE)
 
#define GPIOF_INTTYPER   GPIO_INTTYPER(GPIOF)
 
#define GPIOG_INTTYPER   GPIO_INTTYPER(GPIOG)
 
#define GPIO_INTCFG_FALLING_LOW   0U
 
#define GPIO_INTCFG_RISING_HIGH   1U
 
#define GPIO_INTCFGR(base)   MMIO32((base) + 0x24)
 
#define GPIOA_INTCFGR   GPIO_INTCFGR(GPIOA)
 
#define GPIOB_INTCFGR   GPIO_INTCFGR(GPIOB)
 
#define GPIOC_INTCFGR   GPIO_INTCFGR(GPIOC)
 
#define GPIOD_INTCFGR   GPIO_INTCFGR(GPIOD)
 
#define GPIOE_INTCFGR   GPIO_INTCFGR(GPIOE)
 
#define GPIOF_INTCFGR   GPIO_INTCFGR(GPIOF)
 
#define GPIOG_INTCFGR   GPIO_INTCFGR(GPIOG)
 
#define GPIO_INTEDGEBOTHR(base)   MMIO32((base) + 0x28)
 
#define GPIOA_INTEDGEBOTHR   GPIO_INTEDGEBOTHR(GPIOA)
 
#define GPIOB_INTEDGEBOTHR   GPIO_INTEDGEBOTHR(GPIOB)
 
#define GPIOC_INTEDGEBOTHR   GPIO_INTEDGEBOTHR(GPIOC)
 
#define GPIOD_INTEDGEBOTHR   GPIO_INTEDGEBOTHR(GPIOD)
 
#define GPIOE_INTEDGEBOTHR   GPIO_INTEDGEBOTHR(GPIOE)
 
#define GPIOF_INTEDGEBOTHR   GPIO_INTEDGEBOTHR(GPIOF)
 
#define GPIOG_INTEDGEBOTHR   GPIO_INTEDGEBOTHR(GPIOG)
 
#define GPIO_CLKSYNCR(base)   MMIO32((base) + 0x2C)
 
#define GPIOA_CLKSYNCR   GPIO_CLKSYNCR(GPIOA)
 
#define GPIOB_CLKSYNCR   GPIO_CLKSYNCR(GPIOB)
 
#define GPIOC_CLKSYNCR   GPIO_CLKSYNCR(GPIOC)
 
#define GPIOD_CLKSYNCR   GPIO_CLKSYNCR(GPIOD)
 
#define GPIOE_CLKSYNCR   GPIO_CLKSYNCR(GPIOE)
 
#define GPIOF_CLKSYNCR   GPIO_CLKSYNCR(GPIOF)
 
#define GPIOG_CLKSYNCR   GPIO_CLKSYNCR(GPIOG)
 
#define GPIO_DOSETR(base)   MMIO32((base) + 0x30)
 
#define GPIOA_DOSETR   GPIO_DOSETR(GPIOA)
 
#define GPIOB_DOSETR   GPIO_DOSETR(GPIOB)
 
#define GPIOC_DOSETR   GPIO_DOSETR(GPIOC)
 
#define GPIOD_DOSETR   GPIO_DOSETR(GPIOD)
 
#define GPIOE_DOSETR   GPIO_DOSETR(GPIOE)
 
#define GPIOF_DOSETR   GPIO_DOSETR(GPIOF)
 
#define GPIOG_DOSETR   GPIO_DOSETR(GPIOG)
 
#define GPIO_DOCLEARR(base)   MMIO32((base) + 0x34)
 
#define GPIOA_DOCLEARR   GPIO_DOCLEARR(GPIOA)
 
#define GPIOB_DOCLEARR   GPIO_DOCLEARR(GPIOB)
 
#define GPIOC_DOCLEARR   GPIO_DOCLEARR(GPIOC)
 
#define GPIOD_DOCLEARR   GPIO_DOCLEARR(GPIOD)
 
#define GPIOE_DOCLEARR   GPIO_DOCLEARR(GPIOE)
 
#define GPIOF_DOCLEARR   GPIO_DOCLEARR(GPIOF)
 
#define GPIOG_DOCLEARR   GPIO_DOCLEARR(GPIOG)
 

Enumerations

enum  gpio_mode_t { GPIO_ANALOG_INPUT = 0 , GPIO_PUSH_PULL_OUTPUT = 1 , GPIO_OPEN_DRAIN_OUTPUT = 2 , GPIO_HIGH_IMPEDENCE_INPUT = 3 }
 

Functions

void gpio_mode_setup (uint32_t gpioport, gpio_mode_t mode, ccs_pull_updown_t pull_up_down, uint16_t gpios)
 Set the IO mode and pull-up/down configuration for the pins. More...
 
void gpio_set_outmask (uint32_t gpioport, bool enable, uint16_t gpios)
 Set the output mask (disable changes) to the output pins specified. More...
 
void gpio_set (uint32_t gpioport, uint16_t gpios)
 Set the port pins specified to the true state. More...
 
void gpio_clear (uint32_t gpioport, uint16_t gpios)
 Clear the port pins specified to the false state. More...
 
uint16_t gpio_get (uint32_t gpioport, uint16_t gpios)
 Return a masked bitfield of the port specified. More...
 
void gpio_set_af (uint32_t gpioport, ccs_muxsel_func_t muxsel, uint16_t gpios)
 Set the function of the pin for this port. More...
 
void gpio_set_output_options (uint32_t gpioport, ccs_drive_strength_t strength, uint16_t gpios)
 Set special output options for the gpio pin. More...
 
void gpio_set_schmidt_trigger (uint32_t gpioport, bool enable, uint16_t gpios)
 Set input schmidt trigger for glitch rejection on the input pin. More...