点亮一颗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);
	}	
}
相关推荐
2301_7756023827 分钟前
STM32什么是寄存器
stm32·单片机·嵌入式硬件
国科安芯3 小时前
抗辐照MCU在卫星载荷电机控制器中的实践探索
网络·嵌入式硬件·硬件工程·智能硬件·空间计算
GenCoder3 小时前
Keil开发STM32生成hex文件/bin文件
stm32·bin文件生成·keil开发
憧憬一下3 小时前
FreeRTOS任务之深入篇
stm32·嵌入式·freertos
双古3 小时前
步进电机调试记录(先让我的步进电机转起来)
单片机·嵌入式硬件
lixzest4 小时前
STM32开发中,线程启动异常问题排查简述
stm32·嵌入式硬件
程序员JerrySUN4 小时前
全面理解 Linux 内核性能问题:分类、实战与调优策略
java·linux·运维·服务器·单片机
学习噢学个屁4 小时前
基于STM32语音识别柔光台灯
c语言·stm32·单片机·嵌入式硬件·语音识别
欢乐熊嵌入式编程7 小时前
欢乐熊大话蓝牙知识14:用 STM32 或 EFR32 实现 BLE 通信模块:从0到蓝牙,你也能搞!
stm32·单片机·嵌入式硬件
傍晚冰川7 小时前
FreeRTOS任务调度过程vTaskStartScheduler()&任务设计和划分
开发语言·笔记·stm32·单片机·嵌入式硬件·学习