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亮,松开熄灭。

相关推荐
ICGOODFIND14 分钟前
2026物联网模组选型指南:U-BLOX定位模组+SIMCOM芯讯通主流蜂窝通信模组参数与场景适配
嵌入式硬件·物联网·硬件工程·iot
阿拉斯攀登33 分钟前
嵌入式 Linux 驱动概述:分类、内核模块、开发环境
linux·嵌入式硬件·linux内核·嵌入式·linux驱动
2401_854151551 小时前
STM32 位带操作——像 51 一样操作 GPIO
单片机·嵌入式硬件
zlinear数据采集卡10 小时前
从0到1硬核拆解:工业级数据采集卡的隔离设计与Modbus通信实战
arm开发·单片机·嵌入式硬件·fpga开发·开源
FreakStudio16 小时前
WIZnet 开源方案分享:W55MH32 开发板 + 小智 AI实现以太网版本的小智机器人
python·单片机·嵌入式·大学生·面向对象·并行计算·电子diy·电子计算机
科芯创展16 小时前
XZ61N,N-channel open drain输出电压检测芯片
单片机·嵌入式硬件
省四收割者18 小时前
一文详解信号完整性(3)--规避SI问题的具体实现方法
嵌入式硬件·硬件架构·信号处理·智能硬件·pcb工艺·altium designer
巴巴媛66620 小时前
STM32学习笔记【32.BKP + RTC】
笔记·stm32·学习
KaifuZeng21 小时前
通信与接口协议面试十一、网口
嵌入式硬件·面试·通信与接口协议