STM32点亮LED灯-库函数版

点亮一个LED灯是我们人生中必不可少的,不管是51或STM32,还是其他更底层领域,闲话就不多说啦,进入正题。

控制LED需要使用到GPIO输入和输出IO口,GPIO是STM32控制管脚,GPIO的管脚与外部设备连接,能够实现与外部进行通信,控制,采集数据等。

相关数据手册连接 提取码:ai24

GPIO框图
在这里插入图片描述
1.1硬件设置
在这里插入图片描述
LED的阴极连接到了STM32的GPIO管脚,只要我们控制GPIO电平的输出状态,赋予高或低电平,就能够控制LED的亮灭状态。如果你的开发板的LED灯连接方式不一样,修改工程相关管脚即可。

要想点亮LED需要了解GPIO模式配置,如下。

在这里插入图片描述
在这里插入图片描述

1、led.h头文件相关宏定义代码

#include "stm32f10x.h"
/* ---------------------------------------------

文件名称:led.h
描述:硬件相关模块封装  宏定义  方便移植  

-----------------------------------------------------*/
#define	GPIO_LED_PROT			GPIOC
#define	GPIO_LED_CLK			RCC_APB2Periph_GPIOC
#define	GPIO_LED_PIN			GPIO_Pin_13

void GPIO_Cofing(void);

2、led.c 文件的代码

RCC_APB2PeriphClockCmd(GPIO_LED_CLK,ENABLE);
配置IO时必须要使能时钟,时钟犹如人的心脏。

#include "bsp-led.h"


void GPIO_Cofing(void)
{

	GPIO_InitTypeDef	GPIO_InitStruct; //声明一个结构体								
	
	RCC_APB2PeriphClockCmd(GPIO_LED_CLK,ENABLE);	//使能GPIOC时钟
		
	GPIO_InitStruct.GPIO_Pin = GPIO_LED_PIN;		//控制PC13管脚
									
	GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;	//设置管脚为通用推挽输出模式				
	
	GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;	//设置管脚速率为50MHZ			
	
	GPIO_Init(GPIO_LED_PROT,&GPIO_InitStruct);		//初始化结构体								
}

主函数.main.c

#include "stm32f10x.h"
#include "bsp-led.h"



int main(void)
{
	
	
	GPIO_Cofing();
	while(1)
	{
		//寄存器GPIOx_BRR 相关寄存器配置请查看手册
		//作用:置1 清除对应ODR为0
		GPIO_ResetBits(GPIO_LED_PROT, GPIO_LED_PIN);
		
	}
}

烧录程序之后就可以点亮LED啦! 完

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值