Module f3::examples::spi_read_single
[−]
[src]
SPI - read one of the gyroscope registers
#![no_main] #![no_std] #[macro_use] extern crate f3; use f3::peripheral; #[export_name = "main"] pub fn main() -> ! { // WHO_AM_I const REGISTER_ADDRESS: u8 = 0x0f; // Read the register const READ: u8 = 1 << 7; let value = unsafe { let spi1 = peripheral::spi1_mut(); let gpioe = peripheral::gpioe(); // CS: low gpioe.bsrr.write(|w| w.br3(true)); while !spi1.sr.read().txe() {} spi1.dr.write_u8(READ | REGISTER_ADDRESS); while !spi1.sr.read().txe() {} spi1.dr.write_u8(0x0); while !spi1.sr.read().rxne() {} spi1.dr.read_u8(); while !spi1.sr.read().rxne() {} // CS: high gpioe.bsrr.write(|w| w.bs3(true)); spi1.dr.read_u8() }; iprintln!("0x{:02x} - 0x{:02x}", REGISTER_ADDRESS, value); loop {} }