大家来说说自己对GPIO 浮空输入的理解

lichongyang
lichongyang
lichongyang
96
文章
0
评论
2020年1月17日15:29:13来源:CSDN 评论 303 次浏览

原子哥:顾名思义,浮空就是 浮在空中.也就是没有什么把他拉下来,也没有什么把它拉上去. 
浮空最大的特点就是电压的不确定性,它可能是0V,也可能是VCC,还可能是介于两者之间的某个值(最有可能). 
浮空一般用来做ADC输入用,这样可以减少上下拉电阻对结果的影响.

那在ADC采集的时候浮空和模拟输入有什么区别呢?我感觉浮空就是当这个管脚在这一时间不需要使用又不能影响外部时使用,而ADC采集时用模拟。对吗原子哥大?

在AD采集的时候,这两个模式倒是都可以。 
但是在单纯作为输入的时候,浮空模式是有用的,在外部有上拉/下拉的条件下,你可以设置为浮空输入。 
或者IO有冲突的时候(参见mini板的PWM输出实验),你也可以设置为浮空输入,从而完全不干扰其他IO。

浮空输入不是这个意思,浮空输入时,施密特触发器起作用,读取输入结果时,只有0或1两种,模拟输入时才是从0到VCC之间变化,这时适合接ADC输入。

大家来说说自己对GPIO 浮空输入的理解
大家来说说自己对GPIO 浮空输入的理解

那要是读管脚上的信息时,应该设置为上拉输入还是下拉输入呢?

一般选择上拉.

我对STM32 GPIO输入/输出模式进行了一下总结,请大家指正哪里有问题?
1、输入浮空  输入引脚即不接高电平,也不接低电平,用于标准的通讯协议,比如IIC、USART的等,如果想用做按键检测等功能,需外部使用上拉或下拉电阻;
2. 输入上拉  相当于输入浮空用来按键检测外加上拉电阻,只不过这个是内部上拉,省去了外部电路;
3. 输入下拉  同上; 三者共同点就是都要通过 TTL肖特基触发器 转换成0/1信号。既非高即低。
4. 模拟输入  信号进入后不经过上拉电阻或者下拉电阻,关闭施密特触发器,经由另一线路把电压信号传送到片上外设模块。比如传送给ADC模块,由ADC采集电压信号。所以可以理解为模拟输入的信号是未经处理的信号,是原汁原味的信号。

模拟输入和推挽模式还算对,

其他基本都有误。
开漏模式:输出 0 时,N-MOS 导通,P-MOS 不被激活,输出0。
                  输出 1 时,N-MOS 高阻, P-MOS 不被激活,输出1(需要外部上拉电路);此模式可以把端口作为双向IO使用。
推挽模式:输出 0 时,N-MOS 导通,P-MOS 高阻,输出0。
                  输出 1 时,N-MOS 高阻,P-MOS 导通,输出1(不需要外部上拉电路)。

stm32为什么要上拉或下拉输入啊?
直接输入高低电平不行吗?这个输入的高低电平就直接由外设的电平决定啊?为什么还要用内部的上拉下拉电阻呢?
是因为 外设给出的高低电平信号可能会太弱吗?  
比如我们的按键实验吧,如果没有上下拉输入,你选择浮空输入? 
浮空输入信号电平是不确定的,那么按键你就必须外部加上下拉电阻.那么电阻要不要钱? 
那想省钱怎么办? 
答案不用我说了吧.  


呃 这个解释 还是比较牛叉的。但我的意思是:当外围设备能自己输出高低电平时,那么stm32与它相接的引脚就没有必要配制成上下拉输入了吧?你举例用的是按键,按键自己没法给出高低电平,所以必须得接上下拉电阻。

外设能输出的时候,可以不上下拉。

1 在考虑输出时候,高级点的芯片,可以设置好,为了固定’初值‘。 即明确reset阶段的io电平。 在一些敏感的控制里面, 初值是值得重视的,不然会带来一些’意外‘ 

2 在重视待机功耗的系统里面,必须改变pull up和pull down,使得整体功耗降低。 

3 就是输入时候的’ 初值‘ 

4 看io的设计, 当oc门输出时候,上拉是必须的。 

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信小程序
  • 我的微信小程序扫一扫
  • weinxin
lichongyang
  • 版权声明 本文源自 CSDN 整理 发表于 2020年1月17日15:29:13
  • 转载请务必保留本文链接:https://www.chongyangli.com/archives/265
物联网的嵌入式编程 操作系统

物联网的嵌入式编程

嵌入式编程在使设备满足人们的需求方面具有悠久的历史。但是,它在很大程度上仍然被应用程序编程所掩盖。当应用程序程序员采用相对高级的面向对象的语言(如C ++或Java)或图形化应用程序开发环境(如MAT...
FreeRTOS 系统时钟节拍和时间管理 操作系统

FreeRTOS 系统时钟节拍和时间管理

FreeRTOS 的时钟节拍 任何操作系统都需要提供一个时钟节拍,以供系统处理诸如延时、 超时等与时间相关的事件。时钟节拍是特定的周期性中断,这个中断可以看做是系统心跳。 中断之间的时间间隔取决于不同...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: