最近比较想上进,又不知道要干什么,就来水几篇博客欺骗一下自己。
GPIO全称是:General Purpose Input / Output ,是stm32用于控制输入和输出信号的通用接口。我们用的MCU都有这玩意,比如STM32F103C8T6上有 GPIOA,GPIOB,GPIOC,这些ABC等,把GPIO分成了不同的组,每组端口为0~15,一般不同的芯片,分组也不一样。
这里我们主要学习GPIO的输入,输出,还有有些时候的引脚复用,因而对不同芯片的引脚排布不做过多的讨论。我们将通过几个例程来学习IO口的输入,输出,最后做出一个超级简单的小项目。
在介绍GPIO的输入输出之前,我想我有必要去再介绍一下GPIO的8种工作模式。这八种工作模式分为输入和输出,其中输入的模式有4种,分别是:上拉输入,下拉输入,浮空输入,模拟输入。对应的,我们同样有4种输出模式,分别叫: 推挽输出,开漏输出,和复用推挽输出和复用开漏输出。其中具体的结构,我在我的另一篇博客: stm32——详解GPIO的8种模式,不会你打我_学习stm32的gpio口控制-优快云博客
中写的很详细,在这里不在过多描述,我这里只告诉你这玩意在标准库里的英文是什么,怎么在简单的项目中去玩,然后一般我们怎么去用,更深的理解需要你在日后的工作和学习中去积累。
其实说句实话,使用一个GPIO的模式,其实就是配置这条路上的各种寄存器,按道理来说配置寄存器应该是很麻烦的,你要翻着手册一页一页去看,一位一位的去写寄存器。但是我们用的是库函数啊,这玩意已经把配置每个寄存器的过程写好了,我们这里要做的不是去纠结为什么要这样配置,我们要学会的是如何运用这些函数。至于底层的东西,也需要你以后去理解。
下面我们开始介绍GPIO相关的函数。
首先,有关GPIO的文件,在stm32的标准库里,在“stm32f10x_gpio.c”和“stm32f10x_gpio.h”里。