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

HAL库

cpp
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 */
}
六、讲解视频