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

基于STM32利用按键点亮LED灯

[复制链接]
STMCU小助手 发布时间:2022-12-23 17:00
基于STM32利用按键点亮LED灯的基本步骤(1)打开stm32CubeMX,创建新工程文件
(2)选择需要的芯片,本次实验采用的是STM32F411RETx
(3)黄色代表可被使用的引脚,绿色代表已被确定功能的引脚。左侧设置栏中的红色部分表示:IO口复用造成的重叠,以至不能继续使用。
(4)选好芯片,设置好相关系数参量后,选择与keil5相对应的MDK—ARM V5。

源程序:
1.按键按下LED灯点亮
  1. int main
  2. {
  3. if(HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_13) == 0){
  4.         HAL_Delay(10);     //延时去抖
  5.         if(HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_13) == 0){     //判断是否有键按下,有则亮
  6.             HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_SET);
  7.         }else{
  8.             HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_RESET);
  9.         }
  10.     }
  11. }
复制代码

2.按键按下,LED灯亮1s后熄灭
  1. int main
  2. {
  3.   if(HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_13) == 0){
  4.         HAL_Delay(10);
  5.         if(HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_13) == 0){              //判断时候有键按下
  6.             HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_SET);
  7. HAL_Delay(1000); //按键按下后灯亮1S
  8.         }else{
  9.             HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_RESET);
  10.         }
  11.     }
  12. }
复制代码

3.按键按下LED点亮,再按键LED熄灭
  1. int main{
  2. if(HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_13) == 0)
  3. {
  4.    HAL_Delay(100);  //延时去抖
  5.        if(HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_13) == 0) {        //判断是否有键按下
  6.        //功能代码处
  7.        HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_5);              //有键按下就反转
  8.        //功能代码处
  9.        while(HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_13) == 0);
  10.        }
  11.     }
  12. }


  13. 配置引脚的初始化电平

  14.   /*Configure GPIO pin Output Level */
  15.   HAL_GPIO_WritePin(GPIOD, GPIO_PIN_13, GPIO_PIN_SET);


  16.   /*Configure GPIO pin : PC13 */
  17.   GPIO_InitStruct.Pin = GPIO_PIN_13;
  18.   GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
  19.   GPIO_InitStruct.Pull = GPIO_NOPULL;
  20.   HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);


  21.   /*Configure GPIO pin : PA5 */
  22.   GPIO_InitStruct.Pin = GPIO_PIN_5;
  23.   GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  24.   GPIO_InitStruct.Pull = GPIO_NOPULL;
  25.   GPIO_InitStruct.Speed = GPIO_SPEED_LOW;
  26.   HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
复制代码

————————————————
版权声明:xu-ning


收藏 评论0 发布时间:2022-12-23 17:00

举报

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