你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

基于STM32的按键输入控制LED灯经验分享

[复制链接]
攻城狮Melo 发布时间:2023-4-16 17:52
任务描述要求通过按钮控制LED灯的亮灭。原理图(Proteus) 54f44cc3fe254ef98e4446c7cbd686a7.jpg 软件设计(STM32CubeIDE) ec1a750d0ca44fcaa2c769d099bf6e3d.jpg 03edf13c0096468cb07d75b954c52266.jpg 需要插入的代码如下:
  1. if(HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_1)==0)//判断按钮是否按下
  2.                     {
  3.                             HAL_Delay(20);//软件消抖
  4.                             if(HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_1)==0)//再次判断按钮是否按下
  5.                             {
  6.                                               HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_0);//输出电平翻转
  7.                                               while(HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_1)==0) ;//阻塞
  8.                                               HAL_Delay(20);//软件消抖
  9.                             }
  10.                     }
复制代码
拓展任务描述通过两只按钮控制一个LED的亮灭,要求两个按钮一个采用上拉输入模式,另一个采用下拉输入模式。原理图(Proteus) 5bc3f407b37d47d5a085fd608d1cd8c7.jpg b95f6aa9f50841fba9a5b0554cb7d34c.jpg 软件设计(STM32CubeIDE) eeccf9462906438f8749492780594698.jpg
  1. if(HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_1)==0)//判断按钮0是否按下
  2.                               {
  3.                                       HAL_Delay(20);//软件消抖
  4.                                       if(HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_1)==0)//再次判断按钮0是否按下
  5.                                       {
  6.                                                         HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_0);//输出电平翻转
  7.                                                         while(HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_1)==0) ;//阻塞
  8.                                                         HAL_Delay(20);//软件消抖
  9.                                       }
  10.                               }
  11.           else if(HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_2)==0)//判断按钮1是否按下
  12.                                                {
  13.                                                        HAL_Delay(20);//软件消抖
  14.                                                        if(HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_2)==1)//再次判断按钮1是否按下
  15.                                                        {
  16.                                                                          HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_0);//输出电平翻转
  17.                                                                          while(HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_2)==1) ;//阻塞
  18.                                                                          HAL_Delay(20);//软件消抖
  19.                                                        }
  20.                                                }
复制代码
————————————————版权声明:一杯冰如有侵权请联系删除
收藏 评论0 发布时间:2023-4-16 17:52

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版