STM32学习笔记【4】GPIO入门

GPIO入门

1.GPIO简介

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

STM32F103芯片的引脚图如下:
STM32学习笔记【4】GPIO入门_第1张图片

1.GPIO和引脚有什么区别?

GPIO为通用输出输出口,引脚图上PAx到PEx对应的针脚为GPIO口,GPIO口往往除了基本的输入输出以外还有其他的复用功能。

GPIO口是引脚的一种,主要功能是用作输入/输出,还有附带的一些复用功能。除了GPIO以外芯片上还有电源、晶振等等其他的引脚。

2.如何查找每一个GPIO的功能说明?

在《STM32官方数据手册》——3.引脚定义一节中,可以找到对应的引脚对应图。以F103ZET6为例,该型号是BGA100的脚位,对应的定义和功能可以按图找到:STM32学习笔记【4】GPIO入门_第2张图片

当我们想找到某一功能对应的管脚时,这里以USART1的发送与接收为例。我们只需要查表,找到对应的功能定义:
STM32学习笔记【4】GPIO入门_第3张图片
在这里插入图片描述
可知PA9与PA10的主功能对应的就是USART1的发送与接收。而PB6与PB7的重定义功能也可以用于USART1的发送与接收。

3.STM32F10X系列引脚的分类

STM32学习笔记【4】GPIO入门_第4张图片

2.GPIO功能框图

1.基本功能框图分析

STM32学习笔记【4】GPIO入门_第5张图片

1.I/O引脚:是处理器暴露在外的引脚,图中其他部分都被隐藏在芯片中。引脚一般外界3.3V的元器件,拥有保护电路,可以一定程度上防止过高电压把芯片损坏。若需要连接电机,则需要外接驱动电路模块。
2.推挽、开漏或者关闭:在端口低寄存器(CRL)或者端口高寄存器(CRH),可以通过配置MODE和CNF分别设计端口模式和端口配置,以设置究竟是否输出,以及具体怎么输出。
3.输出数据寄存器(ODR):通过写入位设置\清除寄存器(BSRR),来改变输出数据寄存器(ODR)的状态。BSRR中,BS(Bit Set)用于设置端口的位;BR(Bit Reset)用于清除端口的位。
注意这里还有端口位清除寄存器(BRR),不过只能进行BR(Bit Reset),即端口位清除操作。
也可以直接对ODR寄存器进行赋值,相应的结果会通过输出控制单元对外输出(16个位为0或1,输出一个16位的数字)。
4.复用功能输出:可以将片上的外设(ADC、CAN等),通过USART的方式输出到外部引脚。
5.输入数据寄存器(IDR):若对应位为0则表示输入信号为低电平,若对应位为1则表示输入信号为高电平。
当ODR在输出的时候,我们可以在IDR中读取到对应的位。配置为输出模式时,我们可以用IDR进行监控。
具体是上拉输入还是下拉输入,实际上是在写入位设置\清除寄存器(BSRR)中配置的。以后会详细说明。
6.复用功能输入:外部输入信号经过TTL肖特基触发器(施密特触发器),如果判断为数字信号,则进入外部数据寄存器(CRC_DR)。
7.模拟输入:外部输入信号经过TTL肖特基触发器(施密特触发器),如果判断为模拟信号,则直接进行模拟输入。

2.推挽输出

STM32学习笔记【4】GPIO入门_第6张图片
由图可知,
若INT端为1,则OUT端为VDD输出(3.3V);
若INT端为0,则OUT端为0V。

INT端为1的时候,推出电流;INT端为0的时候,向内吸收电流。即是推、挽的含义。

3.开漏输出

STM32学习笔记【4】GPIO入门_第7张图片
由图可知,
开漏输出只能默认输出低电平,无法默认输出高电平。
若INT端为1,则OUT端为VDD输出,
若INT端为0,则OUT端为0V,
拥有线与的特性,常用于I2C和SMBUS总线。

你可能感兴趣的:(STM32,STM32F103)