STM32L462CEU6如何通过TSC从睡眠/停机模式唤醒?
STM32L462CEU6 TSC唤醒低功耗模式的实现方案
结论:完全可行。STM32L4系列的TSC支持在睡眠/停机模式下后台检测触摸事件,触发阈值条件时可中断唤醒MCU。
核心配置步骤:
- 配置TSC阈值比较:通过
TSC_IOCCR寄存器给目标触摸通道设置高/低阈值(THRESHH、THRESHL),当通道采集计数超出阈值范围时,对应通道的中断标志会在TSC_IOIFR中置位。 - 开启触摸通道中断:在
TSC_IER寄存器里打开对应通道的IOIE位,同时确保全局中断开启。 - 低功耗时钟适配:进入停机模式前,要把TSC的时钟源切换到LSI或LSE(通过
RCC_CCIPR的TSCSEL位配置)——因为停机模式下AHB/APB时钟会关闭,只有低速时钟能维持TSC运行;睡眠模式下用APB时钟即可。 - 允许TSC作为唤醒源:睡眠模式下确保
SCB_SCR的SEVONPEND位配置正确;停机模式下在PWR_CR1里选对应停机模式(Stop 0/1),并确认TSC中断被纳入唤醒源(内部唤醒源无需额外引脚配置)。
- 配置TSC阈值比较:通过
资料查找重点:
- 翻STM32L4的参考手册RM0351,重点看第34章「Touch sensing controller (TSC)」里的「阈值检测与中断」「低功耗模式下的TSC操作」「中断与唤醒」小节,里面明确写了TSC在低功耗模式下的运行逻辑和唤醒机制。
- 看STM32CubeL4包的官方示例,在
Projects\STM32L462E-Discovery\Examples\TSC路径下找带低功耗唤醒的例程,直接参考代码里的寄存器配置或HAL库调用。 - 用STM32CubeMX配置TSC时,在NVIC设置里开TSC中断,电源设置里选低功耗模式并勾选TSC作为唤醒源,生成代码后看自动配置的寄存器逻辑,比自己翻手册更快。
内容的提问来源于stack exchange,提问作者Seba
相关产品推荐
相关产品推荐

