#include "stm32f10x.h"
#include "stm32f10x_gpio.h"
#define PCL GPIOC->BRR //使PC输出低电平
#define PCH GPIOC->BSRR //使PC输出高电平
void delayms(unsigned int ms);//延时函数
void led(uint8_t a,uint8_t b);//LED显示程序a表示第几个,b表示灭0或亮1
int main(void)
{
uint8_t n;
GPIO_InitTypeDef GPIO_InitStructure;
/* 使能LED对应GPIO的Clock时钟 */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); //使能LED1灯对应的GPIOC管脚时钟
/* 初始化LED的GPIO管脚,配置为推挽输出 */ //设置端口
GPIO_InitStructure.GPIO_Pin = 0xFFFF;//GPIO_Pin_2|GPIO_Pin_3 ; //LED灯对应的GPIO_Pin_2和3端口
//设置对端口的模式
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //设置为 推挽(Push-Pull)输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//输出速率选择50MHZ(2,10,50三种速率)
GPIO_Init(GPIOC, &GPIO_InitStructure);//调用GPIO初始化函数
while (1)
{
for(n=0;n<8;n++)
{
led(n,1);//第几个亮
delayms(500);//延时
}
}
}
void delayms(unsigned int ms)//延时函数
{
unsigned char a,b;
while(ms--)
for(b=254;b>0;b--)
for(a=13;a>0;a--);
}
void led(uint8_t a,uint8_t b)//LED显示程序
{
PCL=0xffff;
if(b){PCH=1<<a;}
else {PCL=1<<a;}
}
|