4个版本
0.1.3 | 2021年5月20日 |
---|---|
0.1.2 | 2021年5月16日 |
0.1.1 | 2021年5月15日 |
0.1.0 | 2021年5月15日 |
1964 在 嵌入式开发
27KB
568 行
lis2dw12
一个兼容no_std的Rust驱动,用于低功耗ST 3轴MEMS 14位加速度计LIS2DW12,通过SPI总线工作
示例
// create the device
// where spi implements Transfer<u8, Error = SpiError>,
// and cs implements OutputPin<Error = PinError>
let mut accel = Lis2dw12::new(spi, cs);
// confirm that communication is working
accel.check_who_am_i()?;
// set up the device
accel.set_operating_mode(OperatingMode::HighPerformance)?;
accel.set_low_noise(true)?;
accel.set_full_scale_selection(FullScaleSelection::PlusMinus2G)?;
accel.set_output_data_rate(OutputDataRate::Hp100HzLp100Hz)?; // 100 Hz
// get raw data
let raw = accel.accel_raw()?;
rprintln!("raw: {:?}", raw);
或者查看这里使用STM32 bluepill的示例here
请注意,这个crate实现了加速度计crate中的trait。如果你在解决问题时遇到错误传播问题,请查看上面链接的bluepill工作示例。
特性
此crate默认实现了RawAccelerometer<I16x3>
trait。如果你需要Accelerometer
trait,则启用out_f32
特性。例如
# cargo.toml
lis2dw12 = { version = "0.1.0", features = ["out_f32"] }
此crate还公开了一个实验性的异步接口,可以在非阻塞模块中找到。要使用此模块,必须启用non_blocking
特性。此特性仅在Rust nightly版本中可用。
# cargo.toml for async (requires Nightly)
lis2dw12 = { version = "0.1.0", features = ["out_f32", "non_blocking"] }
资源
许可
双重许可任选
Apache许可证版本2.0 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
依赖
~0.5–0.8MB
~19K SLoC