TA的每日心情 | 无聊 2024-9-25 10:17 |
---|
签到天数: 1 天 [LV.1]初来乍到
二级逆天
- 积分
- 705
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区
您需要 登录 才可以下载或查看,没有账号?立即注册
×
#include "stm32f10x.h"//头文件包含 将stm32的函数库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//宏定义 LED1所使用的gpio管脚
#define DS2_PIN GPIO_Pin_7//宏定义 LED2所使用的gpio管脚
#define DS3_PIN GPIO_Pin_8//宏定义 LED3所使用的gpio管脚
#define DS4_PIN GPIO_Pin_9//宏定义 LED4所使用的gpio管脚
GPIO_InitTypeDef GPIO_InitStructure;//gpio口初始化结构体
ErrorStatus HSEStartUpStatus;// (等待时钟的稳定?)(使强制执行c规则)
u8 count=0;//定义8位无符号数据变量
void RCC_Configuration(void);//初始化stm32系统时钟
void NVIC_Configuration(void);//定义中断管理初始化函数
void Delay(vu32 nCount);//声明延时函数
void Turn_On_LED(u8 LED_NUM);//LED控制函数
int main(void)
{
//配置GPIO口管脚模式
RCC_APB2PeriphClockCmd(RCC_GPIO_LED, ENABLE);//使能LED灯所使用的时钟
GPIO_InitStructure.GPIO_Pin = DS1_PIN|DS2_PIN|DS3_PIN|DS4_PIN;//设定LED所使用的管脚,使之有效
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//设GPIO口的输出模式为推免模式
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//设置GPIO口的输出时钟为50MHz
GPIO_Init(GPIO_LED, &GPIO_InitStructure); //初始化LED灯所使用的管脚
GPIO_SetBits(GPIO_LED,DS1_PIN|DS2_PIN|DS3_PIN|DS4_PIN);//置所有控制LED的GPIO口管脚为高电平,关闭所有LED灯
while(1)
{
GPIO_SetBits(GPIO_LED,DS1_PIN|DS2_PIN|DS3_PIN|DS4_PIN);//置所有控制LED的GPIO口管脚为高电平,关闭所有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)
{
while(nCount--);
} |
|