STM32 TSC 寄存器/库方式外设的调试

/ 5评 / 0

使用这种调试方式的优点是简单,效率较高,自由度高,但是滑条什么就比较麻烦了.大致判断如下几行,先初始化好,然后执行,就可以,你可以想象他是个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;

 

  1. David说道:

    不知大佬注意到没有,网页中代码的大于号变成了’> ‘

  2. 哇咔咔说道:

    能分享下配置吗,我自己配置,但感觉没跑起来

    • TaterLi说道:

      @哇咔咔 搜索TSC其他文章里有各种例子.

    • David说道:

      @哇咔咔 用CubeMx软件配置还是自己搭建?
      SPL标准外设库的可以参考STM32F0-DISCO的例程,
      HAL/LL的可以参考“AN5105_Getting started with touch sensing control on STM32 microcontrollers”文档。
      我去年跑起来了,能读取键值。
      不过STM32的TSC时钟来自高速时钟AHB clock (HCLK),低功耗这块不知道能不能做。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注