|
/*********************************************************************
開發(fā)板:STM32神舟I號(hào)
實(shí)驗(yàn)結(jié)果:LED流水燈
編程方式:使用STM32庫(kù)函數(shù)
編程環(huán)境:Kei_MDK4.12
時(shí)間:2015.3.25
***********************************************************************/
#include "stm32f10x.h"
#include "stm32f10x_gpio.h"
#define PCL GPIOC->BRR //使PC輸出低電平
#define PCH GPIOC->BSRR //使PC輸出高電平
void delayms(unsigned int ms);//延時(shí)函數(shù)
void led(uint8_t a,uint8_t b);//LED顯示程序a表示第幾個(gè),b表示滅0或亮1
int main(void)
{
uint8_t n;
GPIO_InitTypeDef GPIO_InitStructure;
/* 使能LED對(duì)應(yīng)GPIO的Clock時(shí)鐘 */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); //使能LED1燈對(duì)應(yīng)的GPIOC管腳時(shí)鐘
/* 初始化LED的GPIO管腳,配置為推挽輸出 */ //設(shè)置端口
GPIO_InitStructure.GPIO_Pin = 0xFFFF;//GPIO_Pin_2|GPIO_Pin_3 ; //LED燈對(duì)應(yīng)的GPIO_Pin_2和3端口
//設(shè)置對(duì)端口的模式
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //設(shè)置為 推挽(Push-Pull)輸出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//輸出速率選擇50MHZ(2,10,50三種速率)
GPIO_Init(GPIOC, &GPIO_InitStructure);//調(diào)用GPIO初始化函數(shù)
while (1)
{
for(n=0;n<8;n++)
{
led(n,1);//第幾個(gè)亮
delayms(500);//延時(shí)
}
}
}
void delayms(unsigned int ms)//延時(shí)函數(shù)
{
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;}
}
|
|