STM32的IO有上拉输入和下拉输入,上拉输入内部有上拉电阻,端口默认是高电平,我想问假如再来个高

STM32的IO有上拉输入和下拉输入,上拉输入内部有上拉电阻,端口默认是高电平,我想问假如再来个高电平,上拉输入怎么检测?然后下拉输入默认是低电平,那端口要是来个低电平又该怎样检测?求大神指点!说明白了必采纳!

STM32的IO有上拉输入和下拉输入,上拉输入内部有上拉电阻,端口默认是高电平,我想问假如再来个高电平,上拉输入怎么检测?然后下拉输入默认是低电平,那端口要是来个低电平又该怎样检测?求大神指点!说明白了必采纳!

首先,搞清楚一个概念,单片机能够输出或者接受的逻辑电平是有一个限度的,超过这个限度,单片机要么无能为力、要么损坏。其次,要搞清高低电平的概念,它们是相对的,有高才能显出低,反之亦然。其三,输入端是用来检测外部输入信号的,端口状态由外部决定。

回答你的问题:对于上拉输入,端口默认是高电平,你问假如再来个高电平,上拉输入怎么检测?什么叫再来个高电平?是比已经上拉的高电平还高吗?那就是前面说的,超出STM32的范围了,真要检测这样的电平信号,得加变换电路;再,是又一次的意思,之前必有间隔,那么如果之前是低电平,再来一次高电平,这个识别是单片机的固有功能,当然能识别。

后一问同理。追问

高手我的意思是这样的、就拿上拉输入来说吧,端口没有任何外部电平输入进来时是高电平(因为内部有上拉电阻),那这个时候假如外部有一个高电平过来了,这个端口怎样检测它是本来的高电平还是外部输入进来的高电平?下拉输入同样是类似的疑问

追答

这么说吧,数字输入io口检测的是电平变化,原来是高电平,加入信号还是高电平,这时候单片机不认识,没感觉。对低电平也同样道理。

追问

那这么说的话,要是IO口设置成上拉输入就只能检测低电平不能检测高电平?

追答

你就是绕不过这个弯儿来,数字输入io口检测的是电平变化,电平变化就能检测高电平。也许是我没转过弯儿来,你就是要识别外部引脚是高电平还是低电平对不?将IO输入设置成浮空就可以了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-10-28
端口要么是高电平要么是低电平,来个高电平他不变,还是高电平,来个低电平他就低了,与你传输的电平一样的。
第2个回答  2017-10-12
其实他的问题忽略了一个前提,端口除了高电平就是低电平,没有第三种状态。如上拉输入,默认是高电平,端口来个低电平那就是低,没问题;如果端口来过高电平,那就是高,也没问题;不会有第三种状态了。 没检测到低电平,那就是输入了高电平,你能告诉我输入的即不是高电平又不是低电平的其他电平吗?
第3个回答  2020-12-30

题主是这意思么:KEY因为上拉,断开时,输入高电平;如果接1,输入高电平(不考虑过压问题);接2,输入低电平。但实际使用时KEY应该要么悬空,要么接2,一般不会“再来个高电平”。

第4个回答  2020-06-09
少年,你的问题是属于数模转换的问题,在哪才能找到你的答案,了解一下ADC,你就知道了
相似回答