STM32F103ZET6【标准库函数开发】------01 GPIO输出,点亮LED

一、硬件介绍

使用的是正点原子战舰开发板,主控为STM32F103ZET6
开发板上有两个LED可以配置,有下图可以看到这两个电阻都经过一个电阻上拉到VCC3.3,分别连接到PB5和PE5,这个510Ω的电阻做限流使用,改变这个阻值可以改变LED的亮度。
在这里插入图片描述

二、实现目的

开机后点亮两个LED

三、设计思路

3.1 GPIO的输入和输出模式

输出模式输入模式
推挽输出浮空输入
开漏输出上拉输入
复用推挽输出下拉输入
复用开漏输出模拟输入

想要点亮LED,需要将GPIO设置为推挽输出

3.2 点亮、熄灭LED时电平的状态

要点亮LED0和LED1就要把PB5和PE5S设置为低电平;
要熄灭LED0和LED1就要把PB5和PE5S设置为高电平;

3.3 需要进行的配置

1、使能PB、PE时钟
2、将PB5、PE5设置为推挽输出
3、设置IO口速度
2、初始化GPIO

四、代码简介

点亮LED主要需要三个文件,主函数main.c、驱动的源文件led.c、驱动的头文件led.h
led.h

#define LED0 PBout(5)// 宏定义LED0为GPIOB.5输出
#define LED1 PEout(5)// 宏定义LED1为GPIOE.5输出
void LED_Init(void);//定义函数

led.c

//LED初始化
void LED_Init(void)
{ 
 GPIO_InitTypeDef  GPIO_InitStructure; 	
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOE, ENABLE);	 //使能PB,PE端口时钟
	
 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;				 //LED0-->PB.5 端口配置
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 		 //推挽输出
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;		 //IO口速度为50MHz
 GPIO_Init(GPIOB, &GPIO_InitStructure);					 //初始化GPIOB.5

 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;	    		 //LED1-->PE.5 端口配置
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 		 //推挽输出
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;		 //IO口速度为50MHz
 GPIO_Init(GPIOE, &GPIO_InitStructure);	  				 //初始化GPIOE.5
}

main.c

//主函数
 int main(void)
 {	 
	LED_Init();	//函数初始化	
	LED0=0;//点亮LED0
	LED1=0;//点亮LED1
	while(1)
	{

	}
 }

通过以上的配置就可以点亮两个LED

五、现象展示

两个LED点亮
两个LED熄灭

扩展

PS:如果想实现LED闪烁只需要修改main.c函数如下:

 int main(void)
 {	
	delay_init();	    //延时函数初始化	  
	LED_Init();		//初始化与LED连接的硬件接口
	while(1)
	{
		LED0=0;//点亮LED0
		LED1=1;//熄灭LED1
		delay_ms(300);	 //延时300ms
		LED0=1;//熄灭LED0
		LED1=0;//点亮LED1
		delay_ms(300);	//延时300ms
	}
 }
  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值