原子哥:顾名思义,浮空就是 浮在空中.也就是没有什么把他拉下来,也没有什么把它拉上去.
浮空最大的特点就是电压的不确定性,它可能是0V,也可能是VCC,还可能是介于两者之间的某个值(最有可能). 结论错误2021.1.5
浮空一般用来做ADC输入用,这样可以减少上下拉电阻对结果的影响.2021.1.5
那在ADC采集的时候浮空和模拟输入有什么区别呢?我感觉浮空就是当这个管脚在这一时间不需要使用又不能影响外部时使用,而ADC采集时用模拟。对吗原子哥大?
在AD采集的时候,这两个模式倒是都可以。
但是在单纯作为输入的时候,浮空模式是有用的,在外部有上拉/下拉的条件下,你可以设置为浮空输入。
或者IO有冲突的时候(参见mini板的PWM输出实验),你也可以设置为浮空输入,从而完全不干扰其他IO。
浮空输入不是这个意思,浮空输入时,施密特触发器起作用(上拉下拉的时候施密特触发器也起作用复用功能也启用,也就是说浮空输入和上下拉输入的信号采集过程电路是一样的,差别仅仅在于默认值,上下拉输入默认输入值确定,浮空模式默认值不确定),读取输入结果时,只有0或1两种,只是默认值不能确定。可能是0也可能是1有外部信号确定,但是采集的信号是数字量0和1.模拟输入时才是从0到VCC之间变化,这时适合接ADC输入。
那要是读管脚上的信息时,应该设置为上拉输入还是下拉输入呢?
一般选择上拉.
我对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门输出时候,上拉是必须的。
---
个人看法