stm32的IO理解:
STM32中空的I/O管脚是高电平还是低电平取决于具体情况。
1、IO端口复位后处于浮空状态,也就是其电平状态由外围电路决定。
2、STM32上电复位瞬间I/O口的电平状态默认是浮空输入,因此是高阻。做到低功耗。
3、STM32的IO管脚配置口默认为浮空输入,把选择权留给用户,这是一个很大的优势:一方面浮空输入确保不会出现用户不希望的默认电平(此时电平取决于用户的外围电路);另一方面降低了功耗,因为不管是上拉还是下拉都会有电流消耗。从另一个角度来看,不管I/O管脚的默认配置如何,还是需要在输出的管脚外加上拉或下拉,这是为了保证芯片上电期间和复位时输出的管脚始终处于已知的电平。
4、在没有任何操作的情况下,STM32通用推挽输出模式的引脚默认低电平,也就是有电的状态。所以在配置的时候通常会先把引脚的电平设置拉高,让电路不产生电流。有电到没电这一过程也就是引脚电平从低到高的过程。
5、STM32的I/O管脚有两种:TTL和CMOS,所有管脚都兼容TTL和CMOS电平。也就是说从输入识别电压上看,所有管脚不管是TTL管脚还是CMOS管脚都可以识别TTL或CMOS电平。
有个东西必须知道:如果是CMOS的引脚,那么不使用的输入端不能悬空,否则会或多或少受电荷累积等影响导致逻辑混乱。(普通单片机的I/O都是CMOS输入结构的,而MOS管在应用的过程中Gate端是不允许悬空的,悬空时电平不定,容易在外界的干扰时造成翻转,并且会带来额外的功耗,所以不用时一般设置为输入上拉状态。)
但是因为stm32的IO都是CMOS与TTL兼容的,所以使能了时钟但是并没有使用的某些IO口就可以闲置了。