历史上的今天
返回首页

历史上的今天

今天是:2024年09月06日(星期五)

正在发生

2018年09月06日 | STM32---对GPIO电路结构的理解(输出电路)

2018-09-06 来源:eefocus

前一段时间学习了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”之前的电路,通用开漏输出的输出取决于我们写输出寄存器决定,而复用开漏输出,由外部复用功能的外设决定,其余部分的分析方式相同。


推荐阅读

史海拾趣

Elpress AB公司的发展小趣事

在追求经济效益的同时,Elpress AB也注重可持续发展和环境保护。公司积极采用环保材料和绿色生产工艺,降低生产过程中的能耗和排放。同时,Elpress AB还积极参与环保公益活动,推动电子行业的绿色发展。这些举措不仅体现了Elpress AB的社会责任感,也为公司的长期发展奠定了坚实的基础。

Holmes Co Inc公司的发展小趣事

面对突如其来的新冠疫情挑战,Holmes Electronics迅速调整策略,加速数字化转型。他们利用云计算、大数据和人工智能等先进技术,构建了高效的远程办公和智能制造体系。通过数字化转型,公司不仅有效保障了员工的安全健康和生产效率,还进一步提升了产品质量和客户满意度。此外,Holmes Electronics还积极开发防疫相关的电子产品,如智能体温检测设备和消毒机器人等,为抗击疫情贡献了自己的力量。

Bipolar Integrated Technology Inc公司的发展小趣事

在市场竞争日益激烈的情况下,BIT意识到只有不断创新才能在行业中立足。于是,他们加大了在研发方面的投入,不断推出具有创新性的产品。其中,一款高性能、低功耗的双极型处理器成为了市场上的热销产品,引领了行业潮流。

AD Semiconductor公司的发展小趣事

随着技术的成熟,BIT开始积极寻找市场机会。他们与多家电子设备制造商建立了合作关系,将自家的集成电路应用于各种电子产品中。通过与这些合作伙伴的紧密合作,BIT的产品逐渐在市场上占据了一席之地,公司规模也逐渐扩大。

AW Industries Inc公司的发展小趣事

随着市场竞争的加剧,AW Industries Inc意识到只有不断创新才能在行业中立足。公司加大了对研发的投入,并成功研发出了一款具有革命性的新型电子元件。这款元件不仅性能卓越,而且成本更低,迅速在市场上占据了主导地位。这一创新成果不仅为公司带来了丰厚的利润,也奠定了其在电子行业的领先地位。

APEM公司的发展小趣事

为了进一步丰富产品线,APEM在1984年开设了新厂,专业生产开关面板。这一举措不仅扩充了公司的产品种类,也满足了客户对多样化产品的需求。此后,APEM不断推出新产品,逐步形成了完善的开关和控制面板产品线。

问答坊 | AI 解惑

[转帖]招聘嵌入式系统程序员 C语言测试

C语言测试是招聘嵌入式系统程序员过程中必须而且有效的方法。这些年,我既参加也组织了许多这种测试,在这过程中我意识到这些测试能为带面试者和被面试者提供许多有用信息,此外,撇开面试的压力不谈,这种测试也是相当有趣的。 从被面试者的角度来 ...…

查看全部问答>

飞思卡尔HCS08和coldfire v1 KBI教程

这是我们写的一个教程,适用于飞思卡尔的HCS08系列单片机和coldfire v1系列的MCU…

查看全部问答>

VxWorks应用层通信程序

  有在VxWorks应用层通信的软件没,比如传送一个文件或一串消息? 请各位高手指点?…

查看全部问答>

你第一linux操作系统是什么,你现在用什么linux操作系统

  调查,我的第一个linux操作系统是ubuntu,我从09年暑假开始接触linux,装的就是ubuntu8.04,然后虽然接触过fedora,redhat,debian,suse等,但一直觉得ubuntu爽快,哈哈,现在一直在用ubuntu,甚至开发FPGA,大家呢,欢迎大家讨论…

查看全部问答>

DIY数控电源进度帖

安装了controlSUIT,开始回顾TI的例程,用官方的.c文件,建了工程,编译通过了。 Piccolo的资料相对没有2812那么多。进度不是很快,有压力啊。…

查看全部问答>

ucosII 移植到LM3S9B92上还真是不简单

一直想把ucosII V2.92移植到LM3S9B92上去,但前前后后搞了将近三个星期了,还是没有一点结果,指针总是越界,第一个任务还没启动起来就会进入死循环,真是郁闷啊。…

查看全部问答>

DAC功放电路

用DAC做了个因为播放器,又用LM386做了个功放,想问一下在将dac输出接到LM386的输入端前是不是要加入滤波电路呢?不知道为什么,噪音好大…

查看全部问答>

为什么EPM570会被程序弄死?

写了个串口调试程序用来测试板子各个工作点状态的,但是居然第一次烧录几次后CPLD就不能再烧录了干脆坏掉了,只能换芯片,要知道100脚的epm570更换起来多费时间。是不是程序导致芯片内部短路了?…

查看全部问答>

【NUCLEO-F410RB】2.给nucleo移植上ucos-ii,用信号量实现led闪烁

本帖最后由 caizhiwei 于 2015-12-6 17:17 编辑      虽然管理员寄过来的板子不能用,但是还得完成任务。所以抽出时间把ucos-ii移植上另外一块Nucleo板子上,奉上工程源码,供大家享用~~ int main(void) {     ...…

查看全部问答>

LED恒流驱动电源最新

我有个论文要写,关于LED恒流驱动的,市面是否有新颖或新款的电路。有创新点的。评职称用很愁啊。 …

查看全部问答>