基于STM2F407实现LED流水灯

玩转STM32F407



前言

正好有一块stm32f407zgt6的板子,决定好好学一学,就用这种写博客的方式来记录学习的过程。也希望获得更多志同道合的小伙伴一起交流,一起学习。


一、项目准备

1.STM32概述

STM32F4是由ST(意法半导体)开发的一种高性能微控制器系列。其采用了90nm的NVM工艺和ART技术(自适应实时存储加速器,Adaptive Real-Time MemoryAccelerator™)
这里使用的是核心板,如图:
在这里插入图片描述

2.环境搭建

工具:keil5
可在官网下载搭建环境:
https://www.keil.com/download/product/
也可使用下方链接下载(包含mdk、注册机、原理图、开发手册)
链接:https://pan.baidu.com/s/1shkLHdBRMVwerEur8LF-Nw?pwd=8888
提取码:8888

二、代码开发

1.查看原理图

在这里插入图片描述
图中LED的引脚分别是PF9和PF10,所以我们使用这两个引脚。

2.代码开发

代码如下:

#include "stm32f4xx.h"                  // Device header

GPIO_InitTypeDef  GPIO_InitStructure;  //初始化gpio需要的结构体


//一个自定义暂时用的延时函数
void delay(void)
{
    
    
	uint32_t i=0x2000000;
	while(i--);
}

int main(void)
{
    
    
	RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE, ENABLE);//使能GPIOE时钟
	RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);//使能GPIOF时钟

	//GPIOF9,F10初始化设置
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_10;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//普通输出模式
	GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽输出
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz
	GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//上拉
	GPIO_Init(GPIOF, &GPIO_InitStructure);//初始化
	
	GPIO_SetBits(GPIOF,GPIO_Pin_9 |GPIO_Pin_10);
	
	while(1)
	{
    
    
		GPIO_ResetBits(GPIOF,GPIO_Pin_9);//GPIOF9设置低,灯亮
		delay();
		GPIO_SetBits(GPIOF,GPIO_Pin_9);//GPIOF9设置高,灯灭	
		delay();
		GPIO_ResetBits(GPIOF,GPIO_Pin_10);//GPIOF10设置低,灯亮
		delay();
		GPIO_SetBits(GPIOF,GPIO_Pin_10);//GPIOF10设置高,灯灭	
		delay();
	}
}

这里实现的是两盏LED灯流水灯的效果。


总结

STM32F4的库函数比较多,没有办法全记住,所以借助帮助文档更有利与开发。

猜你喜欢

转载自blog.csdn.net/weixin_46155589/article/details/127229494
今日推荐