【STM32】GPIO翻转操作实现流水灯

1.stm32cubemx配置




2.代码实现

实现四个灯的流转,一个灯亮500ms,然后灭500ms,四个灯都一样

1.打开GPIOB的时钟,以及配置模式

使用一个my_init()实现

c 复制代码
__HAL_RCC_GPIOB_CLK_ENABLE();  //GPIOB时钟使能

配置模式

1.配置输出引脚,因为有四个灯,四个引脚取或即可

c 复制代码
  GPIO_INIT.Pin=GPIO_PIN_10|GPIO_PIN_2|GPIO_PIN_1|GPIO_PIN_0;//配置输出引脚 

2.设置输出模式

选择推挽式输出

3.设置上下拉

c 复制代码
 GPIO_INIT.Pull=GPIO_NOPULL; //不用上下拉

4.高低速设置

c 复制代码
 GPIO_INIT.Speed= GPIO_SPEED_FREQ_LOW;//设置低速
c 复制代码
void MY_INIT(void)
{
   __HAL_RCC_GPIOB_CLK_ENABLE();

   GPIO_InitTypeDef GPIO_INIT;
	
   GPIO_INIT.Pin=GPIO_PIN_10|GPIO_PIN_2|GPIO_PIN_1|GPIO_PIN_0; 
	 GPIO_INIT.Mode=GPIO_MODE_OUTPUT_PP;
	 GPIO_INIT.Pull=GPIO_NOPULL;  
	 GPIO_INIT.Speed= GPIO_SPEED_FREQ_LOW;
	 HAL_GPIO_Init(GPIOB,&GPIO_INIT);

}

记得要在gpio.h声明

main.cc调用

2.配置四个引脚输出电平实现流水

循环,根据对应序号实现一个灯的亮暗,接着另一个灯的亮暗,我们需要使用延迟函数来方便观察

实现一个灯的亮暗,亮500ms,灭500ms

c 复制代码
HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_10);//电平翻转
HAL_Delay(500);//延迟500ms
HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_10);//电平翻转
HAL_Delay(500);//延迟500ms

实现流水:

c 复制代码
void Run(void)
{
   uint8_t i;
	 for(i=0;i<4;i++)
	   {
		    switch(i)
				{
					case 0:
					HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_10);
					HAL_Delay(500);
					HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_10);
					HAL_Delay(500);
					break;
					case 1:
					HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_2);
					HAL_Delay(500);
					HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_2);
					HAL_Delay(500);
					break;
				  case 2:
					HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_1);
					HAL_Delay(500);
					HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_1);
					HAL_Delay(500);
					break;
				  case 3:
					HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_0);
					HAL_Delay(500);
					HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_0);
					HAL_Delay(500);
					break;
			
				}
		 
		 
		 
		 
		 
		 }

}

在gpio.h声明

在main.cc调用

3.演示

相关推荐
Nan_Feng_ya3 分钟前
基于STM32的智能手表复刻成功(完全开源)
arm开发·stm32·pcb工艺·智能手表
HalvmånEver13 分钟前
Linux:基于socket套接字写的简易英译汉翻译服务器
单片机·嵌入式硬件
jianqiang.xue18 分钟前
ESP32-P4 看门狗复位全解析:HP_SYS_HP_WDT_RESET 故障排查实战
单片机·mcu·esp32·idf
somi721 分钟前
51单片机-04-DS18B20 数字温度传感器
单片机·嵌入式硬件·51单片机
至为芯25 分钟前
PY32F003至为芯支持32位ARM内核的低成本MCU微控制器
单片机·集成电路·芯片
zjxtxdy34 分钟前
STM32开发板简介
stm32·单片机·嵌入式硬件
【 STM32开发 】41 分钟前
【STM32 + CubeMX 教程】RTC 实时时钟 之 闹钟 -- F407篇
stm32·单片机·嵌入式硬件
weiyvyy1 小时前
接口开发的完整流程:从需求到验证
驱动开发·嵌入式硬件·硬件架构·硬件工程
MC_J1 小时前
STM32+FMC驱动W9825G6 SDRAM程序以及遇到的问题讲解
stm32·单片机
少年潜行1 小时前
【开源】STM32驱动BH1750(附开源代码)
单片机