Skip to content

GPIO_触摸按键 ​

1. 硬件连接 ​

这个按键的连接是在摇杆的内部,分配的引脚是PC14

alt text

2. CubeMX生成代码 ​

可以看到,配置了3个部分

  1. 外部时钟
  2. SWD 接口
  3. GPIO 配置成输入模式

外部晶振配置 ​

alt text

SWD接口配置 ​

如果不配置,会导致之后无法下载代码,请一定注意!! alt text

GPIO 配置 ​

alt text

串口的代码配置 ​

alt text

时钟配置 ​

alt text

3. 编写代码 ​

编写串口重定向的代码

C
/* USER CODE BEGIN 0 */
#include "stdio.h"
 //重定向c库函数printf到串口USARTx,重定向后可使用printf函数
 int fputc(int ch, FILE *f)
 {
     /* 发送一个字节数据到串口USARTx */
     HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF);
     return (ch);
 } 
/* USER CODE END 0 */

下面是检测触摸按键的功能实现 ​

  1. 读取输入GPIO电压的高低
  2. 将电压的值判断后通过串口打印出去
C
int main(void)
{
  HAL_Init();
  SystemClock_Config();
  MX_GPIO_Init();
  MX_USART1_UART_Init();
  /* USER CODE BEGIN 2 */

	uint8_t data = 0;
  /* USER CODE END 2 */
    
  /* USER CODE BEGIN WHILE */
  while (1)
  {
	  data = HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_14);
	  if(data == 1)
	  {
		printf("data == 1");
	  }
	  else{
		printf("data == 0");
	  }
	  
	  HAL_Delay(300);
    /* USER CODE END WHILE */

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

4. 后记 ​

触摸按键也可以通过ADC采集电压的方式来实现,想尝试的可以自己做个PCB,来试试。