基于STM32CubeMX嵌入式开发-按键开发基础
一、按键扫描的基本原理

二、GPIO输入的HAL库函数
1.GPIO电平输出HAL库函数
GPIO_PinState为该函数的返回值。返回值共有两种,分别为GPIO_PIN_SET(也可以用‘1’表示)和GPIO_PIN_RESET(也可以用‘0’表示)

三、按键开发实验
1.创建工程并选择STM32F103C8Tx系列芯片


2.配置SYS
Debug选项选择Serial Wire

3.配置RCC
高速和低速时钟都使用外部晶振

配置时钟数

4.GPIO引脚配置
先配置PB8和PB9为GPIO输出,PC13和PB1为输入。待会再在KEIL5里面通过代码把PB5进行配置

将PC13和PB1设置为GPIO上拉模式

5.MX工程文件的配置


6.MX工程文件的配置
打开MDK-ARM文件夹

使用Keil5打开红框中的文件

7.在main.c文件编译代码
按下按键KEY2(PC13),切换PB9的开关状态
宏定义KEY2
设置Delay函数,反复检测PC13的电平状态,防止信号干扰
定义scan_KEYS()函数,检测电平状态,作出关于PB9的开关响应
#define KEY2 HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_13)
void Delay(unsigned int t)
{
while(t--);
}
void scan_KEYS()
{
if(KEY2 == GPIO_PIN_SET)
{
Delay(1000);
if(KEY2 == GPIO_PIN_SET)
{
HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_9);
while(KEY2 == GPIO_PIN_SET);
}
}
}
while (1)
{
/* USER CODE END WHILE */
scan_KEYS();
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}


本文详细介绍了如何使用STM32CubeMX进行嵌入式开发,包括GPIO输入配置、HAL库函数应用、按键扫描原理,以及在实际项目中如何通过PB8和PB9控制PB9的开关状态。通过实例演示了如何配置SYS和RCC,设置GPIO模式,并在main.c中实现按键检测和GPIO操作。
4731

被折叠的 条评论
为什么被折叠?



