2个不稳定版本
使用旧Rust 2015
0.2.0 | 2019年5月11日 |
---|---|
0.1.0 | 2019年4月28日 |
2250 在 嵌入式开发
53KB
964 行
Rust KXCJ9/KXCJB 超低功耗三轴加速度传感器驱动程序
这是一个使用 embedded-hal
特性的,针对KXCJ9和KXCJB超低功耗三轴加速度传感器(高达+/-16g)的跨平台Rust驱动程序。
此驱动程序允许您
- 启用/禁用设备。请参阅
enable()
。 - 读取加速度测量值。请参阅
read()
。 - 读取未缩放的加速度测量值。请参阅
read_unscaled()
。 - 设置分辨率。请参阅
set_resolution()
。 - 设置输出数据率。请参阅
set_output_data_rate()
。 - 设置+/- G范围。请参阅
set_scale()
。 - 读取
WHO_AM_I
寄存器。请参阅who_am_i()
。 - 执行软件复位。请参阅
reset()
。 - 运行通信自检。请参阅
communication_self_test()
。 - 启用/禁用MEMS自检功能。请参阅
enable_mems_self_test()
。 - 中断支持
- 启用/禁用新的加速度数据就绪中断。请参阅
enable_data_ready_interrupt()
。 - 启用/禁用和配置唤醒运动检测中断。请参阅
enable_wake_up_interrupt()
。 - 启用/禁用物理中断引脚。请参阅
enable_interrupt_pin()
。 - 设置物理中断引脚极性。请参阅
set_interrupt_pin_polarity()
。 - 设置物理中断引脚的锁存行为。请参阅
set_interrupt_pin_latching()
。 - 检查是否发生了中断。请参阅
has_interrupt_happened()
。 - 清除中断。请参阅
clear_interrupts()
。 - 读取中断源信息。请参阅
read_interrupt_info()
。
- 启用/禁用新的加速度数据就绪中断。请参阅
设备
KXCJ9是一款高性能、超低功耗的三轴加速度计,专为移动应用设计。它提供我们最佳的功耗性能,并带有嵌入式唤醒功能、Fast-mode I²C以及高达14位的分辨率。KXCJ9传感器提供了改进的冲击、回流和温度性能,ASIC内部有电压调节器,可在1.8 V至3.6 V的指定产品性能范围内运行。
KXCJB是市场上目前最薄的三轴加速度计。这款超薄3x3x0.45mm低功耗加速度计也是我们功能最全面的产品之一。KXCJB提供高达14位的分辨率,以实现更高的精度。用户可选参数包括± 2g、4g或8g范围和可编程的低通滤波器的输出数据速率(ODR)。KXCJB还具备Kionix XAC感应元件,这是我们最先进的感应元件,能够在温度、冲击和回流后提供出色的稳定性。
通信通过I2C双向总线完成。
数据表
应用笔记
用法
要使用此驱动程序,请导入此crate和一个embedded_hal
实现,然后实例化适当的设备。
请在此存储库中查找使用硬件的附加示例:driver-examples
extern crate kxcj9;
extern crate linux_embedded_hal as hal;
use kxcj9::{Kxcj9, SlaveAddr};
fn main() {
let dev = hal::I2cdev::new("/dev/i2c-1").unwrap();
let address = SlaveAddr::default();
let mut sensor = Kxcj9::new_kxcj9_1018(dev, address);
sensor.enable().unwrap();
loop {
let acc = sensor.read().unwrap();
println!("X: {:2}, Y: {:2}, Z: {:2}", acc.x, acc.y, acc.z);
}
}
支持
有关问题、问题、功能请求和其他更改,请在github项目中提交问题。
许可证
许可如下
- Apache License,版本2.0 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确声明,否则任何有意提交给作品并由您根据Apache-2.0许可证定义的贡献,都应双许可如上所述,无任何附加条款或条件。
依赖关系
~71KB