触摸传感器
简介
触摸传感器系统由保护覆盖层、触摸电极、绝缘基板和走线组成,保护覆盖层位于最上层,绝缘基板上设有电极及走线。触摸覆盖层将引起电容变化,根据电容变化,可以判断此次触摸是否为有效触摸行为。
W801 不支持触摸传感器。
功能列表
功能概述
触摸传感器电路设计参考如下表
触摸传感器可以以矩阵或滑条等方式组合使用,从而覆盖更大触感区域及更多触感点。
主要功能
初始化触摸传感器
使用触摸传感器前需要调用
wm_drv_touch_sensor_init()
函数初始化驱动。示例:wm_device_t *touch_dev; touch_dev = wm_drv_touch_sensor_init("touch_sensor");
设置阈值
设置触摸传感器的阈值,可以调用
wm_drv_touch_sensor_set_threshold()
函数。示例:wm_device_t *touch_dev; touch_dev = wm_drv_touch_sensor_init("touch_sensor"); wm_drv_touch_sensor_set_threshold(touch_dev, WM_TOUCH_SENSOR_NUM_1, 100);
获取阈值
获取触摸传感器的阈值,可以调用
wm_drv_touch_sensor_get_threshold()
函数。示例:wm_device_t *touch_dev; touch_dev = wm_drv_touch_sensor_init("touch_sensor"); uint32_t threshold; wm_drv_touch_sensor_get_threshold(touch_dev, WM_TOUCH_SENSOR_NUM_1, &threshold);
读取计数
读取触摸传感器的计数值,可以调用
wm_drv_touch_sensor_read_countnum()
函数。示例:wm_device_t *touch_dev; touch_dev = wm_drv_touch_sensor_init("touch_sensor"); uint32_t countnum; wm_drv_touch_sensor_read_countnum(touch_dev, 0, &countnum);
启动传感器
启动触摸传感器,可以调用
wm_drv_touch_sensor_start()
函数。示例:wm_device_t *touch_dev; touch_dev = wm_drv_touch_sensor_init("touch_sensor"); wm_drv_touch_sensor_start(touch_dev, WM_TOUCH_SENSOR_NUM_1);
停止传感器
停止触摸传感器,可以调用
wm_drv_touch_sensor_stop()
函数。示例:wm_device_t *touch_dev; touch_dev = wm_drv_touch_sensor_init("touch_sensor"); wm_drv_touch_sensor_stop(touch_dev, WM_TOUCH_SENSOR_NUM_1);
注册回调
注册触摸传感器的回调函数,可以调用
wm_drv_touch_sensor_register_callback()
函数。示例:wm_device_t *touch_dev; touch_dev = wm_drv_touch_sensor_init("touch_sensor"); void touch_callback(wm_touch_sensor_num_t touch_num, void *priv) { } wm_drv_touch_sensor_register_callback(touch_dev, WM_TOUCH_SENSOR_NUM_1, touch_callback, NULL);
去初始化触摸传感器
不再需要使用触摸传感器时,可以调用
wm_drv_touch_sensor_deinit()
函数反初始化驱动,释放资源。示例:wm_device_t *touch_dev; touch_dev = wm_drv_touch_sensor_init("touch_sensor"); wm_drv_touch_sensor_deinit(touch_dev);
应用实例
使用 touch sensor 基本示例请参考: examples/peripheral/touch_sensor
API 参考
触摸按键 touch button
触摸滑条(暂未实现)
触摸矩阵按键(暂未实现)