点亮一颗LED灯

TOC


LED0

c 复制代码
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//使能APB2的外设时钟
	GPIO_InitTypeDef GPIO_Initstructure;
	GPIO_Initstructure.GPIO_Mode = GPIO_Mode_Out_PP;//通用推挽输出
	GPIO_Initstructure.GPIO_Pin = GPIO_Pin_5;
	GPIO_Initstructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOB,&GPIO_Initstructure);//配置端口模式
	GPIO_SetBits(GPIOB,GPIO_Pin_5);//关闭LED灯

LED1

c 复制代码
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE);//使能APB2的外设时钟
	GPIO_InitTypeDef GPIO_Initstructure;
	GPIO_Initstructure.GPIO_Mode = GPIO_Mode_Out_PP;//通用推挽输出
	GPIO_Initstructure.GPIO_Pin = GPIO_Pin_5;
	GPIO_Initstructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOE,&GPIO_Initstructure);//配置端口模式
	GPIO_SetBits(GPIOE,GPIO_Pin_5);//关闭LED灯

Periph ---------Peripherals---[pəˈrɪfərəlz]---外设

Hardware中添加LED.C和LED.h文件

LED.h文件中,添加一段防止头文件重复的代码

LED.h

c 复制代码
#ifndef __LED_H
#define __LED_H
void LED1_Init(void);
void LED0_Init(void);
void LED1_On(void);
void LED1_Off(void);
void LED1_Turn(void);
void LED0_On(void);
void LED0_Off(void);
void LED0_Turn(void);
#endif

注意最后一行空

LED.c

LED.C 文件中,右键添加"stm32f10x.h"头文件

c 复制代码
#include "stm32f10x.h"                  // Device header
void LED1_Init(void)
{
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE);
	GPIO_InitTypeDef GPIO_Initstructure;
	GPIO_Initstructure.GPIO_Mode=GPIO_Mode_Out_PP;
	GPIO_Initstructure.GPIO_Pin=GPIO_Pin_5;
	GPIO_Initstructure.GPIO_Speed=GPIO_Speed_50MHz;
	GPIO_Init(GPIOE,&GPIO_Initstructure);
	GPIO_SetBits(GPIOE,GPIO_Pin_5);
}
void LED0_Init(void)
{
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
	GPIO_InitTypeDef GPIO_Initstructure;
	GPIO_Initstructure.GPIO_Mode=GPIO_Mode_Out_PP;
	GPIO_Initstructure.GPIO_Pin=GPIO_Pin_5;
	GPIO_Initstructure.GPIO_Speed=GPIO_Speed_50MHz;
	GPIO_Init(GPIOB,&GPIO_Initstructure);
	GPIO_SetBits(GPIOB,GPIO_Pin_5);
}
void LED1_On(void)
{
	GPIO_ResetBits(GPIOE,GPIO_Pin_5);
}
void LED1_Off(void)
{
	GPIO_SetBits(GPIOE,GPIO_Pin_5);
}
void LED1_Turn(void)
{
	if(GPIO_ReadOutputDataBit(GPIOE,GPIO_Pin_5) == 1)
	{
		GPIO_ResetBits(GPIOE,GPIO_Pin_5);
	}
	else
	{
		GPIO_SetBits(GPIOE,GPIO_Pin_5);
	}	
}
void LED0_On(void)
{
	GPIO_ResetBits(GPIOB,GPIO_Pin_5);
}
void LED0_Off(void)
{
	GPIO_SetBits(GPIOB,GPIO_Pin_5);
}
void LED0_Turn(void)
{
	if(GPIO_ReadOutputDataBit(GPIOB,GPIO_Pin_5) == 1)
	{
		GPIO_ResetBits(GPIOB,GPIO_Pin_5);
	}
	else
	{
		GPIO_SetBits(GPIOB,GPIO_Pin_5);
	}	
}
相关推荐
LCG元5 小时前
STM32实战:基于STM32F103的Bootloader设计与IAP在线升级
javascript·stm32·嵌入式硬件
不怕犯错,就怕不做6 小时前
Linux-Sensor驱动移植与调试(转载)
linux·驱动开发·嵌入式硬件
LCMICRO-133108477467 小时前
长芯微LCMDC8584完全P2P替代ADS8584,是一款16位、4通道同步采样的逐次逼近型(SAR)模数转换器(ADC)
stm32·单片机·嵌入式硬件·fpga开发·硬件工程·模数转换器adc
STC_USB_CAN_80517 小时前
菜单学习,科学计算器使用【TFT240*320彩屏+实际键盘】@Ai8051U,ST7789
单片机·学习·51单片机
FreakStudio7 小时前
无硬件学LVGL—定时器篇:基于Web模拟器+MicroPython速通GUI开发
python·单片机·嵌入式·大学生·面向对象·并行计算·电子diy·电子计算机
异方辰电子10 小时前
8.原理图为什么看不到具体的电路(比如STM32的晶振等)
stm32·单片机·嵌入式硬件
richxu2025100111 小时前
嵌入式学习之路->stm32篇->(11)SPI通信(下)
stm32·嵌入式硬件·学习
电子科技圈11 小时前
从进迭时空K3看RISC-V CPU与Imagination GPU协同:如何构建高性能SoC能力
大数据·图像处理·人工智能·嵌入式硬件·边缘计算·智能硬件·risc-v
W.W.H.11 小时前
FreeRTOS移植(保姆级教程)
经验分享·单片机·操作系统·freertos·rtos
LCG元12 小时前
STM32实战:基于STM32F103的智能消防报警联动系统
stm32·单片机·嵌入式硬件