历史上的今天
今天是:2024年09月09日(星期一)
2019年09月09日 | STM32F4 学习 day4 正点原子 第12讲 STM32 GPIO口工作原理
2019-09-09 来源:eefocus

以上为GPIO的讲解顺序
在 开发指南第六章有简要的介绍 GPIO口 官方的参考
STM32F4中文参考手册
STM32 F407 的芯片资料
STM32f407 有7组 IO口


1.输入浮空
如果一个IO口 被配制成了浮空输入模式,那么它的 输出驱动器这部分的电路是不工作的。电平从IO口输入后先经过可以配置的上拉下拉 ,然后经过 TTL施密特触发器就会被打开,那么就可以通过输入数据寄存器读取IO口的电平。

2 输入上拉
如果被配置为输入上拉后,如上图所示的上拉电阻会被接到Vdd,输入的电平会被拉倒VDD, 之后经过TTL触发器后到输入数据寄存器,之后被CPU读取

3输入下拉
输入电平被拉低

4 模拟输入 输入的是模拟电压,这时不经过施密特触发器

接下来看一下输出模式:(这个图是F1的,F4与F1的区别在于F4的上下拉电阻是在外面)
第一步:1. 通过CPU写相关的寄存器,比如 位设置和清除寄存器,(操作位设置、清除寄存器也是间接的操作输出数据寄存器)
2 或者直接操作输出数据寄存器
假如通过输出数据寄存器输出一个 1 ,它通过输出控制电路, 那么 N-MOS就会处于关闭状态,那么它的输出电平就不会受
输出驱动器的影响,而是受外部的上下拉影响(也就是上图绿色箭头所指的开/关,这部分电路)。 IO口的输出电平可以由CPU通过输入数据寄存器读取。但是 注意:我们输出1读回来的不一定是 1,它的状态受上下拉电阻的影响。
如果我们输出是 0,那么 N-MOS管就打开了那么 MOS就会将输出电平拉低,输出电平就会为0

开漏复用输出: 它与 开漏输出模式差不多。开漏输出是通过 CPU写寄存器,而复用开漏 是通过 外设模块来控制输出。其他与开漏输出一样。

接下来还有第3种输出模式,推挽输出 它与开漏输出很相似,不过注意上图的黄色部分 这里还包含了一个 P-MOS 管。
在开漏输出的时候,例如:我们通过输出数据寄存器给输出 控制电路写 1,那么 P-MOS管他就会被导通 N-MOS管就会被截止。那么就会输出 1, IO口 输出的也是 1,这样就达到了输出为1 的 效果。 这时,我们通过输入电路去读取 此时IO口的 输出电平,
如果说 推挽输出设置为0,这时 P-MOS管是截止, N-MOS管导通,那么电平就会被拉为 低。这时就会 直接输出一个 0.这个时候我们去读取 输入数据寄存器的话,读到的也是0.

推挽复用输出模式:与推挽输出模式是差不多的,他们唯一的 区别就是 复用功能输出来自 片上外设模块。

这里 开漏输出能够输出强低电平, 因为在开漏模式下 P-MOS 管截止 N-MOS管导通,所以当输出控制电路输出为 1时,要看 IO口的 上下拉设置,如果设置为上拉就是 1,如果设置为下拉就是0

上图是STM32F4相关的配置寄存器,






这是个只读寄存器,比如说我们要读 PA0,就看他的 IDR0 是1的话说明 是高电平, 0
的话说明是低电平。

史海拾趣
|
这个程序的作用是 ;把V/F转换得到的脉冲送到单片机的T0口计数, ;计数的结果放到R2,R3中 ;求出计数值的万,千,百,十,个位,然后分别放在74H,73H,72H,71H,70H中 ;最后把结果通过4094串行移位寄存器显示出来 ORG 0000H LJM ...… 查看全部问答> |
|
功能:把键盘输入的数据存入显示缓存区 displaybuf ,然后显示缓存区的内容, 调试的结果不对,显示很乱~ 不知道什么原因? #include #define uchar unsigned char #define uint unsigned int sbit ledk=P2^5; //锁存口 sbit d ...… 查看全部问答> |
|
WinCE系统下如何识别 以太网网口的状态---即有没有与其他电脑相连接 WinCE系统下如何识别 U盘的状态----是否有U盘插到usb host口上 WinCE系统下如何识别 USB电缆的状态----是否有USB电缆连接到USB device上… 查看全部问答> |
|
我在www.pudn.com下载的AT91RM9200(DKEK)VxWorksBSP.RAR,但下载下来才知道只是一份开发者指南,不是源码。我现在准备上AT91RM9200,也准备买一块评估板,但都没有VxWorks的BSP,大家能送我一份吗?我们可以交换源码的。 谢谢! … 查看全部问答> |
|
1 单点 接地,为许多在一起的电路提供公共电位参考点,由于只有一点接地,所以构成不了地回路的问题,因此就几乎不存在干扰的问 题,在通信速率低于1000KHZ时,选用一点接地效果比较好。 2 ...… 查看全部问答> |




