原创 STM32 GPIO的十大优越功能综述

2010-10-5 23:50 2273 8 8 分类: MCU/ 嵌入式

转自http://bbs.21ic.com/viewthread.php?tid=107214&extra=&highlight=STM32%2BGPIO%E7%9A%84%E5%8D%81%E5%A4%A7%E4%BC%98%E8%B6%8A%E5%8A%9F%E8%83%BD%E7%BB%BC%E8%BF%B0&page=1


前几天Hotpower邀请大家讨论一下GPIO的功能、性能和优缺点(STM32的GPIO很强大~~~),等了几天没见太多人发言,但综合来看提到了3点:1)真双向IO,2)速度快,3)寄存器功能重复。关于第3点有说好,有说多余的,见仁见智。

下面我就在做个抛砖引玉,根据ST手册上的内容,简单地综述一下GPIO的功能:
一、共有8种模式,可以通过编程选择:
  1. 浮空输入
  2. 带上拉输入
  3. 带下拉输入
  4. 模拟输入
  5. 开漏输出——(此模式可实现hotpower说的真双向IO)
  6. 推挽输出
  7. 复用功能的推挽输出
  8. 复用功能的开漏输出
模式7和模式8需根据具体的复用功能决定。

二、专门的寄存器(GPIOx_BSRR和GPIOx_BRR)实现对GPIO口的原子操作,即回避了设置或清除I/O端口时的“读-修改-写”操作,使得设置或清除I/O端口的操作不会被中断处理打断而造成误动作。

三、每个GPIO口都可以作为外部中断的输入,便于系统灵活设计

四、I/O口的输出模式下,有3种输出速度可选(2MHz、10MHz和50MHz),这有利于噪声控制。

五、所有I/O口兼容CMOS和TTL,多数I/O口兼容5V电平。

六、大电流驱动能力:GPIO口在高低电平分别为0.4V和VDD-0.4V时,可以提供或吸收8mA电流;如果把输入输出电平分别放宽到1.3V和VDD-1.3V时,可以提供或吸收20mA电流。

七、具有独立的唤醒I/O口。

八、很多I/O口的复用功能可以重新映射,见:你知道吗?STM32上很多管脚功能可以重新映射

九、GPIO口的配置具有上锁功能,当配置好GPIO口后,可以通过程序锁住配置组合,直到下次芯片复位才能解锁。此功能非常有利于在程序跑飞的情况下保护系统中其他的设备,不会因为某些I/O口的配置被改变而损坏——如一个输入口变成输出口并输出电流。

十、输出模式下输入寄存器依然有效,在开漏配置模式下实现真正的双向I/O功能。


 


8031的准双向IO的成功,也支持了它能在业界存活的时间更长,当然AT89C51
是后继者中最大的功臣~~~

准双向IO实际就是带上拉功能的开漏输出且能读写的双向IO,它在速度允许时,

几乎可以模拟任何串行接口,特别是将SPI接口的MISO和MOSI短接变为单线双向

接口SIO.

虽然它的拉电流很小,但对保护IO不受损坏起到了关键的作用.

如果大家都是这种准双向的IO接口,那么大家线与又有谁害怕IO被毁呢???

所以这种准双向IO的优点就可以实现IO的自检,在配合下面的"电路"即可实现

IO不怕接VCC,不怕接地,不怕混线,不怕断线(过孔未沉铜)~~~

即可在一片IO上用铁棍"弹钢琴"~~~

"电路"

V---自恢复保险---+----LDO----MCU---IO <---搞破坏(VCC,GND,...)
                 |                 
            瞬态拟制器
                 |
                GND

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
8
关闭 站长推荐上一条 /3 下一条