赞
踩
GPIO 的电路是一堆电路,所以需要配置寄存器,来打开对应的开关,来实现不同的功能。
输入部分:
输入的信号,不会反向的回流到输出电路,因为 N-MOS、P-MOS 不会被反向导通。(输入电路不会影响到输出电路)
输入电路内部有两个电阻:上拉电阻、下拉电阻。
模拟输入:不经过触发器,直接接到片上外设 ADC ,从而进行模数转换。
触发器:存储高低电平的 bit 位。(代表数字输入)
输出部分:
N-MOS 管:高电平 导通
P-MOS 管: 低电平 导通
当输出寄存器为高电平的时候,经过一个非门,传到输出控制的时候,就变成了一个低电平,从而将 P-MOS 导通。
电位的提供不是靠数据寄存器,而是通过打开对应的开关,从而利用对应的电源实现。(VDD、VSS)
输出控制有两个控制端
不同模式对应的电路流向:
浮空输入:
输入上拉、下拉:
模拟输入:
开漏输出:此时的 I/O 端口,既可以做输入模式、也可以做输出模式。
推挽输出:
STM32基本上每个引脚都有8种配置模式:
1)浮空输入
2)带弱上拉输入
3)带弱下拉输入
4)模拟输入
5)推挽输出
6)开漏输出
7)复用推挽输出
8)复用开漏输出
STM32Fxx内部集成了很多的外设控制器,比如USART、SPI、bxCAN等等,这些外设控制器,也需要通过引脚与外设连接。
复用功能是相对于单片机的引脚而言的。所谓“复用功能”,是指单片机的引脚既可以做普通GPIO使用,也可以作为内部外设控制器的引脚来使用。
比如我们来看看STM32F103xx单片机的PA5引脚,如下图:
!!!:通过外设时钟是否是能,以及当前 GPIO 处于什么模式。
PA5 的功能:
PA5支持的三种外设(SPI1、DAC、ADC)在同一时刻只能选择一种。
选择的方法是:开启相应外设的时钟,并使其它外设的时钟保持关闭状态。
如果PA5被配置为复用功能,但是没有开启它支持的任何外设的时钟,它的输出是不确定的。
复用推挽输出和(普通)推挽输出在输出的时候均使用两个MOS管(P-MOS和-MOS),其输出电路是相同的。
!!!!区别在于控制输出的信号来源:
下面这张图,是普通GPIO输出的引脚配置图,可以看到其输出信号来自输出 数据寄存器(Output data register):
下面这张图,是选择复用功能后的引脚配置图,可以看到其输出信号来自 芯片内置的外设控制器:
注意:虽然复用模式的控制信号来自内置外设控制器,但是单片机(CPU)依然可以读取相应的数据。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。