一、适用场景
适用场景:无机械按键的触摸按键替代(灯光触控、门禁触摸、家电面板、互动玩具、人机界面)、潮湿/封装环境下的按键替代、嵌入式入门 GPIO/EXTI 去抖与低功耗唤醒实践。

二、器材清单

单路 TTP223 电容式触摸模块(带 PCB 电极或裸芯片 + 单触点) ×1

stm32f103(或其它 STM32)开发板 ×1

若干杜邦线(母对母/公对母)×1组

三、工作原理(要点)

电容感应:TTP223 内部测量电容变化,当接触或靠近模块的电极时,电容增大并触发检测逻辑,模块输出数字信号表示触摸事件。

四、接线示意
VCC → +5V

GND → GND

标准库

PA0IO

HAL库

PA0IO

五、示例代码
标准库

HAL库

int main(void)
{

  /* USER CODE BEGIN 1 */

  /* USER CODE END 1 */

  /* MCU Configuration--------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_USART1_UART_Init();
  /* USER CODE BEGIN 2 */

  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
		if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0) == 1)
			HAL_UART_Transmit(&huart1,"有接触\r\n", strlen("有接触\r\n"), HAL_MAX_DELAY);
		else
			HAL_UART_Transmit(&huart1,"无接触\r\n", strlen("无接触\r\n"), HAL_MAX_DELAY);
		HAL_Delay(1000);
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */
}

 六、讲解视频

https://www.bilibili.com/video/BV1PtkDBxEXN/?spm_id_from=333.1387.upload.video_card.click&vd_source=b035825fef3be39bc47a9c50b324d086

https://www.bilibili.com/video/BV1uEkDBaEEC/?spm_id_from=333.1387.upload.video_card.click&vd_source=b035825fef3be39bc47a9c50b324d086

https://www.bilibili.com/video/BV1UEkDBhEWt/?spm_id_from=333.1387.upload.video_card.click&vd_source=b035825fef3be39bc47a9c50b324d086

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐