#加速度计 #嵌入式HAL驱动 #MEMS

no-std kxcj9

适用于KXCJ9超低功耗三轴加速度传感器的跨平台Rust驱动程序

2个不稳定版本

使用旧Rust 2015

0.2.0 2019年5月11日
0.1.0 2019年4月28日

2250嵌入式开发

MIT/Apache

53KB
964

Rust KXCJ9/KXCJB 超低功耗三轴加速度传感器驱动程序

crates.io Docs Build Status Coverage Status

这是一个使用 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-2.0许可证定义的贡献,都应双许可如上所述,无任何附加条款或条件。

依赖关系

~71KB