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

相关推荐
恒锐丰科技林技术员35 分钟前
EG3014S 半桥驱动芯片:无刷电机与功率变换的优选栅极驱动器件
经验分享·嵌入式硬件·硬件工程
沐欣工作室_lvyiyi1 小时前
基于单片机的智能提醒药盒设计(论文+源码)
单片机·嵌入式硬件
常州晟凯电子科技1 小时前
sigmaStar SSC8836Q/SSC8826Q开发笔记之环境搭建和SDK编译
笔记·嵌入式硬件·物联网·视频编解码
ebiobiz2 小时前
Zig 嵌入式底层库选择与 build.zig 组织指南
c语言·c++·嵌入式硬件·mcu
Zw-awa11 小时前
反馈:让系统知道自己做得对不对
stm32
女神下凡14 小时前
芯参谋(38):NAND_MCP_电路设计指南
arm开发·单片机·嵌入式硬件·设计规范
嵌入式学习菌14 小时前
FreeRTOS 中断管理实战:BASEPRI 寄存器实验
单片机·嵌入式硬件
HRTOS15 小时前
HRTOS:一个名字背后的目标——不断逼近硬实时
经验分享·单片机·系统架构·51单片机
UrSpecial17 小时前
GPIO 是什么?
单片机·嵌入式硬件
剑指offer.18 小时前
ARM裸机开发-SPI
arm开发·嵌入式硬件·嵌入式·arm