GPIO_触摸按键
1. 硬件连接
这个按键的连接是在摇杆的内部,分配的引脚是PC14
2. CubeMX生成代码
可以看到,配置了3个部分
- 外部时钟
- SWD 接口
- GPIO 配置成输入模式
外部晶振配置
SWD接口配置
如果不配置,会导致之后无法下载代码,请一定注意!!
GPIO 配置
串口的代码配置
时钟配置
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 */
下面是检测触摸按键的功能实现
- 读取输入GPIO电压的高低
- 将电压的值判断后通过串口打印出去
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,来试试。