使用这种调试方式的优点是简单,效率较高,自由度高,但是滑条什么就比较麻烦了.大致判断如下几行,先初始化好,然后执行,就可以,你可以想象他是个ADC.
HAL_TSC_Start(&TscHandle); HAL_TSC_PollForAcquisition(&TscHandle); if (HAL_TSC_GroupGetStatus(&TscHandle, TSC_GROUP1_IDX) == TSC_GROUP_COMPLETED) { uhTSCAcquisitionValue += HAL_TSC_GroupGetValue(&TscHandle, TSC_GROUP1_IDX); } HAL_TSC_Stop(&TscHandle); if(abs(uhTSCAcquisitionValue - 1850)< 50 ){ BSP_LED_On(LED4); }else{ BSP_LED_Off(LED4); }
得到的数值表示在周期内,能充电的次数(实际上有差异),这样就能知道按键是不是按下去.其他可以看看原子实现的TIM 电容触摸按键.原理一样.
初始化参考.
TSC->CR = 0x11FE60C1; TSC->IOHCR = 0xFFFFF933; TSC->IOCCR = 0x00000244; TSC->IOSCR = 0x00000488; TSC->IOGCSR = 0x00000007; TSC->IER = 0x00000000; TSC->ICR = 0x00000003;
不知大佬注意到没有,网页中代码的大于号变成了’> ‘
@David 其实很早就发现了,主要是做过一次数据库迁移(MYSQL => SQLITE),结果自己程序上有点脑残,就这样了.
能分享下配置吗,我自己配置,但感觉没跑起来
@哇咔咔 搜索TSC其他文章里有各种例子.
@哇咔咔 用CubeMx软件配置还是自己搭建?
SPL标准外设库的可以参考STM32F0-DISCO的例程,
HAL/LL的可以参考“AN5105_Getting started with touch sensing control on STM32 microcontrollers”文档。
我去年跑起来了,能读取键值。
不过STM32的TSC时钟来自高速时钟AHB clock (HCLK),低功耗这块不知道能不能做。