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

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

STM32入门教程-2023版【3-2】点亮LED灯之库函数介绍_第1张图片

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

二、正式点亮一个LED灯

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

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

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

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

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

(1)RCC的库函数

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

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

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

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

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

STM32入门教程-2023版【3-2】点亮LED灯之库函数介绍_第4张图片

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

STM32入门教程-2023版【3-2】点亮LED灯之库函数介绍_第5张图片

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

STM32入门教程-2023版【3-2】点亮LED灯之库函数介绍_第6张图片

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

STM32入门教程-2023版【3-2】点亮LED灯之库函数介绍_第7张图片

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

STM32入门教程-2023版【3-2】点亮LED灯之库函数介绍_第8张图片

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

STM32入门教程-2023版【3-2】点亮LED灯之库函数介绍_第9张图片

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

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

STM32入门教程-2023版【3-2】点亮LED灯之库函数介绍_第10张图片

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

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

STM32入门教程-2023版【3-2】点亮LED灯之库函数介绍_第11张图片

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

STM32入门教程-2023版【3-2】点亮LED灯之库函数介绍_第12张图片

(2)GPIO的库函数

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

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

STM32入门教程-2023版【3-2】点亮LED灯之库函数介绍_第13张图片

第一个就是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个读写函数

STM32入门教程-2023版【3-2】点亮LED灯之库函数介绍_第14张图片

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

作 者 :硬核王同学

------- END ------

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

STM32入门教程-2023版【3-2】点亮LED灯之库函数介绍_第15张图片

你可能感兴趣的:(stm32,单片机,嵌入式硬件)