pub struct Port<'a> { /* private fields */ }
Expand description
GPIO port that manages 32 pins.
The SAM4L divides GPIOs into ports that each manage a group of 32 individual pins. There are up to three ports, depending particular chip (see1).
In general, the kernel and applications should care about individual GPIOPins. However, mirroring the hardware grouping in Rust is useful, internally, for correctly handling and dispatching interrupts.
The port itself is a set of 32-bit memory-mapped I/O registers. Each register has a bit for each pin in the port. Pins are, thus, named by their port and offset bit in each register that controls is. For example, the first port has pins called “PA00” thru “PA31”.
SAM4L datasheet section 23.8 (page 573): “Module Configuration” for GPIO ↩
Implementations§
Source§impl Port<'_>
impl Port<'_>
pub const fn new_port_a() -> Self
pub const fn new_port_b() -> Self
pub const fn new_port_c() -> Self
pub fn handle_interrupt(&self)
Trait Implementations§
Auto Trait Implementations§
impl<'a> !Freeze for Port<'a>
impl<'a> !RefUnwindSafe for Port<'a>
impl<'a> !Send for Port<'a>
impl<'a> !Sync for Port<'a>
impl<'a> Unpin for Port<'a>
impl<'a> !UnwindSafe for Port<'a>
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