为了理解基于电容式触摸/ TSC库的应用,我一直在研究STM32 F072 B-Disco评估板AN 5105中给出的基于轮询的示例代码。有几个问题如下,我无法理解,甚至在查看ST的各种应用说明后也没找到答案。 1.分辨率和计算的触摸位置的滑块在0到255: TSC提供的头文件tsl_conf. h具有以下参数: #define TSLPRM_LINROT_RESOLUTION(7)//以位数为单位的位置分辨率(范围=1..8) #define TSLPRM_USE_3CH_LIN_H(1)// MyLinRots[0].p_Data->Position结构用于比较0. 255,但我不理解滑块/通道上触摸的值和位置的相关性。分辨率值1...8是否影响计算? 是否有基于分辨率参数的位置值计算公式,根据滑动条上触摸的值来选择通道? 2.在另一个例子中,配置了STM32 F072 B-Disco板上的触摸通道作为3个单独的触摸键。若保持TSLPRM_TKEY_Detect_IN_TH, tsl_conf. h头文件中的TSLPRM_TKEY_Detect_OUT_TH参数默认为110 & 120,项目编译没有任何错误。 //触摸键检测状态输入阈值(范围=0.. 255) #define TSLPRM_TKEY_DETECT_IN_TH(110) //触摸键检测状态输出阈值(范围=0.. 255) #define TSLPRM_TKEY_DETECT_OUT_TH(120) 配置了这些参数值,经常很难检测到触摸,所以我将检测阈值重新配置为较低的50。 #define TSLPRM_TKEY_DETECT_IN_TH(50) 通过这种修改,会出现如下编译错误: ../ Middlewares/ST/STM32_TouchSensing_Library/inc/tsl_check_config.h(162): 错误:#35:#错误指令:“TSLPRM_TKEY_DETECT_OUT_TH超出范围
(TSLPRM_TKEY_PROX_IN_TH+1.. TSLPRM_TKEY_DETECT_IN_TH-1)。"
|