Section 2_STM32 GPIO

@[TOC](Section 2_STM32 GPIO)

## 1.GPIO是什么

GPIO( general purpose intput output )是通用输入输出端口的简称,可以通过软件来控制其输入和输出。STM32芯片的GPIO引脚与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能。

## 2.STM32引脚分类

电源管脚

晶振管脚

复位管脚

下载管脚

BOOT管脚

GPIO管脚

![在这里插入图片描述](https://img-blog.csdnimg.cn/20201006220201202.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzMjE5MTY0,size_16,color_FFFFFF,t_70#pic_center)

## 3.如何查找GPIO功能

通过STM32F407芯片数据手册即可查找

![在这里插入图片描述](https://img-blog.csdnimg.cn/20201006220333443.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzMjE5MTY0,size_16,color_FFFFFF,t_70#pic_center)

![在这里插入图片描述](https://img-blog.csdnimg.cn/20201006220344479.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzMjE5MTY0,size_16,color_FFFFFF,t_70#pic_center)

## 4.GPIO基本结构

![在这里插入图片描述](https://img-blog.csdnimg.cn/20201006220530846.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzMjE5MTY0,size_16,color_FFFFFF,t_70#pic_center)

## 5.GPIO工作模式

##### 输入模式

###### 输入浮空

![在这里插入图片描述](https://img-blog.csdnimg.cn/20201006220603464.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzMjE5MTY0,size_16,color_FFFFFF,t_70#pic_center)

###### 输入上拉

![在这里插入图片描述](https://img-blog.csdnimg.cn/20201006220624531.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzMjE5MTY0,size_16,color_FFFFFF,t_70#pic_center)

###### 输入下拉

![在这里插入图片描述](https://img-blog.csdnimg.cn/20201006221048123.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzMjE5MTY0,size_16,color_FFFFFF,t_70#pic_center)

###### 模拟输入

![在这里插入图片描述](https://img-blog.csdnimg.cn/20201006220704592.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzMjE5MTY0,size_16,color_FFFFFF,t_70#pic_center)

##### 输出模式

###### 开漏输出

![在这里插入图片描述](https://img-blog.csdnimg.cn/20201006220743993.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzMjE5MTY0,size_16,color_FFFFFF,t_70#pic_center)

###### 开漏复用功能

![在这里插入图片描述](https://img-blog.csdnimg.cn/2020100622075512.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzMjE5MTY0,size_16,color_FFFFFF,t_70#pic_center)

###### 推挽式输出

![在这里插入图片描述](https://img-blog.csdnimg.cn/20201006220808583.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzMjE5MTY0,size_16,color_FFFFFF,t_70#pic_center)

###### 推挽式复用功能

![在这里插入图片描述](https://img-blog.csdnimg.cn/20201006220843389.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzMjE5MTY0,size_16,color_FFFFFF,t_70#pic_center)

##### 总结

(1)推挽输出

a.可以输出高低电平,用于连接数字器件,高电平由VDD决定,低电平由VSS决定。

b.推挽结构指两个三极管受两路互补的信号控制,总是在一个导通的时候另外一个截止,优点开关效率效率高,电流大,驱动能力强。

c.输出高电平时,电流输出到负载,叫灌电流,可以理解成推,输出低电平时,负载电流流向芯片,叫拉电流,即挽。

(2)开漏输出

a.只能输出低电平,不能输出高电平。如果要输出高电平,则需要外接上拉。

b.开漏输出具有“线与”功能,一个为低,全部为低,多用于I2C和SMBUS总线。

## 6.GPIO初始化步骤

具体寄存器参考STM32F4中文参考手册

(1)确定GPIO是输入、通用输出、复用功能还是模拟输入(模式寄存器:MODER)

(2)如果输出还要确定是推挽输出还是开漏输出(输出类型寄存器 :OTYPER)

(3)配置输出的速度(输出速度寄存器:OSPEEDR)

(4)输出的时候内部的上/下拉电阻要不要开启(上拉/下拉寄存器:PUPDR)

(5)具体要输出的内容(置位复位寄存器:BSRR和数据输出寄存器:ODR)

你可能感兴趣的:(Section 2_STM32 GPIO)