STM32F103的引脚连接开关是否可行?
单片机是STM32F103C8T6,在其中的一个引脚上面连接了一个2位3脚的开关。目标是在系统运行期间,通过拨动这个开关(分别连接电源的正极或者负极)来改变这个引脚的电平高低。单片机检测到电平的变化后改变运行的模式。
我想知道,硬件上,是否可以直接将单片机的引脚与这个开关的中间那个引脚连接?还是说需要串接一个电阻?引脚怎么配置?
中间的pin脚串联1K电阻,然后一个1uF电容到地,构成RC低通滤波,可以减轻一些信号毛刺,同事1K电阻也可以保护MCU的IO口,直连也可以。STM32的引脚配置为浮空输入即可,使用读取IO的库函数,就可以获取当前IO的输入电平是高或者低;
如果你VCC不连接,只是接地,那么配置成上拉输入,也可以实现两种状态的识别。
如果只识别高低两种状态,一般仅使用单向开关,接地就可以实现! 本帖最后由 watershade 于 2016-12-16 23:02 编辑
通常情况下你可以直接连接。Vcc和你单片机的电平持平。当然你如果你加上1K的电阻会更好。但是如果你的环境中有弱电(比如220VAC)甚至强电(>10KV),或者电磁环境复杂,最好的办法当然是添加隔离电路。有时甚至要加比较复杂的光隔离或者磁隔离芯片。
有时为了减少软件滤波的难度,比如你这个开关信号,对于慢速系统可以添加相应大小的电容来滤波或者TVS二极管滤波的方法。
watershade 发表于 2016-12-16 22:59
通常情况下你可以直接连接。Vcc和你单片机的电平持平。当然你如果你加上1K的电阻会更好。但是如果你的环境 ...
多谢你的解答。还有一个问题:
连接后(无论是否添加电阻),STM32的引脚怎么配置呢? 帮顶,按键接通的瞬间会有抖动,要加硬件滤波电路;不知道开关有没有 shuolang126 发表于 2016-12-17 07:54
中间的pin脚串联1K电阻,然后一个1uF电容到地,构成RC低通滤波,可以减轻一些信号毛刺,同事1K电阻也可以保 ...
如果我将开关的连接只是到GND,是否就是下面的这个样子?
非常感谢你了。
斜阳__ 发表于 2016-12-17 09:09
帮顶,按键接通的瞬间会有抖动,要加硬件滤波电路;不知道开关有没有
开关没有的,就是普通的开关。我添加一个电容?
多谢你的解答。 leo121_3006061 发表于 2016-12-17 11:50
多谢你的解答。 搞更复杂.端口设为输入模式.内部上拉(还有干扰就外部加1个几K的上拉电阻).然后直接接开关中点.开关一端接地,另一端空.开关抖动什么的同软件处理.