#include "stm32f10x.h"
#define RCC_GPIO_LED RCC_APB2Periph_GPIOF /*LED使用的GPIO时钟*/
#define LEDn 4 /*LED数量*/
#define GPIO_LED GPIOF /*LED灯使用的GPIO组*/
#define DS1_PIN GPIO_Pin_6 /*DS1使用的GPIO管脚*/
#define DS2_PIN GPIO_Pin_7 /*DS2使用的GPIO管脚*/
#define DS3_PIN GPIO_Pin_8 /*DS3使用的GPIO管脚*/
#define DS4_PIN GPIO_Pin_9 /*DS4使用的GPIO管脚*/
GPIO_InitTypeDef GPIO_InitStructure;
ErrorStatus HSEStartUpStatus;
u8 count=0;
void RCC_Configuration(void);
void NVIC_Configuration(void);
void Delay(vu32 nCount);
void Turn_On_LED(u8 LED_NUM);
int main(void)
{
/* 配置LED灯使用的GPIO管脚模式*/
RCC_APB2PeriphClockCmd(RCC_GPIO_LED, ENABLE); /*使能LED灯使用的GPIO时钟*/
GPIO_InitStructure.GPIO_Pin = DS1_PIN|DS2_PIN|DS3_PIN|DS4_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIO_LED, &GPIO_InitStructure); /*LED灯相关的GPIO口初始化*/
GPIO_SetBits(GPIO_LED,DS1_PIN|DS2_PIN|DS3_PIN|DS4_PIN);/*关闭所有的LED指示灯*/
while(1)
{
GPIO_SetBits(GPIO_LED,DS1_PIN|DS2_PIN|DS3_PIN|DS4_PIN);/*关闭所有的LED指示灯*/
Turn_On_LED(count%4); //点亮一个LED灯
count++;
Delay(0x2FFFFF);
}
}
/*点亮对应灯*/
void Turn_On_LED(u8 LED_NUM)
{
switch(LED_NUM)
{
case 0:
GPIO_ResetBits(GPIO_LED,DS1_PIN); /*点亮DS1灯*/
break;
case 1:
GPIO_ResetBits(GPIO_LED,DS2_PIN); /*点亮DS2灯*/
break;
case 2:
GPIO_ResetBits(GPIO_LED,DS3_PIN); /*点亮DS3灯*/
break;
case 3:
GPIO_ResetBits(GPIO_LED,DS4_PIN); /*点亮DS4灯*/
break;
default:
GPIO_ResetBits(GPIO_LED,DS1_PIN|DS2_PIN|DS3_PIN|DS4_PIN); /*点亮所有的灯*/
break;
}
}
void Delay(vu32 nCount)
{
for(; nCount != 0; nCount--);
}