STM32入门教程-2023版【3-2】点亮LED灯之库函数介绍

发布时间:2023年12月29日

关注?+ 点赞? ?不错过精彩内容

图片

大家好,我是硬核王同学,最近在做免费的嵌入式知识分享,帮助对嵌入式感兴趣的同学学习嵌入式、做项目、找工作!?

二、正式点亮一个LED灯

操作STM32的GPIO需要三个步骤:

? 1.使用RCC打开GPIO的时钟;

? 2.使用GPIO_Init函数初始化GPIO;

??3.使用输出或输入函数来控制GPIO口

这里涉及了GPIORCC两个外设,可以看看这两个外设有哪些库函数

(1)RCC的库函数

首先是RCC,我们可以在Library中找到rcc.h这个文件,双击打开,在这个.h文件的最下面,一般都是库函数所有函数的声明

图片

在这里我们可以看到RCC有很多的库函数,但实际上这里的大部分函数我们都不会用到,我们最常用的只有这三个函数,RCC_AHB外设时钟控制、RCC_APB2外设时钟控制、RCC_APB1外设时钟控制

图片

右键点击函数名,跳转到函数定义,但此时跳转不过去,是因为刚才我们把中间文件给删掉了,那么重新编译一下再跳转就可以跳转成功了。这时就来到了RCC的.c文件里的函数定义

图片

选中的这部分有这个函数的介绍,这个AHB外设时钟控制的函数就是使能或者失能AHB外设时钟的

图片

第一个参数就是选择哪一个外设

图片

STM32互联型的设备可以在这个列表选择

图片

其他设备再这个选中的部分选则

图片

接着第二个参数就是ENABLE或者DISABLE

图片

下面的APB2外设时钟控制和APB1外设时钟控制都是一样的操作方法

第一个参数选择外设,第二个参数使能或失能

图片

如果你不清楚哪个外设是连接在哪个总线上的,还可以在这个函数的上面的列表找一下

列表中出现了就肯定是这个总线的外设

图片

RCC函数到这里就介绍完了,最主要的还是这三个函数,其他的基本上用不到,需要用到的时候再看详细介绍~

图片

(2)GPIO的库函数

GPIO的库函数,我们可以在Library中打开GPIO.h这个文件,在这个.h文件的最后,就是GPIO的全部库函数了

目前可以先了解前面的一些库函数,后面的库函数以后需要用到了再了解

图片

第一个就是GPIO_Delnit,参数可以写GPIOA、GPIOB等等

调用这个函数之后,所指定的GPIO外设就会被复位

void GPIO_DeInit(GPIO_TypeDef* GPIOx);

第二个AFIODeinit也是一样,可以复位AFIO外设,这个AFIO我们后面再讲

void GPIO_AFIODeInit(void);

第三个GPIO_Init是一个非常重要的函数,这个函数的作用是,用结构体的参数来初始化GPIO口

void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);

我们需要先定义一个结构体变量,再给结构体赋值,最后调用这个函数,这个函数内部就会自动读取结构体的值,自动把外设的各个参数配置好

这种init函数在STM32中基本所有的外设都有,一般我们初始化外设都是使用这个init函数来完成的

第四个是GPio_StructInit函数,这个函数可以把结构体变量赋一个默认值

void GPIO_StructInit(GPIO_InitTypeDef* GPIO_InitStruct);

接下来这四个就是GPIO的读取函数了

uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx);uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);uint16_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx);

再下面跟着的四个就是GPIO的写入函数,这些函数就可以实现读写GPIO口的功能

void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal);void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal);

剩下的这些函数我们暂时不会用到,这里面重要的函数就是上面的GPIO Init和这8个读写函数

图片

下面(下一篇)我们就来试试,用这些函数来操作GPIO吧

作?者?:硬核王同学

-------?END?------

关注公众号回复“加群”按规则加入技术交流群 ?回复“1024”查看更多内容

图片

文章来源:https://blog.csdn.net/qq_56921854/article/details/135296747
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。