STM32——库函数版——交叉闪烁灯程序

交叉闪烁灯程序

我用的stm32f103ZET6芯片

led给0亮

main.c*

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

int main(void)
{ 
	RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);	//系统时钟设置PLL作为系统时钟
	delay_init();			//初始化延时函数
	LED_flicker();  //led交叉闪烁函数
}

led.c

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

//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_flicker(void){
	
	LED_Init();  //led初始化
	while(1)
	{
		GPIO_Write(GPIOD, 0x55);
		delay_ms(200);	
		GPIO_Write(GPIOD,0xff );
		delay_ms(200);	
		GPIO_Write(GPIOD,0xaa );
		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_flicker(void);

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

猜你喜欢

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