#include <digital_io.h>
Public Member Functions | |
McuxpressoDigitalOut (GPIO_Type *base, uint32_t port, uint32_t pin, pw::digital_io::State initial_state) | |
bool | is_enabled () const |
Returns true if the output is enabled. | |
![]() | |
Status | SetState (State state) |
Status | SetStateActive () |
Status | SetStateInactive () |
![]() | |
constexpr bool | provides_input () const |
constexpr bool | provides_output () const |
constexpr bool | provides_interrupt () const |
Result< State > | GetState () |
Status | SetState (State state) |
Result< bool > | IsStateActive () |
Status | SetStateActive () |
Status | SetStateInactive () |
Status | SetInterruptHandler (InterruptTrigger trigger, InterruptHandler &&handler) |
Status | ClearInterruptHandler () |
Status | EnableInterruptHandler () |
Status | DisableInterruptHandler () |
Status | Enable () |
Status | Disable () |
Private Member Functions | |
pw::Status | DoEnable (bool enable) override |
pw::Status | DoSetState (pw::digital_io::State state) override |
Provides output-only support for an MCUXpresso GPIO pin.
Class-specific behaviors:
Disable
is called, the GPIO is configured as an input, which disables the output driver. pw::digital_io::McuxpressoDigitalOut::McuxpressoDigitalOut | ( | GPIO_Type * | base, |
uint32_t | port, | ||
uint32_t | pin, | ||
pw::digital_io::State | initial_state | ||
) |
Constructs a McuxpressoDigitalOut for a specific GPIO module+port+pin.
[in] | base | The base address of the GPIO module (e.g. GPIO ). |
[in] | port | The port number on the given GPIO module. |
[in] | pin | The pin number on the given GPIO port. |
[in] | initial_state | The state to be driven when the line is enabled. |
|
overrideprivatevirtual |
Enables the line to initialize it into the default state as determined by the backend or disables the line to power down any pull-up/down resistors and disconnect from any voltage sources.
This may enable pull-up/down resistors, drive the line high/low, etc. The line must be enabled before getting/setting the state or enabling interrupts. Callers are responsible for waiting for the voltage level to settle after this call returns.
Calling DoEnable(true) on an already-enabled line should be a no-op, it shouldn't reset the line back to the "default state".
Calling DoEnable(false) should force the line into the disabled state, If the line was not initialized at object construction time.
embed:rst:leading-asterisk * * .. pw-status-codes:: * * OK: The line is enabled and ready for use. * * Returns other status codes as defined by the backend. * *
Implements pw::digital_io::DigitalIoOptional.
|
overrideprivatevirtual |
Sets the state of the line.
Callers are responsible to wait for the voltage level to settle after this call returns.
embed:rst:leading-asterisk * * .. pw-status-codes:: * * OK: The state has been set. * * FAILED_PRECONDITION: The line has not been enabled. * * Returns other status codes as defined by the backend. * *
Implements pw::digital_io::DigitalIoOptional.