打印
[应用相关]

stm32学习记录

[复制链接]
552|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
shashaa|  楼主 | 2016-11-29 20:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
上拉输入/下拉输入/模拟输入:这几个概念很好理解,从字面便能轻易读懂。
复用开漏输出、复用推挽输出:可以理解为GPIO口被用作第二功能时的配置情况(即并非作为通用IO口使用)
最后总结下使用情况:
在STM32中选用IO模式
(1) 浮空输入_IN_FLOATING ——浮空输入,可以做KEY识别,RX1
(2)带上拉输入_IPU——IO内部上拉电阻输入
(3)带下拉输入_IPD—— IO内部下拉电阻输入
(4) 模拟输入_AIN ——应用ADC模拟输入,或者低功耗下省电
(5)开漏输出_OUT_OD ——IO输出0接GND,IO输出1,悬空,需要外接上拉电阻,才能实现输出高电平。当输出为1时,IO口的状态由上拉电阻拉高电平,但由于是开漏输出模式,这样IO口也就可以由外部电路改变为低电平或不变。可以读IO输入电平变化,实现C51的IO双向功能
(6)推挽输出_OUT_PP ——IO输出0-接GND, IO输出1 -接VCC,读输入值是未知的
(7)复用功能的推挽输出_AF_PP ——片内外设功能(I2C的SCL,SDA)
(8)复用功能的开漏输出_AF_OD——片内外设功能(TX1,MOSI,MISO.SCK.SS)

STM32设置实例:

(1)模拟I2C使用开漏输出_OUT_OD,接上拉电阻,能够正确输出0和1;读值时先GPIO_SetBits(GPIOB, GPIO_Pin_0);拉高,然后可以读IO的值;使用GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_0);

(2)如果是无上拉电阻,IO默认是高电平;需要读取IO的值,可以使用带上拉输入_IPU和浮空输入_IN_FLOATING和开漏输出_OUT_OD;


通常有5种方式使用某个引脚功能,它们的配置方式如下:
1)作为普通GPIO输入:根据需要配置该引脚为浮空输入、带弱上拉输入或带弱下拉输入,同时不要使能该引脚对应的所有复用功能模块。
2)作为普通GPIO输出:根据需要配置该引脚为推挽输出或开漏输出,同时不要使能该引脚对应的所有复用功能模块。
3)作为普通模拟输入:配置该引脚为模拟输入模式,同时不要使能该引脚对应的所有复用功能模块。
4)作为内置外设的输入:根据需要配置该引脚为浮空输入、带弱上拉输入或带弱下拉输入,同时使能该引脚对应的某个复用功能模块。
5)作为内置外设的输出:根据需要配置该引脚为复用推挽输出或复用开漏输出,同时使能该引脚对应的所有复用功能模块。
沙发
_gege| | 2016-11-29 20:23 | 只看该作者
浮空输入是对于浮空输入,一直没找到很权威的解释。

使用特权

评论回复
板凳
feiqi1| | 2016-11-29 20:28 | 只看该作者
如果有多个复用功能模块对应同一个引脚,只能使能其中之一。。

使用特权

评论回复
地板
androidbus| | 2016-11-29 20:32 | 只看该作者
只能使能其中之一的同时,记得其它模块保持非使能状态。

使用特权

评论回复
5
litengg| | 2016-11-29 20:38 | 只看该作者
感觉带上拉输入_IPU——IO内部上拉电阻输入和带下拉输入_IPD—— IO内部下拉电阻输入用的比较多点。

使用特权

评论回复
6
qiangweii| | 2016-11-29 20:41 | 只看该作者
复用开漏输出、复用推挽输出 没怎么用过。。

使用特权

评论回复
7
xia00| | 2016-11-29 20:47 | 只看该作者
上拉输入/下拉输入/模拟输入:这几个概念大家都知道吧

使用特权

评论回复
8
hfdy01| | 2016-11-29 20:51 | 只看该作者
是的,浮空输入状态下,IO的电平状态是不确定的,完全由外部输入决定。

使用特权

评论回复
9
CallReceiver| | 2016-11-29 20:56 | 只看该作者
引脚悬空的情况下,读取端口的电平不确定吗?

使用特权

评论回复
10
天灵灵地灵灵| | 2016-11-29 22:38 | 只看该作者
如果不用的一定要给个状态或者关闭这个端口。

使用特权

评论回复
11
shashaa|  楼主 | 2017-12-2 17:26 | 只看该作者
结贴啦,,多谢多谢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

142

主题

1494

帖子

6

粉丝