输入和输出
从51过来的人,对输入和输出比较陌生。51单片机不用设置输入和输出模式,自动变换,无需程序配置,当我们写程序读引脚的电平的时候,实际上就是作为输入模式来使用,当我们写程序让引脚输出电平的时候,实际上就是作为输出模式来使用。也就是说,并不是51单片机没有输入和输出这个概念,而是你已经使用了很久却没有发现。
STM32与51的区别就是:当我们要读引脚电平的时候,也就是作为输入,我们必须要先把引脚设置为输入功能,才可以读。当我们要控制引脚高低电平的时候,也就是作为输出,我们必须要先把引脚设置为输出功能,才可以设置。
上拉与下拉
概念比较抽象,你只需要记住:在引脚上没有外界干扰的情况下,上拉就是把引脚设置为高电平了,你用万用表量上拉引脚,就是高电平;下拉就是把引脚设置为低电平了,你用万用表量下拉引脚,就是低电平,也就是0V。
推挽与开漏
概念比较抽象,你只需要记住:设置为推挽,就是提高了引脚的输出电流能力。设置为开漏,就是提高了引脚的输入电流能力。然后还要知道,设置为开漏时,如果外部不加上拉电阻,默认输出是低电平。
通用与复用
通用就是作为普通的输入和输出引脚。复用就是该引脚可以作为SPI引脚I2C引脚等其他功能的引脚。
使用介绍
结合上面讲的,可以得到一些简单的应用设置方式。
比如检测按键,就应该设置为输入,如果外部没有加上拉电阻,你就需要设置引脚为上拉输入,这样如果检测到引脚是低电平,就是按下按键了。如果外部加了上拉电阻,你这时既可以把引脚设置为上拉输入,也可以设置为浮空输入,设置为这两种,由于外部上拉电阻的原因,默认就是高电平,同样,检测到低电平时,就是按键按下了。
当你要控制引脚高低电平做应用时,就是需要把引脚设置为输出功能。例如驱动一个器件,驱动一个发光二极管等。如果你要使用高电平点亮发光二极管,就需要把引脚设置为推挽输出,以增大电流输出能力,如果你设置为开漏输出,发光二极管肯定是点不亮了。但是如果你使用低电平点亮发光二极管,那么设置为开漏和推挽输出都可以正常点亮发光二极管。
![gzh](https://www.qiquanji.com/weixin/gzh.jpg)
微信扫码关注
更新实时通知