可配置为8种输入输出模式
- 引脚电平:0V~3.3V,部分引脚可容忍5V
- 输出模式下可控制端口输出高低电平,用以驱动LED、控制蜂鸣器、模拟通信协议输出时序等
- 输入模式下可读取端口的高低电平或电压,用于读取按键输入、外接模块电平信号输入、ADC电压采集、模拟通信协议接收数据等
GPIO基本结构
每个GPIO都有16个引脚(0~15)
内核可以通过APB2对寄存器读写,可以完成输出电平和读取电平的功能
输出寄存器写1,对应引脚就会输出高电平,写0,就输出低电平
输入寄存器读取为1,就证明对应的端口目前是高电平,读取为0,就是低电平
GPIO位结构
1.上拉和下拉输入模式:
提供一个默认的输入电平,对与一个数字的端口,不是高电平就是低电平。如果输入什么都不接,那么输入就会处于一种浮空的状态(极易被改变状态),引脚的输入电平极易收到外界干扰而改变。
上拉输入模式:默认高电平输入模式
下拉输入模式:默认低电平输入模式
2.施密特触发器:
对电压进行整形,可以有效避免因信号波动造成的输出抖动的现象;如果输入电压大于 某一阈值,输出就会升为高电平,如果输入电压小于某一阈值,输出就会瞬间将为低电平
3.推挽、开漏、关闭
- 推挽:P-MOS和N-MOS均有效。数据寄存器为1,上管导通,下管断开,输出直接接到VDD,输出高电平;数据寄存器为0,上管断开,下管导通,输出直接接到VSS,就是输出低电平。 这种模式下,高低电平均有较强的驱动能力,所以推挽输出模式也叫强推输出模式,在该模式下,STM32对IO口有绝对的控制权,高低电平都是由STM32说了算。
- 开漏:P-MOS输出无效,只有N-MOS在工作。数据寄存器位1,下管断开,这时输出相当于断开,也就是高阻模式;数据寄存器为0时下管导通,输出直接接到VSS,也即是输出低电平。 这种模式下只有低电平有驱动能力,高电平时没有驱动能力的。开漏模式可以作为通信协议的驱动方式,多机通信的情况下,该模式可以避免各个设备的相互干扰。也可输出5V电平信号
- 关闭:引脚配置为输入模式,两个MOS管均无效,也就是输出关闭,端口的电平由外部信号来控制
4.如果通过输出数据寄存器进行控制,就是普通的IO口输出,
写数据寄存器的某一位就可以操作某个端口
5.位设置/清除寄存器,可以单独输出数据寄存器的某一位,而不影响其他位
GPIO模式
- 上拉、下拉、浮空输入结构
- 模拟输入
- 开漏、推挽输出
一个 端口只能有一个输出,但可以有多个输入 - 复用开漏、推挽
高电平弱驱动,低电平强驱动(一般单片机)
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新!!
ics/618654289)
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新!!