STM32---对GPIO电路结构的理解(输出电路)

前一段时间学习了STM32,先是用库函数学了一个星期。发现学完之后,一些基本要用的东西能配出来,但是过程却是十分的懵逼。于是决定暂时放弃库函数,用51的思维学习32,从寄存器开始,发现效果不错。一两天学一两个模块,个把星期下来对一些基本模块的常用寄存器也理解的不少。决定慢慢的回归库函数之前写下自己对STM32一些模块的理解,共勉之。
首先附上GPIO口的内部电路图:
这里写图片描述

其中蓝色方框部分代表的是GPIO的输入电路,红色方框的部分,代表GPIO的输出电路。
可见:
从写入端看输出部分的四种模式分别是:通用推挽输出、通用开漏输出、复用推挽输出、复用开漏输出。
接下来分析输出电路的四种输出形式(数据从“1”或“2”端到 I/O 端口。注意:此时输入电路会被屏蔽【通过寄存器配置】):
1、通用推挽式输出:
通过“写操作”到“位设置/清除寄存器”从而改变“输出数据寄存器”,或者直接通过“读/写操作”改变“输出数据寄存器”,后经选择器“4”选择输出的数据源(来自“1”、“2”还是“3”),最后通过“5”输出的电平 1 或 0 ,来控制P-MOS和N-MOS的导通或截止。
比如, 当5输出 1 时,P-MOS导通,N-MOS截止,则输出到 I/O 端口的电压为VDD(高);当5输出上端为 0 ,P-MOS截止,N-MOS导通,则输出到 I/O 端口的电压被拉低至为VSS(低)。
2、通用开漏输出(P-MOS管处于关闭状态):
跟据“5”的输出 1 、 0 来控制MOS管。
当“5”输出为 1 时,N-MOS处于关闭状态,则此时 I/O 电平不由5输出的电平决定,而由 I/O 端口的外部电路决定(例如外部上拉或下拉);
当“5”输出为 0 是,N-MOS处于导通状态,则 I/O 口的输出电平被拉至VSS(低)。
3、复用推挽输出:
与通用推挽输出的不同点是控制电路“5”之前的电路,通用推挽输出的输出取决于我们写输出寄存器决定,而复用开漏输出,由外部复用功能的外设决定,其余部分的分析方式相同。
4、复用开漏输出:
与通用开漏输出的不同点是控制电路“5”之前的电路,通用开漏输出的输出取决于我们写输出寄存器决定,而复用开漏输出,由外部复用功能的外设决定,其余部分的分析方式相同。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值