Skip to content
/ rppal Public
forked from golemparts/rppal

A Rust library that provides access to the Raspberry Pi GPIO peripheral through either /dev/gpiomem or /dev/mem.

License

Notifications You must be signed in to change notification settings

LazyBun/rppal

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RPPAL - Raspberry Pi Peripheral Access Library

Build Status crates.io MIT licensed

RPPAL is a Rust library that provides access to the Raspberry Pi GPIO peripheral through either /dev/gpiomem or /dev/mem. Support for additional peripherals, as well as useful helper functions, will be added in future updates. The library is compatible with the BCM2835, BCM2836 and BCM2837 SoCs.

Backwards compatibility for minor revisions isn't guaranteed until the library reaches v1.0.0.

Documentation

All documentation can be found at docs.golemparts.com/rppal.

Usage

Add a dependency for rppal to your Cargo.toml.

[dependencies]
rppal = "0.1"

Link and import rppal from your crate root.

extern crate rppal;

Call GPIO::new() to create a new GPIO with the default settings. In production code, you'll want to parse the result rather than unwrap it.

use rppal::gpio;

let mut gpio = gpio::GPIO::new().unwrap();

Example

extern crate rppal;

use std::thread;
use std::time::Duration;

use rppal::gpio::{GPIO, Mode, Level};
use rppal::system::DeviceInfo;

// The GPIO module uses BCM pin numbering. BCM 18 equates to physical pin 12.
const GPIO_LED: u8 = 18;

fn main() {
    let device_info = DeviceInfo::new().unwrap();
    println!("Model: {} (SoC: {})", device_info.model(), device_info.soc());

    let mut gpio = GPIO::new().unwrap();
    gpio.set_mode(GPIO_LED, Mode::Output);

    // Blink an LED attached to the pin on and off
    gpio.write(GPIO_LED, Level::High);
    thread::sleep(Duration::from_millis(500));
    gpio.write(GPIO_LED, Level::Low);
}

Caution

Always be careful when working with the Raspberry Pi's GPIO. Improper use can lead to permanently damaging the Pi and/or external components.

Copyright and license

Copyright (c) 2017 Rene van der Meer. Released under the MIT license.

About

A Rust library that provides access to the Raspberry Pi GPIO peripheral through either /dev/gpiomem or /dev/mem.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Rust 100.0%