liucw99 发表于 2016-12-16 22:19:51

STM32F103的引脚连接开关是否可行?

单片机是STM32F103C8T6,在其中的一个引脚上面连接了一个2位3脚的开关。
目标是在系统运行期间,通过拨动这个开关(分别连接电源的正极或者负极)来改变这个引脚的电平高低。单片机检测到电平的变化后改变运行的模式。
我想知道,硬件上,是否可以直接将单片机的引脚与这个开关的中间那个引脚连接?还是说需要串接一个电阻?引脚怎么配置?


shuolang126 发表于 2016-12-17 07:54:01

中间的pin脚串联1K电阻,然后一个1uF电容到地,构成RC低通滤波,可以减轻一些信号毛刺,同事1K电阻也可以保护MCU的IO口,直连也可以。STM32的引脚配置为浮空输入即可,使用读取IO的库函数,就可以获取当前IO的输入电平是高或者低;
如果你VCC不连接,只是接地,那么配置成上拉输入,也可以实现两种状态的识别。
如果只识别高低两种状态,一般仅使用单向开关,接地就可以实现!

watershade 发表于 2016-12-16 22:59:39

本帖最后由 watershade 于 2016-12-16 23:02 编辑

通常情况下你可以直接连接。Vcc和你单片机的电平持平。当然你如果你加上1K的电阻会更好。但是如果你的环境中有弱电(比如220VAC)甚至强电(>10KV),或者电磁环境复杂,最好的办法当然是添加隔离电路。有时甚至要加比较复杂的光隔离或者磁隔离芯片。
有时为了减少软件滤波的难度,比如你这个开关信号,对于慢速系统可以添加相应大小的电容来滤波或者TVS二极管滤波的方法。

liucw99 发表于 2016-12-16 23:20:10

watershade 发表于 2016-12-16 22:59
通常情况下你可以直接连接。Vcc和你单片机的电平持平。当然你如果你加上1K的电阻会更好。但是如果你的环境 ...

多谢你的解答。还有一个问题:
连接后(无论是否添加电阻),STM32的引脚怎么配置呢?

斜阳__ 发表于 2016-12-17 09:09:51

帮顶,按键接通的瞬间会有抖动,要加硬件滤波电路;不知道开关有没有

leo121_3006061 发表于 2016-12-17 11:50:45

liucw99 发表于 2016-12-17 13:38:26

shuolang126 发表于 2016-12-17 07:54
中间的pin脚串联1K电阻,然后一个1uF电容到地,构成RC低通滤波,可以减轻一些信号毛刺,同事1K电阻也可以保 ...

如果我将开关的连接只是到GND,是否就是下面的这个样子?


非常感谢你了。

liucw99 发表于 2016-12-17 13:39:18

斜阳__ 发表于 2016-12-17 09:09
帮顶,按键接通的瞬间会有抖动,要加硬件滤波电路;不知道开关有没有

开关没有的,就是普通的开关。我添加一个电容?

多谢你的解答。

liucw99 发表于 2016-12-17 13:40:01

leo121_3006061 发表于 2016-12-17 11:50


多谢你的解答。

lzts 发表于 2016-12-17 14:54:29

搞更复杂.端口设为输入模式.内部上拉(还有干扰就外部加1个几K的上拉电阻).然后直接接开关中点.开关一端接地,另一端空.开关抖动什么的同软件处理.
页: [1] 2 3 4 5
查看完整版本: STM32F103的引脚连接开关是否可行?