pub struct Gpio { /* private fields */ }
Expand description
Provides access to the Raspberry Pi’s GPIO peripheral.
Implementations§
source§impl Gpio
impl Gpio
sourcepub fn get(&self, pin: u8) -> Result<Pin>
pub fn get(&self, pin: u8) -> Result<Pin>
Returns a Pin
for the specified BCM GPIO number.
Retrieving a GPIO pin grants access to the pin through an owned Pin
instance.
If the pin is already in use, get
returns Err(
Error::PinUsed
)
.
After a Pin
(or a derived InputPin
, OutputPin
or IoPin
) goes out
of scope, it can be retrieved again through another get
call.
sourcepub fn poll_interrupts<'a>(
&self,
pins: &[&'a InputPin],
reset: bool,
timeout: Option<Duration>
) -> Result<Option<(&'a InputPin, Level)>>
pub fn poll_interrupts<'a>( &self, pins: &[&'a InputPin], reset: bool, timeout: Option<Duration> ) -> Result<Option<(&'a InputPin, Level)>>
Blocks until an interrupt is triggered on any of the specified pins, or until a timeout occurs.
Only pins that have been previously configured for synchronous interrupts using InputPin::set_interrupt
can be polled. Asynchronous interrupt triggers are automatically polled on a separate thread.
Calling poll_interrupts
blocks any other calls to poll_interrupts
or InputPin::poll_interrupt
until
it returns. If you need to poll multiple pins simultaneously on different threads, consider using
asynchronous interrupts with InputPin::set_async_interrupt
instead.
Setting reset
to false
returns any cached interrupt trigger events if available. Setting reset
to true
clears all cached events before polling for new events.
The timeout
duration indicates how long the call to poll_interrupts
will block while waiting
for interrupt trigger events, after which an Ok(None)
is returned.
timeout
can be set to None
to wait indefinitely.
When an interrupt event is triggered, poll_interrupts
returns
Ok((&
InputPin
,
Level
))
containing the corresponding pin and logic level. If multiple events trigger
at the same time, only the first one is returned. The remaining events are cached and will be returned
the next time InputPin::poll_interrupt
or poll_interrupts
is called.