Skip to content

Commit 2c75e09

Browse files
committed
Add trivial SPI example
1 parent 3d8d5f5 commit 2c75e09

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

examples/spi.rs

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
use embedded_hal::spi::{SpiDevice, Operation};
2+
use linux_embedded_hal::SpidevDevice;
3+
4+
struct Driver<SPI> {
5+
spi: SPI,
6+
}
7+
8+
impl<SPI> Driver<SPI>
9+
where
10+
SPI: SpiDevice,
11+
{
12+
pub fn new(spi: SPI) -> Self {
13+
Driver { spi }
14+
}
15+
16+
fn read_write(&mut self) -> Result<u8, SPI::Error> {
17+
let mut buffer = [ 1, 2, 3 ];
18+
let mut ops = [
19+
Operation::TransferInPlace(&mut buffer)
20+
];
21+
self.spi.transaction(&mut ops).and(Ok(buffer[0]))
22+
}
23+
}
24+
25+
fn main() {
26+
let dev = SpidevDevice::open("/dev/spidev0.0").unwrap();
27+
let mut driver = Driver::new(dev);
28+
let value = driver.read_write().unwrap();
29+
println!("Read value: {}", value);
30+
}

0 commit comments

Comments
 (0)