点亮一颗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);
	}	
}
相关推荐
悠哉悠哉愿意13 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
Lester_110113 天前
STM32霍尔传感器输入口设置为复用功能输入口时,还能用GPIO函数直接读取IO的状态吗
stm32·单片机·嵌入式硬件·电机控制
LCG元13 天前
低功耗显示方案:STM32L0驱动OLED,动态波形绘制与优化
stm32·嵌入式硬件·信息可视化
三佛科技-1873661339713 天前
120W小体积碳化硅电源方案(LP8841SC极简方案12V10A/24V5A输出)
单片机·嵌入式硬件
z203483152013 天前
STM32F103系列单片机定时器介绍(二)
stm32·单片机·嵌入式硬件
古译汉书13 天前
【IoT死磕系列】Day 7:只传8字节怎么控机械臂?学习工业控制 CANopen 的“对象字典”(附企业级源码)
数据结构·stm32·物联网·http
Alaso_shuang13 天前
STM32 核心输入、输出模式
stm32·单片机·嵌入式硬件
脚后跟13 天前
AI助力嵌入式物联网项目全栈开发
嵌入式硬件·物联网·ai编程
2501_9181269113 天前
stm32死锁是怎么实现的
stm32·单片机·嵌入式硬件·学习·个人开发
z203483152013 天前
STM32F103系列单片机定时器介绍(一)
stm32·单片机