欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

STM32 HAL库学习(二):按键检测

程序员文章站 2022-06-08 19:06:46
...

用cubemx生成初始化代码

1、新建工程

  • File→NewProject
  • 选择芯片STM32 HAL库学习(二):按键检测

2、配置RCC

  • 选择System Core里边的RCC,配置外部时钟STM32 HAL库学习(二):按键检测

3、配置引脚

  1. 按键有两个,分别是PA0,PC13;这个实验可以用LED的亮灭来验证按键是否配置正确,LED的引脚为PC2
  2. 具体配置如下STM32 HAL库学习(二):按键检测

4、配置系统时钟

  • 具体如下STM32 HAL库学习(二):按键检测

5、配置工程

  1. 工程的基本配置STM32 HAL库学习(二):按键检测
  2. 生成代码的配置,最后点击GENERATE CODE生成代码STM32 HAL库学习(二):按键检测

编辑业务代码

1.、按键扫描函数

uint8_t Key_Scan(GPIO_TypeDef *GPIOx,uint16_t GPIO_PIN)
{
    if (HAL_GPIO_ReadPin(GPIOx,GPIO_PIN) == 1)
    {
        /* code */
        while (HAL_GPIO_ReadPin(GPIOx,GPIO_PIN) == 1)
            ;
        return 1;
    }
    else
    {
        return 0;
    }   
}

2、主函数

    while (1)
    {
        /* USER CODE END WHILE */
        if (Key_Scan(GPIOA, GPIO_PIN_0) == 1)
        {
            /* code */
            HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_2);
        }
        else if (Key_Scan(GPIOC, GPIO_PIN_13) == 1)
        {
            HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_2);
        }
        /* USER CODE BEGIN 3 */
    }
相关标签: stm32