首页 > 代码库 > STM32-----LED
STM32-----LED
#include "stm32f10x.h"
/* 为了使用编程书写方便,我们定义几个控制LED开关的宏 */
#define LED1_ON() {GPIO_ResetBits(GPIOF, GPIO_Pin_6);} /* PF6 = 0 点亮LED1 */
#define LED1_OFF() {GPIO_SetBits(GPIOF, GPIO_Pin_6);} /* PF6 = 1 熄灭LED1 */
#define LED2_ON() {GPIO_ResetBits(GPIOF, GPIO_Pin_7);} /* PF7 = 0 点亮LED2 */
#define LED2_OFF() {GPIO_SetBits(GPIOF, GPIO_Pin_7);} /* PF7 = 1 点亮LED2 */
#define LED3_ON() {GPIO_ResetBits(GPIOF, GPIO_Pin_8);} /* PF8 = 0 点亮LED3 */
#define LED3_OFF() {GPIO_SetBits(GPIOF, GPIO_Pin_8);} /* PF8 = 1 点亮LED3 */
#define LED4_ON() {GPIO_ResetBits(GPIOF, GPIO_Pin_9);} /* PF9 = 0 点亮LED4 */
#define LED4_OFF() {GPIO_SetBits(GPIOF, GPIO_Pin_9);} /* PF9 = 1 点亮LED4 */
void Delay(__IO uint32_t nCount)
{
for(; nCount != 0; nCount--);
}
int main(void)
{
{
GPIO_InitTypeDef GPIO_InitStructure;
/* 打开GPIOF 时钟 */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF, ENABLE);
/* 在将LED设置为输出前先设置输出1,避免一开始就点亮LED */
GPIO_SetBits(GPIOF, GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9);
/* 可以对PF6 - PF9 一起初始化 */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7
| GPIO_Pin_8 | GPIO_Pin_9;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; /* 推挽输出模式 */
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOF, &GPIO_InitStructure); /* 调用库函数初始化GPIO */
}
/* 下面这个 while循环实现简单的跑马灯功能 */
while (1)
{
LED1_ON(); /* 点亮LED1 */
Delay(0xAFFFF); /* 插入延时 */
LED2_ON(); /* 点亮LED2 */
LED3_ON(); /* 点亮LED3 */
LED1_OFF(); /* 熄灭LED1 */
Delay(0xAFFFF); /* 插入延时 */
LED4_ON(); /* 点亮LED4 */
LED2_OFF(); /* 关闭LED2 */
LED3_OFF(); /* 关闭LED3 */
Delay(0xAFFFF); /* 插入延时 */
LED4_OFF(); /* 关闭LED4 */
}
}
/* 为了使用编程书写方便,我们定义几个控制LED开关的宏 */
#define LED1_ON() {GPIO_ResetBits(GPIOF, GPIO_Pin_6);} /* PF6 = 0 点亮LED1 */
#define LED1_OFF() {GPIO_SetBits(GPIOF, GPIO_Pin_6);} /* PF6 = 1 熄灭LED1 */
#define LED2_ON() {GPIO_ResetBits(GPIOF, GPIO_Pin_7);} /* PF7 = 0 点亮LED2 */
#define LED2_OFF() {GPIO_SetBits(GPIOF, GPIO_Pin_7);} /* PF7 = 1 点亮LED2 */
#define LED3_ON() {GPIO_ResetBits(GPIOF, GPIO_Pin_8);} /* PF8 = 0 点亮LED3 */
#define LED3_OFF() {GPIO_SetBits(GPIOF, GPIO_Pin_8);} /* PF8 = 1 点亮LED3 */
#define LED4_ON() {GPIO_ResetBits(GPIOF, GPIO_Pin_9);} /* PF9 = 0 点亮LED4 */
#define LED4_OFF() {GPIO_SetBits(GPIOF, GPIO_Pin_9);} /* PF9 = 1 点亮LED4 */
void Delay(__IO uint32_t nCount)
{
for(; nCount != 0; nCount--);
}
int main(void)
{
{
GPIO_InitTypeDef GPIO_InitStructure;
/* 打开GPIOF 时钟 */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF, ENABLE);
/* 在将LED设置为输出前先设置输出1,避免一开始就点亮LED */
GPIO_SetBits(GPIOF, GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9);
/* 可以对PF6 - PF9 一起初始化 */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7
| GPIO_Pin_8 | GPIO_Pin_9;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; /* 推挽输出模式 */
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOF, &GPIO_InitStructure); /* 调用库函数初始化GPIO */
}
/* 下面这个 while循环实现简单的跑马灯功能 */
while (1)
{
LED1_ON(); /* 点亮LED1 */
Delay(0xAFFFF); /* 插入延时 */
LED2_ON(); /* 点亮LED2 */
LED3_ON(); /* 点亮LED3 */
LED1_OFF(); /* 熄灭LED1 */
Delay(0xAFFFF); /* 插入延时 */
LED4_ON(); /* 点亮LED4 */
LED2_OFF(); /* 关闭LED2 */
LED3_OFF(); /* 关闭LED3 */
Delay(0xAFFFF); /* 插入延时 */
LED4_OFF(); /* 关闭LED4 */
}
}
STM32-----LED
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。