STM32——库函数流水灯程序

本文介绍了一种使用STM32F103ZET6芯片实现流水灯效果的程序设计方法,通过定义LED显示码数组,利用GPIO配置和延时函数控制LED的流动显示,实现了LED灯的动态效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

库函数版流水灯程序

我用的stm32f103ZET6芯片

led给0亮

先在新建好的项目文件夹SYSTE里建一个led文件夹用于存放led.c和led.h
如:
led
接下来直接看代码吧!
main.c

#include "sys.h"
#include "delay.h"
#include "led.h"

int main(void)
{ 
	RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);	//系统时钟设置PLL作为系统时钟
	delay_init();			//初始化延时函数	
	LED_flow();  //LED流动函数
}

led.c

#include "led.h"
#include "delay.h"

unsigned char led[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};  //led显示码

//led初始化
void LED_Init(void){
	GPIO_InitTypeDef  GPIO_InitStructure;
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);
	GPIO_InitStructure.GPIO_Pin = LED_flicker_GPIO;    //流水灯GPIO引脚配置
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  //推挽输出
	GPIO_InitStructure.GPIO_Speed= GPIO_Speed_50MHz;  //最高输出速率50MHz	
	GPIO_Init(GPIOD, &GPIO_InitStructure);  //IO口初始化

}
//LED流动函数
void LED_flow(void){
	LED_Init();  //led初始化
	while(1)
	{
		int i;
		for(i=0;i<8;i++){
		//遍历数组让led流动显示
		GPIO_Write(GPIOD,led[i] );
		delay_ms(200);   //延时控制流动速度
			
		}
	}
}

led.h

#include "sys.h"

#define LED_flicker_GPIO GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7
//led初始化
void LED_Init(void);
//LED流动函数
void LED_flow(void);

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西瓜籽@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值