设为首页 加入收藏

TOP

明解STM32—GPIO理论基础知识篇之八种工作模式(二)
2023-07-23 13:28:48 】 浏览:48
Tags:明解 STM32 GPIO
拉输入

        图8为GPIO带上拉电阻输入,需要将端口配置为独立的上拉电阻。可以看到,输入路径经过施密特触发器后,当端口配置为普通IO输入时,该输入路径进入到输入数据寄存器,因此就可以通过输入数据寄存器读取IO口的电平状态,例如将IO口连接按键,读取外部按键的电平状态;当端口配置成复用功能时,输入路径会直接连接到芯片上具体的外设中去,例如将端口配置成串口USART,那么该IO口就是串口的接收RXD管脚。

        输入上拉模式下,GPIO端口悬空无输入信号时,输入端的电平可以默认保持在高电平;而当输入信号低电平时,IO口读取的电平就是低电平;当输入信号高电平时,IO口读取的电平自然就是高电平。

?图8 GPIO带上拉输入

(6)、带下拉输入

        图9为GPIO带下拉电阻输入,需要将端口配置为独立的下拉电阻。可以看到,输入路径经过施密特触发器后,当端口配置为普通IO输入时,该输入路径进入到输入数据寄存器,因此就可以通过输入数据寄存器读取IO口的电平状态,例如将IO口连接按键,读取外部按键的电平状态;当端口配置成复用功能时,输入路径会直接连接到芯片上具体的外设中去,例如将端口配置成串口USART,那么该IO口就是串口的接收RXD管脚。

        输入下拉模式下,GPIO端口悬空无输入信号时,输入端的电平可以默认保持在低电平;而当输入信号高电平时,IO口读取的电平就是高电平;当输入信号低电平时,IO口读取的电平自然就是低电平。

?

图9 GPIO带下拉输入

(7)、浮空输入

        图10为GPIO浮空输入。输入浮空模式下,指的是该IO口既不配置接上拉电阻也不配置接下拉电阻。如果该引脚悬空的情况无信号输入时,该端口的电平是不确定的。当有电平信号进入IO时,IO电平状态是完全由外部输入决定,MCU复位上电后,默认为浮空输入模式。

?

图10 GPIO浮空输入

(8)、模拟输入

        图11为GPIO模拟输入。当 STM32需要进行 AD( 模数 ) 转换采样时,需要把引脚设置为模拟输入模式,模拟输入模式下,不需要连接上拉和下拉电阻,因为GPIO用于模拟功能时,引脚的上、下拉电阻是不起作用的。这个时候即使在配置了上拉或下拉电阻,也不会影响到模拟信号的输入。

        同时输入信号不再经过TTL施密特触发器,可将外部电压信号直接输入到内部的ADC 外设中去。因为经过施密特触发器后信号只有0、1两种状态,所以ADC外设要采集到原始的、连续变化的模拟信号,信号源输入必须在施密特触发器之前。

        需要注意到的是,由于模拟输入不接上下拉电阻,也不经过输入的TTL施密特触发器,同时不像输出功能需要经过输出控制缓冲器,因此在芯片上少连接了很多器件,当芯片有不用的管脚时,可以考虑配置成模拟输入以节省功耗。

?

图11 模拟输入


四、总结

        本篇在STM32的GPIO的基本结构的基础上,进一步对GPIO的各种工作模式进行介绍,为GPIO选择不同的模式配置就可以让GPIO在实际使用运行过程中扮演不同的角色,在下一篇将继续介绍GPIO基础知识篇之寄存器原理。


更多技术内容和书籍资料获取,入群技术交流敬请关注“明解嵌入式”

?
首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇What is UDS Service 0x10? 下一篇手把手教你基于luatos的4G(LTE Ca..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目