|
OpenMPTL - STM32F4
C++ Microprocessor Template Library
|
General-purpose and alternate-function I/Os (GPIOs and AFIOs)
#include <gpio.hpp>
Public Types | |
| using | MODER = reg< uint32_t, base_addr+0x00, rw, moder_reset > |
| GPIO port mode register. More... | |
| using | OTYPER = reg< uint32_t, base_addr+0x04, rw > |
| GPIO port output type register. More... | |
| using | OSPEEDR = reg< uint32_t, base_addr+0x08, rw, ospeedr_reset > |
| GPIO port output speed register. More... | |
| using | PUPDR = reg< uint32_t, base_addr+0x0c, rw, pupdr_reset > |
| GPIO port pull-up/pull-down register. More... | |
| using | IDR = reg< uint32_t, base_addr+0x10, ro > |
| GPIO port input data register. More... | |
| using | ODR = reg< uint32_t, base_addr+0x14, rw > |
| GPIO port output data register. More... | |
| using | BSRR = reg< uint32_t, base_addr+0x18, wo > |
| GPIO port bit set/reset register. More... | |
| using | LCKR = reg< uint32_t, base_addr+0x1c, rw > |
| GPIO port configuration lock register. More... | |
| using | AFRL = reg< uint32_t, base_addr+0x20, rw > |
| GPIO alternate function low register. More... | |
| using | AFRH = reg< uint32_t, base_addr+0x24, rw > |
| GPIO alternate function high register. More... | |
| template<unsigned pin_no> | |
| using | MODERx = regbits< MODER, pin_no *2, 2 > |
| template<unsigned pin_no> | |
| using | OTYPERx = regbits< OTYPER, pin_no, 1 > |
| template<unsigned pin_no> | |
| using | OSPEEDRx = regbits< OSPEEDR, pin_no *2, 2 > |
| template<unsigned pin_no> | |
| using | PUPDRx = regbits< PUPDR, pin_no *2, 2 > |
| template<unsigned pin_no> | |
| using | IDRx = regbits< IDR, pin_no, 1 > |
| template<unsigned pin_no> | |
| using | ODRx = regbits< ODR, pin_no, 1 > |
| template<unsigned pin_no> | |
| using | AFRLx = regbits< AFRL, pin_no *4, 4 > |
| template<unsigned pin_no> | |
| using | AFRHx = regbits< AFRH,(pin_no % 8) *4, 4 > |
| pin_no = [0..7] More... | |
| template<unsigned pin_no> | |
| using | AFRx = typename std::conditional<(pin_no< 8), AFRLx< pin_no >, AFRHx< pin_no > >::type |
| pin_no = [8..15] More... | |
Static Public Attributes | |
| static constexpr unsigned | gpio_no = port - 'A' |
| static constexpr reg_addr_t | base_addr = 0x40020000 + (gpio_no * 0x0400) |
| static constexpr uint32_t | moder_reset |
| static constexpr uint32_t | ospeedr_reset |
| static constexpr uint32_t | pupdr_reset |
| using mptl::GPIO< port >::AFRH = reg< uint32_t, base_addr + 0x24, rw > |
| using mptl::GPIO< port >::AFRHx = regbits< AFRH , (pin_no % 8) * 4, 4 > |
| using mptl::GPIO< port >::AFRL = reg< uint32_t, base_addr + 0x20, rw > |
| using mptl::GPIO< port >::AFRLx = regbits< AFRL , pin_no * 4 , 4 > |
| using mptl::GPIO< port >::AFRx = typename std::conditional< (pin_no < 8), AFRLx<pin_no>, AFRHx<pin_no> >::type |
GPIO alternate function: returns AFRLx or AFRHx type dependent on pin_no.
NOTE: this is not from the reference manual
| using mptl::GPIO< port >::BSRR = reg< uint32_t, base_addr + 0x18, wo > |
| using mptl::GPIO< port >::IDR = reg< uint32_t, base_addr + 0x10, ro > |
| using mptl::GPIO< port >::IDRx = regbits< IDR , pin_no , 1 > |
| using mptl::GPIO< port >::LCKR = reg< uint32_t, base_addr + 0x1c, rw > |
| using mptl::GPIO< port >::MODER = reg< uint32_t, base_addr + 0x00, rw, moder_reset > |
| using mptl::GPIO< port >::MODERx = regbits< MODER , pin_no * 2 , 2 > |
| using mptl::GPIO< port >::ODR = reg< uint32_t, base_addr + 0x14, rw > |
| using mptl::GPIO< port >::ODRx = regbits< ODR , pin_no , 1 > |
| using mptl::GPIO< port >::OSPEEDR = reg< uint32_t, base_addr + 0x08, rw, ospeedr_reset > |
| using mptl::GPIO< port >::OSPEEDRx = regbits< OSPEEDR, pin_no * 2 , 2 > |
| using mptl::GPIO< port >::OTYPER = reg< uint32_t, base_addr + 0x04, rw > |
| using mptl::GPIO< port >::OTYPERx = regbits< OTYPER , pin_no , 1 > |
| using mptl::GPIO< port >::PUPDR = reg< uint32_t, base_addr + 0x0c, rw, pupdr_reset > |
| using mptl::GPIO< port >::PUPDRx = regbits< PUPDR , pin_no * 2 , 2 > |
|
static |
|
static |
|
static |
|
static |
|
static |
1.8.13