#touch #driver #embedded-hal-driver

no-std AT42QT2120

AT42QT2120的跨平台Rust驱动程序

3次发布

使用旧的Rust 2015

0.1.2 2020年4月20日
0.1.1 2019年11月24日
0.1.0 2019年11月24日

嵌入式开发中排名946

Download history 6/week @ 2024-04-02

每月下载62

LGPL-3.0

16KB
152

AT42QT2120 Rust驱动程序

AT42QT2120的跨平台Rust驱动程序

AT42QT2120

AT42QT2120是一款具有12个通道的触摸驱动程序,其中3个通道可以用作滑块或滚轮。它具有I2C接口。数据表:http://ww1.microchip.com/downloads/en/devicedoc/doc9634.pdf

状态

基本支持已在硬件上测试通过

  • 支持读取按键
  • 支持读取原始按键值
  • 支持读取滑块
  • 可配置滑块/滚轮
  • 可配置按键阈值
  • 启用/禁用按键
  • 可配置检测积分器

不支持最先进的配置

  • 可配置漂移补偿
  • 可配置触摸重置延迟
  • 低功耗模式
  • 使用Change引脚作为输入
  • 可配置按键过采样

我是Rust的新手,所以代码质量可能不是很好。

许可证

根据GNU Lesser General Public License v3.0许可。所有有意提交的贡献均应根据相同的许可证进行许可。


lib.rs:

基于Rust的AT42QT2120触摸传感器IC的跨平台驱动程序。它基于embedded-hal特质

设备

AT42QT2120是一款12通道QTouch触摸传感器,也支持触摸滑块

用法

导入此crate和嵌入式_hal实现,例如在stm32f103设备上

extern crate stm32f1xx_hal as hal;
extern crate AT42QT2120;

AT42QT2120只有一个地址选项,因此要实例化设备

let i2c2 = BlockingI2c::i2c2(..);
let mut touch_sensor = At42qt2120::new(i2c2);

AT42QT2120在复位时将所有12个通道设置为触摸输入,并具有合理的设置。如果只需要触摸按钮,则无需额外设置。

要启用滑块

let use_wheel = false;
let enable_slider = true;
touch_sensor.setup_slider(use_wheel, enable_slider); 

如果需要禁用某个按键或更改阈值

let key_to_setup = 3;
let key_threshold = 20;  //must be 1 or more!
let enable_key = true;
setup_key(key_to_setup, key_threshold, enable_key);

读取按键和滑块

if touch_sensor.keys_pressed()? {
  let keys_pressed = touch_sensor.read_keys()?;
}

if touch_sensor.slider_pressed()? {
  let keys_pressed = touch_sensor.read_slider()?;
}

也可以使用以下方式读取单个按键

let key_to_read = 3;
touch_sensor.read_key(key_to_read)?;

支持的功能

支持基本功能:设置和读取滑块/滚轮、设置和读取按键、校准。

不支持的功能:设置电源模式、更改漂移补偿和其他高级设置、按键分组、在按键上设置过采样

此驱动程序已在stm32f103上测试,由一位Rust新手制作,仅供参考 :)

依赖项

~71KB