【stm32简单外设篇】- 单路 TTP223 电容式触摸传感器
摘要:本方案介绍TTP223电容式触摸模块在无机械按键场景的应用,包括家电面板、门禁系统等潮湿环境。使用STM32开发板通过GPIO读取触摸信号,提供标准库和HAL库的接线方式及示例代码。工作原理基于电容感应,当人体接触电极时触发信号变化。代码演示了通过串口输出触摸状态检测功能,适用于嵌入式开发中的低功耗唤醒实践。
·

一、适用场景
适用场景:无机械按键的触摸按键替代(灯光触控、门禁触摸、家电面板、互动玩具、人机界面)、潮湿/封装环境下的按键替代、嵌入式入门 GPIO/EXTI 去抖与低功耗唤醒实践。
二、器材清单
单路 TTP223 电容式触摸模块(带 PCB 电极或裸芯片 + 单触点) ×1
stm32f103(或其它 STM32)开发板 ×1
若干杜邦线(母对母/公对母)×1组
三、工作原理(要点)
电容感应:TTP223 内部测量电容变化,当接触或靠近模块的电极时,电容增大并触发检测逻辑,模块输出数字信号表示触摸事件。
四、接线示意
VCC → +5V
GND → GND
标准库
PA0→IO
HAL库
PA0→IO
五、示例代码
标准库

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
更多推荐
所有评论(0)