arm中点灯的c语言程序,STM32 ARM C语言编程之流水灯

STM32 ARM C语言编程之流水灯

#include "stm32f10x.h"//头文件包含 将stm32的函数库stm32f10x.h包进来fz|cnU

Bal$+S

#define RCC_GPIO_LED RCC_APB2Periph_GPIOF//宏定义 LED使用的GPIO时钟95ZyP!

#define LEDn 4//宏定义 LED数量^yW L,$

#define GPIO_LED GPIOF//宏定义 LED灯所使用的gpio组}JF13beU

%'bM){

#define DS1_PIN GPIO_Pin_6//宏定义 LED1所使用的gpio管脚{#ZlM

#define DS2_PIN GPIO_Pin_7//宏定义 LED2所使用的gpio管脚nEJq_

#define DS3_PIN GPIO_Pin_8//宏定义 LED3所使用的gpio管脚}q_<_lq>

#define DS4_PIN GPIO_Pin_9//宏定义 LED4所使用的gpio管脚1Ir21un

qraSRK5

GPIO_InitTypeDef GPIO_InitStructure;//gpio口初始化结构体nr95YSH

ErrorStatus HSEStartUpStatus;// (等待时钟的稳定?)(使强制执行c规则)p)`{Sos

u8 count=0;//定义8位无符号数据变量2

bWH&P/>

void RCC_Configuration(void);//初始化stm32系统时钟RiDJ>6S

void NVIC_Configuration(void);//定义中断管理初始化函数@@R7p

void Delay(vu32 nCount);//声明延时函数h{CL{>d

void Turn_On_LED(u8 LED_NUM);//LED控制函数HHA

o)h_H;

int main(void)-)w@f~Q

{CNih6R

//配置GPIO口管脚模式pV9IHs}

RCC_APB2PeriphClockCmd(RCC_GPIO_LED, ENABLE);//使能LED灯所使用的时钟(/z_Q{"N

GPIO_InitStructure.GPIO_Pin = DS1_PIN|DS2_PIN|DS3_PIN|DS4_PIN;//设定LED所使用的管脚,使之有效$|L

Sx

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//设GPIO口的输出模式为推免模式2y//'3[

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//设置GPIO口的输出时钟为50MHzr/YMLQ

/z4$gb7Y

GPIO_Init(GPIO_LED, &GPIO_InitStructure); //初始化LED灯所使用的管脚vUN22;Z\

GPIO_SetBits(GPIO_LED,DS1_PIN|DS2_PIN|DS3_PIN|DS4_PIN);//置所有控制LED的GPIO口管脚为高电平,关闭所有LED灯@:j}Jmg

'H3^e}

while(1)L9r8BK;

{v_

GPIO_SetBits(GPIO_LED,DS1_PIN|DS2_PIN|DS3_PIN|DS4_PIN);//置所有控制LED的GPIO口管脚为高电平,关闭所有LED灯P2NQHX

Turn_On_LED(count%4);//点亮一个LED灯*T-

count++;02f~En}>6

Delay(0x2FFFFF);:G [|CPm-

}UxbjA-U[

}E-4b[xNj*+

"7

4-4

void Turn_On_LED(u8 LED_NUM)l}a)ZeR1

{V_R@o3kv;

switch(LED_NUM)rx'RSo#1O

{{ME2ImD

case 0:}{,^@xdyW

GPIO_ResetBits(GPIO_LED,DS1_PIN); //点亮DS1灯'

break;:nh_k4S@v

case 1::WjpzgPuN

GPIO_ResetBits(GPIO_LED,DS2_PIN); //点亮DS2灯wu7Lk3

break;Pnk5mK$

case 2:{}>0e:51

GPIO_ResetBits(GPIO_LED,DS3_PIN); //点亮DS3灯w;;BSJ]+[

break;Qk0R a_

case 3:rxVanDb=W

GPIO_ResetBits(GPIO_LED,DS4_PIN); //点亮DS4灯c-x,fS"&W

break;bbtGXfI+SB

default:%d1,a$*3}

GPIO_ResetBits(GPIO_LED,DS1_PIN|DS2_PIN|DS3_PIN|DS4_PIN); //点亮所有的灯|!1Y*|Q%s

break;qt"G[9;

}i)o2klIkB

}c%^7!FSg

h2)yq:87

void Delay(vu32 nCount)0QBiC]9

{T] R|qlZ

while(nCount--);XQrF4l

}QMA%$

你可能感兴趣的:(arm中点灯的c语言程序)