关于STM32F103的GPIO口的介绍 (笔记篇)
广西●河池学院

广西高校重点实验室培训基地

系统控制与信息处理重点实验室

本篇博客来自河池学院:
智控无人机小组

写作时间:2020.09.29

关于STM32F103的GPIO口的介绍
(听课笔记篇)

这是IO口的基本形式
关于STM32F103的GPIO口的介绍 (笔记篇)

以下就是四种输入方式的介绍:

(1)
浮空输入模式
关于STM32F103的GPIO口的介绍 (笔记篇)

浮空输入模式下,上拉下拉开关是不会打开的,电平从I/O口输入,电平传输到TTL(它的状态是打开的)直接到输入数据寄存器,CPU进行读取读取TTL中的数据。

(2)
上拉输入模式
关于STM32F103的GPIO口的介绍 (笔记篇)

这种输入方式上拉电阻会被接通,这是与浮空输入模式唯一的不同点,其它类似。上拉电一般大小为30K~50K左右

(3)下拉输入模式
关于STM32F103的GPIO口的介绍 (笔记篇)

这种输出方式和浮空输入模式唯一的不同就是下拉电阻打开了。

(4)模拟模式
关于STM32F103的GPIO口的介绍 (笔记篇)

这种模式下,上拉电阻和下拉电阻是无效的,外部向内部输入的是模拟量。(而并非是单纯的0和1,是以电压的形式而不是以电平的形式。电压是有大小的。电平没有大小(不是高就是低及0或1),输入的模拟量一般是0V~3.3V,此时TTL截至,所以直接将模拟量输出给CPU进行处理。

以下就是四种输出方式的介绍:

(1)开漏输出模式
关于STM32F103的GPIO口的介绍 (笔记篇)

在此时的状态下,如果写入的数据是1,该数据会通过位寄存器
后到达输出寄存器 ODR,后链接到输出控制电路。此时输出控制电路输出的是1,N_MOS管处于闭合状态,此时I/O口的电平不会由输出控制电路输出的输出来决定(因为N_MOS管处于截至状态)。此时I/O口的电平由外部的上拉电阻和下拉电阻来决定,也就是说此时的I/O口处于类似浮空的状态。此时的电平可以根据输入数据寄存器让CPU来读取。(注意:因为此时的I/O口电平不是由输出控制电路决定的,是由外部电路的上拉和下拉决定的。所以CPU读到的不一定是CPU写入的数据)

如果此时写入的数据是0,输出控制电路输出的也是0,N_MOS管处于开启状态,这时I/O口的电平会被N_MOS管拉到VSS,所以此时的I/O口也是低电平,所以此时此刻CPU也可以读到该低电平。(注意:这两个过程TTL都是打开的状态)

(2)开漏复用输出模式
关于STM32F103的GPIO口的介绍 (笔记篇)

这种方式与开漏输出模式的唯一不同点就是信号的来源方式不同。开漏输出模式是通过CPU来寄存器来提供信号的(及0或1)。而开漏复用输出模式是通过复用功能来提供信号的,实质就是来源于外部设备。

(3)推挽输出方式
关于STM32F103的GPIO口的介绍 (笔记篇)

控制输出的寄存器和开漏输出模式是一样的,方式也一样。

如果控制电路输出为1,P_MOS管就会处于导通状态,N_MOS管处于截至状态,此时1就会被传输到I/O口,I/O口就会输出1。同样的,控制电路输出为0,P_MOS管就会处于截至状态,N_MOS管处于导通状态,此时I/O口输出0。CPU的读取数据与开漏输出模式一样。

(4)推挽复用输出方式
关于STM32F103的GPIO口的介绍 (笔记篇)

此状态和推挽输出差不多的,就是输入信号的方式不同(看图类比开漏输出模式与开漏复用输出模式的区别可的知)。

以上四种输入方式,四种输出方式介绍完毕。

相关文章: