自学内容网 自学内容网

使用库函数点亮一个LED灯

软件设计

STM32Gpio的介绍

如果想让LED0点亮,那么R12就要是高电平,LED0就要是低电平,也就是PF9就是低电平

F407系统主频要工作在168MHZ

F103的话是工作在72mhz

F429的话就180MHZ

接着我们就要使能Gpio的时钟,使能之后对GPIO相关的参数,比如说工作模式,管脚输出方向,输出的速度怎么样,最后点亮LED灯

编写的一些外设驱动文件,比如我们的LED,蜂鸣器,LCD,IIC,SPIflash等等

这里放一些驱动程序,比如说串口的程序,以及系统的一些时钟初始化,变量的重定义等等主要是用来调试

保存LED的文件存放在APP/led

头文件

定义我们的管脚,以及我们函数的声明

在public中存放系统时钟文件.C和.h文件

在我们的主函数那里有很多初始化定义时钟的配置,还在关键字的重定义,这样子的主函数就会特别多东西

现在我们先把关键字放在时钟的头文件

把他拷贝进来后,突然发现报错了

因为这些类型都定义在stm32f4xx.h的这个文件中

为什么要写这个格式

首先你要知道如果没有这个格式,我们在led.c和main.c里放这个头文件,

那么当你编译的时候就会发出一个错误,类型重定义

出现这个问题是因为你main.c你又包括led.c你放一个头文件进去,就会被包含两次

怎么解决这个

主要是用ifndef这个预定义符号,这个后面加个定义system_h

是想看看这个有没有被定义,没有的话就执行了下面的程序,

如果定义了就不会走下去,就只包含了一次

接下来包含头文件, 不然就找不到

添加文件到APP那里

看到这个就知道要添加头文件了、

抢占和响应优先级为0到3

GPIO相关函数的使用

这个函数的作用是对端口的时钟进行使能

如果你要关闭的话就失能使用这个函数、、

Gpio初始化函数

这个是端口,就是你想点亮的LED灯所在的端口

初始化结构体的指针

这个就是那个结构体

pin是引脚

mode是模式

pull是上拉或者是下拉

Speed是我们的速度

Alternate是我们复用的功能是一些配置

Gpio功能的配置

想让他初始化为熄灭状态,那么就要上拉,你左边的和右边的电平要一致就不会导通了

输出引脚高低电平的函数,第一个参数是他引脚的端口,第二个是他的引脚,第三个是高低电平

这样子写是可以是因为他们能在同一端口上

因为可能不在一个端口上,所以分开写

这个把上拉和高速删了,因为配置重复了,所以要删除下面的那个

这样写便于移植,这些东西都是放在LED文件下的,如果你到时候换个版,你在这里修改引脚,到时候全部就可以用了,就不用改那么多了


原文地址:https://blog.csdn.net/2301_77634163/article/details/142434065

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!