【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.演示

相关推荐
代码游侠7 小时前
学习笔记——设备树基础
linux·运维·开发语言·单片机·算法
xuxg200510 小时前
4G 模组 AT 命令解析框架课程正式发布
stm32·嵌入式·at命令解析框架
CODECOLLECT11 小时前
京元 I62D Windows PDA 技术拆解:Windows 10 IoT 兼容 + 硬解码模块,如何降低工业软件迁移成本?
stm32·单片机·嵌入式硬件
BackCatK Chen12 小时前
STM32+FreeRTOS:嵌入式开发的黄金搭档,未来十年就靠它了!
stm32·单片机·嵌入式硬件·freertos·低功耗·rtdbs·工业控制
全栈游侠14 小时前
STM32F103XX 02-电源与备份寄存器
stm32·单片机·嵌入式硬件
Lsir10110_14 小时前
【Linux】中断 —— 操作系统的运行基石
linux·运维·嵌入式硬件
深圳市九鼎创展科技17 小时前
瑞芯微 RK3399 开发板 X3399 评测:高性能 ARM 平台的多面手
linux·arm开发·人工智能·单片机·嵌入式硬件·边缘计算
辰哥单片机设计17 小时前
STM32项目分享:车辆防盗报警系统
stm32·单片机·嵌入式硬件
風清掦18 小时前
【江科大STM32学习笔记-05】EXTI外部中断11
笔记·stm32·学习
小龙报18 小时前
【51单片机】从 0 到 1 玩转 51 蜂鸣器:分清有源无源,轻松驱动它奏响新年旋律
c语言·数据结构·c++·stm32·单片机·嵌入式硬件·51单片机