modm API documentation
|
Typedefs | |
using | modm::platform::GpioUnused = GpioStatic< detail::DataUnused > |
using | modm::platform::GpioA0 = GpioStatic< detail::DataA0 > |
using | modm::platform::GpioOutputA0 = GpioA0 |
using | modm::platform::GpioInputA0 = GpioA0 |
using | modm::platform::GpioA1 = GpioStatic< detail::DataA1 > |
using | modm::platform::GpioOutputA1 = GpioA1 |
using | modm::platform::GpioInputA1 = GpioA1 |
using | modm::platform::GpioA2 = GpioStatic< detail::DataA2 > |
using | modm::platform::GpioOutputA2 = GpioA2 |
using | modm::platform::GpioInputA2 = GpioA2 |
using | modm::platform::GpioA3 = GpioStatic< detail::DataA3 > |
using | modm::platform::GpioOutputA3 = GpioA3 |
using | modm::platform::GpioInputA3 = GpioA3 |
using | modm::platform::GpioA4 = GpioStatic< detail::DataA4 > |
using | modm::platform::GpioOutputA4 = GpioA4 |
using | modm::platform::GpioInputA4 = GpioA4 |
using | modm::platform::GpioA5 = GpioStatic< detail::DataA5 > |
using | modm::platform::GpioOutputA5 = GpioA5 |
using | modm::platform::GpioInputA5 = GpioA5 |
using | modm::platform::GpioA6 = GpioStatic< detail::DataA6 > |
using | modm::platform::GpioOutputA6 = GpioA6 |
using | modm::platform::GpioInputA6 = GpioA6 |
using | modm::platform::GpioA7 = GpioStatic< detail::DataA7 > |
using | modm::platform::GpioOutputA7 = GpioA7 |
using | modm::platform::GpioInputA7 = GpioA7 |
using | modm::platform::GpioA8 = GpioStatic< detail::DataA8 > |
using | modm::platform::GpioOutputA8 = GpioA8 |
using | modm::platform::GpioInputA8 = GpioA8 |
using | modm::platform::GpioA9 = GpioStatic< detail::DataA9 > |
using | modm::platform::GpioOutputA9 = GpioA9 |
using | modm::platform::GpioInputA9 = GpioA9 |
using | modm::platform::GpioA10 = GpioStatic< detail::DataA10 > |
using | modm::platform::GpioOutputA10 = GpioA10 |
using | modm::platform::GpioInputA10 = GpioA10 |
using | modm::platform::GpioA11 = GpioStatic< detail::DataA11 > |
using | modm::platform::GpioOutputA11 = GpioA11 |
using | modm::platform::GpioInputA11 = GpioA11 |
using | modm::platform::GpioA12 = GpioStatic< detail::DataA12 > |
using | modm::platform::GpioOutputA12 = GpioA12 |
using | modm::platform::GpioInputA12 = GpioA12 |
using | modm::platform::GpioA13 = GpioStatic< detail::DataA13 > |
using | modm::platform::GpioOutputA13 = GpioA13 |
using | modm::platform::GpioInputA13 = GpioA13 |
using | modm::platform::GpioA14 = GpioStatic< detail::DataA14 > |
using | modm::platform::GpioOutputA14 = GpioA14 |
using | modm::platform::GpioInputA14 = GpioA14 |
using | modm::platform::GpioA15 = GpioStatic< detail::DataA15 > |
using | modm::platform::GpioOutputA15 = GpioA15 |
using | modm::platform::GpioInputA15 = GpioA15 |
using | modm::platform::GpioB0 = GpioStatic< detail::DataB0 > |
using | modm::platform::GpioOutputB0 = GpioB0 |
using | modm::platform::GpioInputB0 = GpioB0 |
using | modm::platform::GpioB1 = GpioStatic< detail::DataB1 > |
using | modm::platform::GpioOutputB1 = GpioB1 |
using | modm::platform::GpioInputB1 = GpioB1 |
using | modm::platform::GpioB2 = GpioStatic< detail::DataB2 > |
using | modm::platform::GpioOutputB2 = GpioB2 |
using | modm::platform::GpioInputB2 = GpioB2 |
using | modm::platform::GpioB3 = GpioStatic< detail::DataB3 > |
using | modm::platform::GpioOutputB3 = GpioB3 |
using | modm::platform::GpioInputB3 = GpioB3 |
using | modm::platform::GpioB4 = GpioStatic< detail::DataB4 > |
using | modm::platform::GpioOutputB4 = GpioB4 |
using | modm::platform::GpioInputB4 = GpioB4 |
using | modm::platform::GpioB5 = GpioStatic< detail::DataB5 > |
using | modm::platform::GpioOutputB5 = GpioB5 |
using | modm::platform::GpioInputB5 = GpioB5 |
using | modm::platform::GpioB6 = GpioStatic< detail::DataB6 > |
using | modm::platform::GpioOutputB6 = GpioB6 |
using | modm::platform::GpioInputB6 = GpioB6 |
using | modm::platform::GpioB7 = GpioStatic< detail::DataB7 > |
using | modm::platform::GpioOutputB7 = GpioB7 |
using | modm::platform::GpioInputB7 = GpioB7 |
using | modm::platform::GpioB8 = GpioStatic< detail::DataB8 > |
using | modm::platform::GpioOutputB8 = GpioB8 |
using | modm::platform::GpioInputB8 = GpioB8 |
using | modm::platform::GpioB9 = GpioStatic< detail::DataB9 > |
using | modm::platform::GpioOutputB9 = GpioB9 |
using | modm::platform::GpioInputB9 = GpioB9 |
using | modm::platform::GpioB10 = GpioStatic< detail::DataB10 > |
using | modm::platform::GpioOutputB10 = GpioB10 |
using | modm::platform::GpioInputB10 = GpioB10 |
using | modm::platform::GpioB11 = GpioStatic< detail::DataB11 > |
using | modm::platform::GpioOutputB11 = GpioB11 |
using | modm::platform::GpioInputB11 = GpioB11 |
using | modm::platform::GpioB12 = GpioStatic< detail::DataB12 > |
using | modm::platform::GpioOutputB12 = GpioB12 |
using | modm::platform::GpioInputB12 = GpioB12 |
using | modm::platform::GpioB13 = GpioStatic< detail::DataB13 > |
using | modm::platform::GpioOutputB13 = GpioB13 |
using | modm::platform::GpioInputB13 = GpioB13 |
using | modm::platform::GpioB14 = GpioStatic< detail::DataB14 > |
using | modm::platform::GpioOutputB14 = GpioB14 |
using | modm::platform::GpioInputB14 = GpioB14 |
using | modm::platform::GpioB15 = GpioStatic< detail::DataB15 > |
using | modm::platform::GpioOutputB15 = GpioB15 |
using | modm::platform::GpioInputB15 = GpioB15 |
using | modm::platform::GpioC0 = GpioStatic< detail::DataC0 > |
using | modm::platform::GpioOutputC0 = GpioC0 |
using | modm::platform::GpioInputC0 = GpioC0 |
using | modm::platform::GpioC1 = GpioStatic< detail::DataC1 > |
using | modm::platform::GpioOutputC1 = GpioC1 |
using | modm::platform::GpioInputC1 = GpioC1 |
using | modm::platform::GpioC2 = GpioStatic< detail::DataC2 > |
using | modm::platform::GpioOutputC2 = GpioC2 |
using | modm::platform::GpioInputC2 = GpioC2 |
using | modm::platform::GpioC3 = GpioStatic< detail::DataC3 > |
using | modm::platform::GpioOutputC3 = GpioC3 |
using | modm::platform::GpioInputC3 = GpioC3 |
using | modm::platform::GpioC4 = GpioStatic< detail::DataC4 > |
using | modm::platform::GpioOutputC4 = GpioC4 |
using | modm::platform::GpioInputC4 = GpioC4 |
using | modm::platform::GpioC5 = GpioStatic< detail::DataC5 > |
using | modm::platform::GpioOutputC5 = GpioC5 |
using | modm::platform::GpioInputC5 = GpioC5 |
using | modm::platform::GpioC6 = GpioStatic< detail::DataC6 > |
using | modm::platform::GpioOutputC6 = GpioC6 |
using | modm::platform::GpioInputC6 = GpioC6 |
using | modm::platform::GpioC7 = GpioStatic< detail::DataC7 > |
using | modm::platform::GpioOutputC7 = GpioC7 |
using | modm::platform::GpioInputC7 = GpioC7 |
using | modm::platform::GpioC8 = GpioStatic< detail::DataC8 > |
using | modm::platform::GpioOutputC8 = GpioC8 |
using | modm::platform::GpioInputC8 = GpioC8 |
using | modm::platform::GpioC9 = GpioStatic< detail::DataC9 > |
using | modm::platform::GpioOutputC9 = GpioC9 |
using | modm::platform::GpioInputC9 = GpioC9 |
using | modm::platform::GpioC10 = GpioStatic< detail::DataC10 > |
using | modm::platform::GpioOutputC10 = GpioC10 |
using | modm::platform::GpioInputC10 = GpioC10 |
using | modm::platform::GpioC11 = GpioStatic< detail::DataC11 > |
using | modm::platform::GpioOutputC11 = GpioC11 |
using | modm::platform::GpioInputC11 = GpioC11 |
using | modm::platform::GpioC12 = GpioStatic< detail::DataC12 > |
using | modm::platform::GpioOutputC12 = GpioC12 |
using | modm::platform::GpioInputC12 = GpioC12 |
using | modm::platform::GpioC13 = GpioStatic< detail::DataC13 > |
using | modm::platform::GpioOutputC13 = GpioC13 |
using | modm::platform::GpioInputC13 = GpioC13 |
using | modm::platform::GpioC14 = GpioStatic< detail::DataC14 > |
using | modm::platform::GpioOutputC14 = GpioC14 |
using | modm::platform::GpioInputC14 = GpioC14 |
using | modm::platform::GpioC15 = GpioStatic< detail::DataC15 > |
using | modm::platform::GpioOutputC15 = GpioC15 |
using | modm::platform::GpioInputC15 = GpioC15 |
using | modm::platform::GpioD0 = GpioStatic< detail::DataD0 > |
using | modm::platform::GpioOutputD0 = GpioD0 |
using | modm::platform::GpioInputD0 = GpioD0 |
using | modm::platform::GpioD1 = GpioStatic< detail::DataD1 > |
using | modm::platform::GpioOutputD1 = GpioD1 |
using | modm::platform::GpioInputD1 = GpioD1 |
using | modm::platform::GpioD2 = GpioStatic< detail::DataD2 > |
using | modm::platform::GpioOutputD2 = GpioD2 |
using | modm::platform::GpioInputD2 = GpioD2 |
using | modm::platform::GpioD3 = GpioStatic< detail::DataD3 > |
using | modm::platform::GpioOutputD3 = GpioD3 |
using | modm::platform::GpioInputD3 = GpioD3 |
using | modm::platform::GpioD4 = GpioStatic< detail::DataD4 > |
using | modm::platform::GpioOutputD4 = GpioD4 |
using | modm::platform::GpioInputD4 = GpioD4 |
using | modm::platform::GpioD5 = GpioStatic< detail::DataD5 > |
using | modm::platform::GpioOutputD5 = GpioD5 |
using | modm::platform::GpioInputD5 = GpioD5 |
using | modm::platform::GpioD6 = GpioStatic< detail::DataD6 > |
using | modm::platform::GpioOutputD6 = GpioD6 |
using | modm::platform::GpioInputD6 = GpioD6 |
using | modm::platform::GpioD7 = GpioStatic< detail::DataD7 > |
using | modm::platform::GpioOutputD7 = GpioD7 |
using | modm::platform::GpioInputD7 = GpioD7 |
using | modm::platform::GpioD8 = GpioStatic< detail::DataD8 > |
using | modm::platform::GpioOutputD8 = GpioD8 |
using | modm::platform::GpioInputD8 = GpioD8 |
using | modm::platform::GpioD9 = GpioStatic< detail::DataD9 > |
using | modm::platform::GpioOutputD9 = GpioD9 |
using | modm::platform::GpioInputD9 = GpioD9 |
using | modm::platform::GpioD10 = GpioStatic< detail::DataD10 > |
using | modm::platform::GpioOutputD10 = GpioD10 |
using | modm::platform::GpioInputD10 = GpioD10 |
using | modm::platform::GpioD11 = GpioStatic< detail::DataD11 > |
using | modm::platform::GpioOutputD11 = GpioD11 |
using | modm::platform::GpioInputD11 = GpioD11 |
using | modm::platform::GpioD12 = GpioStatic< detail::DataD12 > |
using | modm::platform::GpioOutputD12 = GpioD12 |
using | modm::platform::GpioInputD12 = GpioD12 |
using | modm::platform::GpioD13 = GpioStatic< detail::DataD13 > |
using | modm::platform::GpioOutputD13 = GpioD13 |
using | modm::platform::GpioInputD13 = GpioD13 |
using | modm::platform::GpioD14 = GpioStatic< detail::DataD14 > |
using | modm::platform::GpioOutputD14 = GpioD14 |
using | modm::platform::GpioInputD14 = GpioD14 |
using | modm::platform::GpioD15 = GpioStatic< detail::DataD15 > |
using | modm::platform::GpioOutputD15 = GpioD15 |
using | modm::platform::GpioInputD15 = GpioD15 |
using | modm::platform::GpioE0 = GpioStatic< detail::DataE0 > |
using | modm::platform::GpioOutputE0 = GpioE0 |
using | modm::platform::GpioInputE0 = GpioE0 |
using | modm::platform::GpioE1 = GpioStatic< detail::DataE1 > |
using | modm::platform::GpioOutputE1 = GpioE1 |
using | modm::platform::GpioInputE1 = GpioE1 |
using | modm::platform::GpioE2 = GpioStatic< detail::DataE2 > |
using | modm::platform::GpioOutputE2 = GpioE2 |
using | modm::platform::GpioInputE2 = GpioE2 |
using | modm::platform::GpioE3 = GpioStatic< detail::DataE3 > |
using | modm::platform::GpioOutputE3 = GpioE3 |
using | modm::platform::GpioInputE3 = GpioE3 |
using | modm::platform::GpioE4 = GpioStatic< detail::DataE4 > |
using | modm::platform::GpioOutputE4 = GpioE4 |
using | modm::platform::GpioInputE4 = GpioE4 |
using | modm::platform::GpioE5 = GpioStatic< detail::DataE5 > |
using | modm::platform::GpioOutputE5 = GpioE5 |
using | modm::platform::GpioInputE5 = GpioE5 |
using | modm::platform::GpioE6 = GpioStatic< detail::DataE6 > |
using | modm::platform::GpioOutputE6 = GpioE6 |
using | modm::platform::GpioInputE6 = GpioE6 |
using | modm::platform::GpioE7 = GpioStatic< detail::DataE7 > |
using | modm::platform::GpioOutputE7 = GpioE7 |
using | modm::platform::GpioInputE7 = GpioE7 |
using | modm::platform::GpioE8 = GpioStatic< detail::DataE8 > |
using | modm::platform::GpioOutputE8 = GpioE8 |
using | modm::platform::GpioInputE8 = GpioE8 |
using | modm::platform::GpioE9 = GpioStatic< detail::DataE9 > |
using | modm::platform::GpioOutputE9 = GpioE9 |
using | modm::platform::GpioInputE9 = GpioE9 |
using | modm::platform::GpioE10 = GpioStatic< detail::DataE10 > |
using | modm::platform::GpioOutputE10 = GpioE10 |
using | modm::platform::GpioInputE10 = GpioE10 |
using | modm::platform::GpioE11 = GpioStatic< detail::DataE11 > |
using | modm::platform::GpioOutputE11 = GpioE11 |
using | modm::platform::GpioInputE11 = GpioE11 |
using | modm::platform::GpioE12 = GpioStatic< detail::DataE12 > |
using | modm::platform::GpioOutputE12 = GpioE12 |
using | modm::platform::GpioInputE12 = GpioE12 |
using | modm::platform::GpioE13 = GpioStatic< detail::DataE13 > |
using | modm::platform::GpioOutputE13 = GpioE13 |
using | modm::platform::GpioInputE13 = GpioE13 |
using | modm::platform::GpioE14 = GpioStatic< detail::DataE14 > |
using | modm::platform::GpioOutputE14 = GpioE14 |
using | modm::platform::GpioInputE14 = GpioE14 |
using | modm::platform::GpioE15 = GpioStatic< detail::DataE15 > |
using | modm::platform::GpioOutputE15 = GpioE15 |
using | modm::platform::GpioInputE15 = GpioE15 |
using | modm::platform::GpioF0 = GpioStatic< detail::DataF0 > |
using | modm::platform::GpioOutputF0 = GpioF0 |
using | modm::platform::GpioInputF0 = GpioF0 |
using | modm::platform::GpioF1 = GpioStatic< detail::DataF1 > |
using | modm::platform::GpioOutputF1 = GpioF1 |
using | modm::platform::GpioInputF1 = GpioF1 |
using | modm::platform::GpioF2 = GpioStatic< detail::DataF2 > |
using | modm::platform::GpioOutputF2 = GpioF2 |
using | modm::platform::GpioInputF2 = GpioF2 |
using | modm::platform::GpioF9 = GpioStatic< detail::DataF9 > |
using | modm::platform::GpioOutputF9 = GpioF9 |
using | modm::platform::GpioInputF9 = GpioF9 |
using | modm::platform::GpioF10 = GpioStatic< detail::DataF10 > |
using | modm::platform::GpioOutputF10 = GpioF10 |
using | modm::platform::GpioInputF10 = GpioF10 |
using | modm::platform::GpioG10 = GpioStatic< detail::DataG10 > |
using | modm::platform::GpioOutputG10 = GpioG10 |
using | modm::platform::GpioInputG10 = GpioG10 |
lbuild module: modm:platform:gpio
This module provides register access to GPIO and connect their signals to the respective peripherals in a compile-time verified way. This module also enables all GPIO peripheral clocks on startup by default.
Each GPIO is represented as its own class with only static methods, which implement the modm::GpioIO
interface and provide additional platform-specific methods.
You can also use an unordered set of GPIOs, which is useful when configuring a large number of pins, since the register accesses will be bundled and thus less code is generated.
To write and read a set of GPIOs, you need to use an ordered implementation, which defines the pins from MSB to LSB, left-to-right. You can also check the number of ports in case your use-case requires atomic reads/writes.
For efficient access you can use a strictly-ordered implementation with a start pin and width. Note that you can reverse the data order with a negative width.
Finally, you can use an empty GPIO implementation in cases where the API requires a GPIO, but you don't need one, for example, a bit-banged SPI without MISO pin:
To make it easier to connect pins with peripherals, this module implements a compile-time map of (pin, signal, peripheral) to Alternate Function ID (AF). Note that you must provide both peripherals and signals to be unambiguous.
However, it is recommended to wrap this functionality into a separate function Driver::connect<Signals...>(config)
, so that additional driver specific pin configuration can be done:
Note that you may pass a variable number of signals to this connect function, leaving out signals you don't need and adding signals that are not required.
Generated with: {A, B, C, D, E, F, G} in [A, B, C, D, E, F, G]