小熊派开发笔记-按键控制LED灯亮灭(基于STM32CubeMX)

环境

  • JRE(Java Runtime Environment)
  • STM32CubeMX v6.3.0
  • HAL 库 L4 v1.7.0
  • Keil5-MDK

环境搭建参考:STM32CubeMX学习记录–安装配置与使用

如果不想去官网下,也可以从我的百度云分享里下载 STM32CubeMX 和 HAL 库

链接:https://pan.baidu.com/s/10MKGKPNQrIxZnuMZvVKqkg
提取码:zjor

创建工程

打开 STM32CubeMX,选择新建一个工程,如下图

新建工程

在输入框中输入 stm32l431rc,选中,然后双击选择中间 LQFP64 的这款,如下图

选择芯片

配置时钟源,这里选择外部高速时钟,如下图

配置时钟源

外设引脚对应表

MCU 引脚引脚标注名
PC13LED
PB2KEY1
PB3KEY2

按键原理图

按键原理图

按键原理图

配置时钟树。STM32L4 的最高主频可达到 80M,使 HCLK = 80Mhz,如下图

配置时钟树

配置时钟树

配置 LED GPIO 引脚,并修改用户标签名(相当于取另一个新名字),如下图
配置PC13引脚

修改用户标签名

配置 PB2 和 PB3 设置成上拉输入,如下图

配置 PB2 和 PB3 设置成上拉输入

配置 PB2 和 PB3 设置成上拉输入

最后配置生成工程设置,如下图

生成工程设置

代码生成设置

最后选择右上角的 GENERATE CODE,即可完成工程的创建

在 Keil5-MDK 中编写代码

进入 MDK-ARM 目录,打开工程,在 main.c 中编写如下代码

	while (1)
	{
		/* USER CODE END WHILE */
			
		if (HAL_GPIO_ReadPin(KEY1_GPIO_Port, KEY1_Pin) == 0) {
			HAL_Delay(20);
			while (HAL_GPIO_ReadPin(KEY1_GPIO_Port, KEY1_Pin) == 0);
			HAL_Delay(20);
			
			// filp LED status
			HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin);
			
			// the above code is equivalent to the following
//			if (HAL_GPIO_ReadPin(LED_GPIO_Port, LED_Pin) == 0) {
//				HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, 1);
//			}
//			else {
//				HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, 0);
//			}
		}

点击编译和烧录,烧录配置参考:小熊派开发笔记-点亮LED灯(基于STM32CubeMX)

烧录成功如下图

烧录成功

实验结果

实验结果

  • 5
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Apple_Coco

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值