stm32之点亮LED

今天,记录一下stm32如何点亮一个LED,程序本身十分简单,但主要是学习编程的格式。

led.h

复制代码
#ifndef _led_H
#define _led_H

#include "system.h"

/*  LED时钟端口、引脚定义 */
#define LED1_PORT 			GPIOB   
#define LED1_PIN 			GPIO_Pin_5
#define LED1_PORT_RCC		RCC_APB2Periph_GPIOB

#define LED1 PBout(5) //通过位带操作,可直接对某位进行写1写0		

void LED_Init(void);


#endif

这是led.h的头文件,一定要着重看格式。

首先,整体结构如下所示。

#ifndef _led_H

#define _led_H

········

#endif

其次,是对要用到的引脚的宏定义,做到清晰明了。

/* LED时钟端口、引脚定义 */

#define LED1_PORT GPIOB

#define LED1_PIN GPIO_Pin_5

#define LED1_PORT_RCC RCC_APB2Periph_GPIOB

#define LED1 PBout(5)

最后,是对函数的声明。

void LED_Init(void);

led.c

复制代码
#include "led.h"

/*******************************************************************************
* 函 数 名         : LED_Init
* 函数功能		   : LED初始化函数
* 输    入         : 无
* 输    出         : 无
*******************************************************************************/
void LED_Init(void)
{
	GPIO_InitTypeDef GPIO_InitStructure;//定义结构体变量
	
	RCC_APB2PeriphClockCmd(LED1_PORT_RCC,ENABLE);
	
	GPIO_InitStructure.GPIO_Pin=LED1_PIN;  //选择你要设置的IO口
	GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;	 //设置推挽输出模式
	GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;	  //设置传输速率
	
	GPIO_Init(LED1_PORT,&GPIO_InitStructure); 	   /* 初始化GPIO */
	GPIO_SetBits(LED1_PORT,LED1_PIN);   //将LED端口拉高,熄灭所有LED
	
}

在led.c文件中一定要包含之前定义的led.h文件。

在led.c文件中,对之前在led.h中声明过的函数进行实现。

这是一个十分典型的GPIO的初始化程序。

首先,先定义一个实例,结构体变量。

然后,将LED所在端口的时钟使能。

对结构体变量内部的成员一一赋值。

然后利用GPIO_Init()函数对LED所在的端口与结构体变量对应起来。(因为结构体变量只指定了对应的引脚号,而不知道这个引脚是属于GPIOA组的,还是GPIOB组的)

相关推荐
努力创造奇迹1 小时前
STM32 HAL库 DS18B20驱动实现
stm32·单片机·嵌入式硬件
Molesidy1 小时前
【STM32】【USB】USB通讯方式的学习笔记以及基于CubeMX HAL库的例程验证
stm32·单片机·嵌入式·usb
Final5452 小时前
stm32循迹小车
stm32·单片机·嵌入式硬件
yyds_22012 小时前
STM32电机库无感代码注释无传感器版本龙贝格观测三电阻双AD采样前馈控制弱磁控制斜坡启动
stm32·单片机·嵌入式硬件·支持向量机
学嵌入式的六子2 小时前
如何使用VScode开发STM32【喂饭级教程】-全过程讲解
c语言·ide·vscode·stm32·单片机·嵌入式硬件
niuTaylor2 小时前
STM32控制舵机完全指南:从原理到实战(适合小白入门)
stm32·单片机·嵌入式硬件
清风6666662 小时前
基于单片机的玉米播种机漏播检测装置设计与实现
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
三品吉他手会点灯2 小时前
STM32F103 学习笔记-21-串口通信(第2节)-STM32串口功能框图讲解
笔记·stm32·单片机·嵌入式硬件·学习
Zeku2 小时前
20260103 - Linux平台总线LED驱动架构深度解析
stm32·freertos·linux驱动开发·linux应用开发
山上三树2 小时前
MMU与页表
linux·嵌入式硬件