Stm32_点灯

利用HAL库基本语法实现C8T6点灯操作

引脚配置

PB3、4 、5 //设置为output
PB6、7 设置Input且为上拉

初始化代码:

由于3、4、5引脚默认输出为0灯泡默认点亮所以要将他们初始化为1

c 复制代码
void Inint(){//初始化灯泡函数熄灭
	HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, GPIO_PIN_SET);
	HAL_GPIO_WritePin(GPIOB, GPIO_PIN_4, GPIO_PIN_SET);
	HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, GPIO_PIN_SET);
}

扫描按键代码:

由于6、7默认输出1(上拉)所以按钮接地,输入值为0代表按钮按下

c 复制代码
void check(){//检查按键按下的情况
	 
  	 if(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_6) == GPIO_PIN_RESET ){
		 while(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_6) == GPIO_PIN_RESET);//减震 由0 -> 1才会亮
		 HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, GPIO_PIN_RESET);
		 HAL_GPIO_WritePin(GPIOB, GPIO_PIN_4, GPIO_PIN_RESET);
		 HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, GPIO_PIN_RESET);
		 HAL_Delay(50);
	     Inint();
		 HAL_Delay(50);
		 if(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_7) == GPIO_PIN_RESET){//如果按键2按下
			 do{
			   HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, GPIO_PIN_RESET);
		       HAL_Delay(50);
		       HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, GPIO_PIN_SET);
			   HAL_GPIO_WritePin(GPIOB, GPIO_PIN_4, GPIO_PIN_RESET);
		       HAL_Delay(50);
			   HAL_GPIO_WritePin(GPIOB, GPIO_PIN_4, GPIO_PIN_SET);
			   HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, GPIO_PIN_RESET);
			   HAL_Delay(50);
			   HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, GPIO_PIN_SET);
			 }
		    while(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_7) == GPIO_PIN_RESET);//等待按键二松开
		 }
	 }
		 
 }

main函数

c 复制代码
 int main(){
     while(1){
          Inint();
          check();
     }
}

实现效果

按键6按下并松开三个灯泡会闪一次,按键7按下不松开,再按下按键6并松开三个灯会依次流水点亮,松开按键7熄灭。


相关推荐
夜间看花8 分钟前
28 基于51单片机的两路电压检测(ADC0808)
嵌入式硬件·51单片机·proteus
浅陌pa8 分钟前
18:(标准库)DMA二:DMA+串口收发数据
c语言·stm32·单片机·嵌入式硬件
嗯? 嗯。38 分钟前
电烙铁焊接STM32芯片、贴片元器件、手册指南!!!
stm32·单片机·嵌入式硬件
打你个大西瓜️39 分钟前
单片机知识总结(完整)
数据库·单片机·mongodb
楚灵魈2 小时前
[STM32]从零开始的STM32 FreeRTOS移植教程
stm32·单片机·嵌入式硬件
Shaun_青璇2 小时前
EXTI配置流程 含中断延时消抖点亮小灯
stm32·单片机·嵌入式硬件·mcu·物联网
夜间去看海3 小时前
01 [51单片机 PROTEUS仿真设计]基于温度传感器的恒温控制系统
嵌入式硬件·51单片机·proteus
liyinuo20173 小时前
如何使用GCC手动编译stm32程序
c语言·arm开发·stm32·单片机·嵌入式硬件
ShiinaKaze4 小时前
【MCU】微控制器的编程技术:ISP 与 IAP
单片机·嵌入式硬件·mcu·iap·isp
北京迅为4 小时前
【北京迅为】iTOP-4412全能版使用手册-第十二章 Linux系统编程简介
linux·嵌入式硬件·4412开发板