GPIO是什么?
字面意思看,GPIO=General Purpose Input Output,通用输入输出。有时候简称为“IO口”。通用,就是说它是万金油,干什么都行。输入输出,就是说既能当输入口使用,又能当输出口使用。端口,就是元器件上的一个引脚。怎么用?写软件控制。
总结:GPIO就是芯片上的一根干啥都行的引脚。
讲了这么多,相信不懂的人还是一头雾水,咱们对着案例看看GPIO怎么用至于上拉、下拉、悬空、高阻、开漏、推挽之类的概念,可以以后再慢慢琢磨。
GPIO的简单用法
按键严格来讲也是个中断。GPIO口默认状态是低电平,按键按下后被拉到高电平,此时系统能够检测到中断,判定为按键按下。
等到按键释放了,GPIO口检测到电压回归低电平,就判定为按键松开了。 这种做法是单片机上比较常见的做法。 在智能一些的硬件平台上,往往会有独立的硬件按键接口(非GPIO口),在芯片内部加入按键控制器,通过硬件实现按键的去抖、双击和长按判断。
对于单片机,一旦被按键触发之后,内部就开始跑程序,每隔几个毫秒读取一次按键状态,判断按键是否被释放。 通过软件实现去抖、双击和长按的功能。
图上的电容,用处是滤除外部干扰,避免被误触发,同时起到一定的按键去抖作用。 图上的TVS管,是为了防止静电进入CPU。
可能会有人问,按键按下就是按下了,为什么会抖动?
因为按键都是机械式的,两个金属片在接触的瞬间,从微秒级的时间段来看,会存在接触-断开-再接触这样的轻微的抖动。 直到两个金属片牢牢的接触到一起之后,抖动才会消失。 所谓按键去抖动,就是通过延时来消除掉接触再断开这种异常状态的。
如果GPIO口不够,但是需要做多个按键的检测,也可以把按键配置成为ADC,通过不同按键产生不同的电压,来利用一个ADC口检测到不同的键值。 这个做法通常用于手机3.5mm有线耳机上的3个按键的检测。
GPIO的高阶应用
免责声明:本文系网络转载,版权归原作者所有
说明:本文来源网络;文中观点仅供分享交流,不代表本***立场,转载请注明出处,如涉及版权等问题,请您告知,我们将及时处理。
Please clik the advertisement and exit