欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【STM32】GPIO之LED

程序员文章站 2022-03-04 23:45:41
...

00. 目录

01. STM32F4 IO简介

参考:【STM32】GPIO概述

02. 控制原理

【STM32】GPIO之LED

硬件只有 LED(DS0 和 DS1)。其电路在 ALIENTEK 探索者 STM32F4 开发板上默认是已经连接好了的。DS0 接 PF9,DS1 接 PF10。

对应的引脚为低电平的时候LED就亮,否则LED就灭。

03. 程序示例一

所有LED灭

int main(void)
{
	GPIO_InitTypeDef gpio_InitTypeDef;
	
	gpio_InitTypeDef.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_10;
	gpio_InitTypeDef.GPIO_Mode = GPIO_Mode_OUT;
	gpio_InitTypeDef.GPIO_Speed = GPIO_Speed_100MHz;
	gpio_InitTypeDef.GPIO_OType = GPIO_OType_PP;
	gpio_InitTypeDef.GPIO_PuPd = GPIO_PuPd_UP;
	
	
	delay_init(168);
	

	//1. 初始化GPIO的时钟
	RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);
	
	//2. 初始化GPIO
	GPIO_Init(GPIOF, &gpio_InitTypeDef);
	
	//3. 设置高电平
	GPIO_SetBits(GPIOF, GPIO_Pin_9 | GPIO_Pin_10);

	return 0;
}

04. 程序示例二

所有的LED亮

int main(void)
{
	GPIO_InitTypeDef gpio_InitTypeDef;
	
	gpio_InitTypeDef.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_10;
	gpio_InitTypeDef.GPIO_Mode = GPIO_Mode_OUT;
	gpio_InitTypeDef.GPIO_Speed = GPIO_Speed_100MHz;
	gpio_InitTypeDef.GPIO_OType = GPIO_OType_PP;
	gpio_InitTypeDef.GPIO_PuPd = GPIO_PuPd_UP;
	
	
	delay_init(168);
	

	//1. 初始化GPIO的时钟
	RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);
	
	//2. 初始化GPIO
	GPIO_Init(GPIOF, &gpio_InitTypeDef);
	
	//3. 设置低电平
	//GPIO_ResetBits(GPIOF, GPIO_Pin_9 | GPIO_Pin_10);
    
	return 0;
}

05. 程序示例三

LED闪烁

#include "stm32f4xx.h"

#include "delay.h"

int main(void)
{
	GPIO_InitTypeDef gpio_InitTypeDef;
	
	gpio_InitTypeDef.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_10;
	gpio_InitTypeDef.GPIO_Mode = GPIO_Mode_OUT;
	gpio_InitTypeDef.GPIO_Speed = GPIO_Speed_100MHz;
	gpio_InitTypeDef.GPIO_OType = GPIO_OType_PP;
	gpio_InitTypeDef.GPIO_PuPd = GPIO_PuPd_UP;
	
	
	delay_init(168);
	

	//1. 初始化GPIO的时钟
	RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);
	
	//2. 初始化GPIO
	GPIO_Init(GPIOF, &gpio_InitTypeDef);
	
	//3. LED闪烁
	while(1)
	{
		//灭
		GPIO_SetBits(GPIOF, GPIO_Pin_9 | GPIO_Pin_10);
		delay_ms(1000);
		
		//亮
		GPIO_ResetBits(GPIOF, GPIO_Pin_9 | GPIO_Pin_10);
		delay_ms(1000);
	}
	
	
	return 0;
}

06. 附录

6.1 【STM32】STM32系列教程汇总

网址:【STM32】STM32系列教程汇总

07. 声明

该教程参考了正点原子的《STM32 F4 开发指南》

相关标签: 嵌入式天地