3次发布
使用旧的Rust 2015
0.1.2 | 2020年4月20日 |
---|---|
0.1.1 | 2019年11月24日 |
0.1.0 | 2019年11月24日 |
在嵌入式开发中排名946
每月下载62次
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