声明:本人是刚学习stm32的菜鸟,现在大一下学期在读,专业电子信息工程。这篇文章仅作为学习心得发布,以及考虑到新人同学学习中可能和我遇到一样的问题,在这篇文章中,把我原先不懂的点搞清楚作为发布目的。本人没有学习过模电数电,有什么错误大家一定要提出,本人必定虚心学习改正。这篇文章的发布是基于学习正点原子官方、野火、中文手册及网络搜索所获得的学习心得,侵权必删。文章的文字皆为自己著写。
GPIO工作方式:
GPIO(通用输入输出端口):可控制GPIO引脚电平变化,达到目的。
输入结构:输入浮空、输入上拉、输入下拉、模拟输入
输出结构:开漏输出、开漏复用功能、推挽式输出、推挽式复用功能
图二的端口配置表,CNF代表高两位,MODE代表低两位;首先,MODE1、MODE0是用来配置IO输入、输出状态;CNF1和CNF2是根据IO口输入和输出状态的不同,配置不同的IO功能。配置IO时,先通过MODE1和MODE0配置IO为输入还是输出,再通过CNF1和CNF0来配置IO是什么功能的输入或输出。
IO口是通过ODR数据寄存器来区分设置成上拉输入还是下拉输入的。若ODR置1,IO设置为上拉输入;若ODR置0,IO口被设置为下拉输入。
该图是野火视频里面的,根据自己的学习心得和网上资料总结,把了解到的东西分享给大家:
上拉电阻:保证在无信号输入时输入端电平为高电平;
下拉电阻:保证在无信号输入时输入端电平为低电平;
端口复用功能:不仅可作为通用IO口,还可复用一些外设引脚。作用:最大限度利用端口资源。
端口重映射功能:把某些功能引脚映射到其他引脚。作用:方便布线。
TTL肖特基触发器:连续的信号通过这个触发器会变成离散的信号;当触发器进入一个正弦波时会转变为矩形波,即变成一个确定的电平,是1或0.
上面两幅图是作者方便学习所画,有点丑请见谅!
GPIO常用的两种输出方式:
①推挽式输出电路:
原理:当IN输入端置高电平时,上面的NPN型三极管导通,下面的PNP三极管闭合,因此VDD端会被推到OUT口;当IN输入端置低电平时,上面的NPN型三极管会闭合,下面的PNP三极管导通,因此OUT口会被拉到接地。
简单来说,就是NPN有电导通,PNP接地导通。
②开漏输出电路:
原理:开漏输出模式会接一个上拉电阻,上拉电阻是什么,上面有提到。当IN口置高电平时,PNP三级管会闭合,此时因为上拉电阻持续为高电平,所以导致OUT口输出高电平;当IN口置低电平时,PNP三极管导通,OUT口接地,置为低电平,因此能有效控制OUT口为何种电平。
最后,对这两种输出模式作个简单的比较:
推挽输出模式:驱动能力强,适合电流型驱动。
开漏输出模式:可输出强高低电平,对连接数字器件作用较大。必须外接上拉电阻,否则驱动能力不足。能实现线与功能,I2C便是使用这种模式。
什么是线与功能,本人知识浅薄,只能把自身了解到的说出来,线与功能就是例如上图的OUT口,若OUT口后面连接了一系列的元器件、外设时,当OUT口置高电平,则他后面的元器件都接受为高电平;反之亦然。
本次要分享的学习心得大概完结,该文章为作者第一次书写,有什么不正确的地方请多多指出,必定加以修改,不断学习提升自己。祝看到文章的各位,学习顺利,期末不挂,比赛获奖,考研成功!