STM32CubeMX系列02——LED、按键

====>>> 文章汇总(有代码汇总) <<<====

1. 所用硬件

正点原子Mini板,主控 STM32F103RCT6.

用到的外设:LED、按键。原理图:
在这里插入图片描述

2. 生成工程

2.1. 创建工程

在这里插入图片描述

2.2. 搜索并双击选择主控芯片

在这里插入图片描述

2.3. 配置

配置时钟源
在这里插入图片描述
配置debug模式(如果需要ST-Link下载及调试可以勾选)
在这里插入图片描述
配置时钟树(可以直接在HCLK那里输入72,然后敲回车会自动配置)
在这里插入图片描述

2.4. 配置工程目录

在这里插入图片描述
勾选上会单独生成 c文件和头文件
在这里插入图片描述

2.5. 配置用到的外设

PA8:LED0。
PC5:KEY0,配置输入模式,按键扫描。
在这里插入图片描述

2.6. 生成代码

配置完成之后,点击生成代码。
在这里插入图片描述

3. 目录结构

生成的工程目录如下图:
Core:软件生成的用到的外设的 源文件和头文件,main.c也在这。等价于MDK中的User + Hardware。
Drivers:HAL库驱动文件、芯片启动文件。
MDK-ARM:MDK工程文件。进入MDK-ARM目录,即可打开工程。
在这里插入图片描述

4. 代码

在main.c中添加如下代码。

  while (1)
  {
    
    
	if(0 == HAL_GPIO_ReadPin(KEY0_GPIO_Port, KEY0_Pin))
	{
    
    
		HAL_Delay(20);
		if(0 == HAL_GPIO_ReadPin(KEY0_GPIO_Port, KEY0_Pin))
		{
    
    
			// 输出高电平
			// HAL_GPIO_WritePin(LED0_GPIO_Port, LED0_Pin, GPIO_PIN_SET);
			// 输出低电平
			// HAL_GPIO_WritePin(LED0_GPIO_Port, LED0_Pin, GPIO_PIN_RESET);
			// 反转
			HAL_GPIO_TogglePin(LED0_GPIO_Port, LED0_Pin);
		}
	}
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }

其中:LED0_GPIO_Port、LED0_Pin之类的引脚别名定义,在main.h中。

5. 效果验证

编译、烧录、查看结果。

效果:按下按键LED反转。

猜你喜欢

转载自blog.csdn.net/weixin_46253745/article/details/127802976