stm32利用CubeMX完成按键控制LED灯的点亮与熄灭

首先画电图,如下:(会话最小系统后就可以不画了,如果要是画实物的话必须要有的,不能忘,模拟就无所谓了)

然后是CubeMX设置时钟

这次使用的是内部8M时钟,这样能避免proteus闪退的情况,不然会很烦人的,一直在那闪退。

然后设置LED灯和按键:

下面就是在主函数中的死循环中添加点代码,就好啦!

cs 复制代码
 /* USER CODE BEGIN WHILE */
  while (1)
  {
      GPIOA->ODR =0xffff;
      if(HAL_GPIO_ReadPin(key1_GPIO_Port, key1_Pin)==0)  // 读取按键1的值如果变成了低电平0就执行:
    {
        GPIOA->ODR = 0x00fe;              //1111 1110 0xfe  这里是对应从PA7到PA0的每一个端口的值  最后为0就是PA0=0
    }
    
    if(HAL_GPIO_ReadPin(key2_GPIO_Port, key2_Pin)==0)   // 读取按键2的值如果变成了低电平0就执行:
    {
        GPIOA->ODR = 0x00fd;              //1111 1101 0xfd  这里是对应从PA7到PA0的每一个端口的值  右向左第二位为0就是PA1=0
    }
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */
}

最后就是导入proteus中仿真就行了:

最终结果就是按下1号按键LED1亮,松开熄灭。 按下2号按键LED2亮,松开熄灭。

相关推荐
偶像你挑的噻1 小时前
13-Linux驱动开发-中断子系统
linux·驱动开发·stm32·嵌入式硬件
偶像你挑的噻4 小时前
Linux应用开发-9-信号
linux·stm32·嵌入式硬件
没有医保李先生4 小时前
STM32 Hal库的Uart串口接受
stm32·单片机·嵌入式硬件
Neil今天也要学习6 小时前
永磁同步电机控制算法--自建参数可变电机模型
单片机·嵌入式硬件·算法
松涛和鸣7 小时前
DAY20 Optimizing VS Code for C/C++ Development on Ubuntu
linux·c语言·开发语言·c++·嵌入式硬件·ubuntu
罗汉松(山水白河)8 小时前
STM32F407核心板
stm32·单片机·嵌入式硬件
DIY机器人工房8 小时前
简单理解:什么是GSM?
stm32·单片机·嵌入式硬件·gsm·diy机器人工房
hazy1k8 小时前
RA6E2基础-RTC时钟与日历介绍及使用
stm32·单片机·嵌入式硬件·esp32·实时音视频·ra
2401_853448238 小时前
FreeRTOS项目---WiFi模块(2)
stm32·单片机·freertos·esp8266·通信协议
DIY机器人工房9 小时前
简单理解:什么是运放?
单片机·嵌入式硬件·运放·diy机器人工房