pub struct GPIO(gpio_t);
riot_module_periph_gpio
only.Expand description
A Rust representation of RIOT’s gpio_t, representing a single pin in no particular configuration.
Tuple Fields§
§0: gpio_t
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
use riot_wrappers::gpio::GPIO;
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 Freeze for GPIO
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
Source§impl<T> IntoSwitch for T
impl<T> IntoSwitch for T
Source§fn into_switch<ActiveLevel>(self) -> Switch<T, ActiveLevel>
fn into_switch<ActiveLevel>(self) -> Switch<T, ActiveLevel>
Source§fn into_active_high_switch(self) -> Switch<Self, ActiveHigh>where
Self: Sized,
fn into_active_high_switch(self) -> Switch<Self, ActiveHigh>where
Self: Sized,
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 1 byte