交叉闪烁灯程序
我用的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);