第一部分 空GPIO引脚状态
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电平。
第二部分 输入和输出模式区别
1. 开漏输出:输出电压在低电平接地,高电平时高阻态。若外接上拉电阻,输出高电平时电压会拉到上拉电阻的电源电压。
2.推挽输出:使用两只三极管构成一级放大电路,分别对输出高电平和输出低电平进行放大,增强驱动能力。
区别:1)输出低电平时无区别,都接地;2)输出高电平时,开漏输出高电平,则能够提供的电压等于上拉电阻的电源电压。因为上拉电阻的电源电压小于等于单片机的电源电压,若大于单片机的电源电压,单片机可能会烧坏,所以开漏输出的电压小于等于单片机的电源电压。3)推挽输出高电平,则提供的电压等于单片机的电源电压。
推挽电路:
开漏电路:
第三部分 STM32 GPIO配置模式
模式详解