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

相关推荐
天天爱吃肉82187 分钟前
新能源汽车热管理核心技术解析:冬季续航提升40%的行业方案
android·python·嵌入式硬件·汽车
章鱼哥嵌入式开发13 分钟前
# STM32F103 SD卡读写程序
stm32·单片机
广药门徒1 小时前
定时器时钟来源可以从输入捕获引脚输入
单片机·嵌入式硬件
爱睡觉的王宇昊5 小时前
二、【ESP32开发全栈指南:ESP32 GPIO深度使用】
单片机·嵌入式硬件
学生哥-_-11 小时前
STM32通过KEIL pack包轻松移植LVGL,并学会使用GUI guider
stm32·lvgl·tftlcd·gui guider·gt911
三三十二11 小时前
STM32实战:数字音频播放器开发指南
stm32·单片机·嵌入式硬件
想搞嵌入式的小白13 小时前
STM32外设问题总结
单片机·嵌入式硬件
让子弹飞0214 小时前
35.成功解决编写关于“江协科技”编写技巧第二期标志位积累的问题
stm32·按键
木子单片机15 小时前
基于STM32语音识别柔光台灯
stm32·单片机·嵌入式硬件·proteus·语音识别·keil
广药门徒15 小时前
澄清 STM32 NVIC 中断优先级
单片机·嵌入式硬件