STM32——库函数流水灯程序

库函数版流水灯程序

我用的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);

发布了13 篇原创文章 · 获赞 8 · 访问量 3233

猜你喜欢

转载自blog.csdn.net/qq_45844792/article/details/105160816