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熄灭。


相关推荐
螺丝钉的扭矩一瞬间产生高能蛋白2 小时前
基于FreeRTOS和STM32的微波炉
stm32·单片机·嵌入式硬件
Aspiring Q2 小时前
vscode+keil嵌入式软件开发全流程
vscode·stm32·单片机
程序员JerrySUN2 小时前
驱动开发硬核特训 · Day 11(下篇):从 virtio_blk 看虚拟总线驱动模型的真实落地
linux·驱动开发·嵌入式硬件
努力创造奇迹2 小时前
STM32 HAL库 内部传感器驱动实现
stm32·单片机·嵌入式硬件
omnibots3 小时前
ESP-ADF外设子系统深度解析:esp_peripherals组件架构与核心设计(输入类外设之触摸屏 Touch)
嵌入式硬件·架构·iot
逼子格5 小时前
十二种存储器综合对比——《器件手册--存储器》
单片机·嵌入式硬件·硬件工程·硬件工程师·存储器·硬件工程师真题
使者大牙5 小时前
【嵌入式系统设计师(软考中级)】第一章:计算机系统基础知识(中)
嵌入式硬件·软件构建
田甲5 小时前
【STM32】STemWin库,使用template API
stm32·单片机·嵌入式硬件
四夕白告木贞5 小时前
stm32week11
stm32·单片机·嵌入式硬件·学习
the sun346 小时前
深入理解单片机的运行流程
stm32·单片机·嵌入式硬件