任务描述要求通过按钮控制LED灯的亮灭。原理图(Proteus)
软件设计(STM32CubeIDE)
需要插入的代码如下:- if(HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_1)==0)//判断按钮是否按下
- {
- HAL_Delay(20);//软件消抖
- if(HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_1)==0)//再次判断按钮是否按下
- {
- HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_0);//输出电平翻转
- while(HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_1)==0) ;//阻塞
- HAL_Delay(20);//软件消抖
- }
- }
复制代码 拓展任务描述通过两只按钮控制一个LED的亮灭,要求两个按钮一个采用上拉输入模式,另一个采用下拉输入模式。原理图(Proteus)
软件设计(STM32CubeIDE)
- if(HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_1)==0)//判断按钮0是否按下
- {
- HAL_Delay(20);//软件消抖
- if(HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_1)==0)//再次判断按钮0是否按下
- {
- HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_0);//输出电平翻转
- while(HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_1)==0) ;//阻塞
- HAL_Delay(20);//软件消抖
- }
- }
- else if(HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_2)==0)//判断按钮1是否按下
- {
- HAL_Delay(20);//软件消抖
- if(HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_2)==1)//再次判断按钮1是否按下
- {
- HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_0);//输出电平翻转
- while(HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_2)==1) ;//阻塞
- HAL_Delay(20);//软件消抖
- }
- }
复制代码 ————————————————版权声明:一杯冰如有侵权请联系删除 |