Struct riot_wrappers::gpio::GPIO
source · pub struct GPIO(/* private fields */);
Available on
riot_module_periph_gpio
only.Expand description
A Rust representation of RIOT’s gpio_t, representing a single pin in no particular configuration.
Implementations§
source§impl GPIO
impl GPIO
sourcepub fn from_c(gpio: gpio_t) -> Option<Self>
pub fn from_c(gpio: gpio_t) -> Option<Self>
Create a GPIO from a gpio_t
This is as safe as any device acquisition from C is – RIOT’s drivers are (hopefully) written in such a way that concurrent writes to adjacent pins don’t interfere, and those to the same device are “just” racy.
(This also means that it is completely possible to have two objects for the same pin configured in different states, changing the mode while the other is around. The underlying operating system operates this, but interactions with a reconfigured pin will obviously not have the intended effect).
sourcepub fn from_port_and_pin(port: u32, pin: u32) -> Option<Self>
pub fn from_port_and_pin(port: u32, pin: u32) -> Option<Self>
Create a GPIO from its port and pin numbers
let pin_c8 = GPIO::from_port_and_pin(3, 8);
See [from_c] for safety constraints.
pub fn configure_as_output( self, mode: OutputMode ) -> Result<OutputGPIO, NumericError>
pub fn configure_as_input( self, mode: InputMode ) -> Result<InputGPIO, NumericError>
pub fn configure_as_inout( self, mode: InOutMode ) -> Result<InOutGPIO, NumericError>
Auto Trait Implementations§
impl RefUnwindSafe for GPIO
impl Send for GPIO
impl Sync for GPIO
impl Unpin for GPIO
impl UnwindSafe for GPIO
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more