如何设置单片机STM32的引脚
扫描二维码
随时随地手机看文章
在平时中会遇到设置单片机STM32的引脚,相信很多人有有疑问,本面文章主要介绍单片机STM32的引脚的设置方法,不过还要结合实际理解,如果理解不了,也无需着急,接触多了慢慢就会理解。
如果你是用直接写寄存器来配置的话,那么,看上手册,给“配置寄存器”对应的位写0或者1就可以达到目的。如下图:
如果是用库函数来配置的话,就需要知道下面这个结构体中的变量代表的意义。
库函数,选择好GPIO_Mode之后,就要使用GPIO_Init()函数来配置,你可以打开这个配置函数,实际上也是在对“配置寄存器”进行写操作。
先解释一下这个结构体中的各个变量的意思:
GPIO_Mode_AIN:模拟输入模式
GPIO_Mode_IN_FLOATING:浮空输入模式
GPIO_Mode_IPD:下拉输入模式
GPIO_Mode_IPU:上拉输入模式
GPIO_Mode_Out_OD:通用开漏输出模式
GPIO_Mode_Out_PP:通用推挽输出模式
GPIO_Mode_AF_OD:复用开漏输出模式
GPIO_Mode_AF_PP:复用推挽输出模式
前四个是输入模式,后四个是输出模式。
输入和输出
从51过来的人,对输入和输出比较陌生。51单片机不用设置输入和输出模式,自动变换,无需程序配置,当我们写程序读引脚的电平的时候,实际上就是作为输入模式来使用,当我们写程序让引脚输出电平的时候,实际上就是作为输出模式来使用。也就是说,并不是51单片机没有输入和输出这个概念,而是你已经使用了很久却没有发现。
STM32与51的区别就是:当我们要读引脚电平的时候,也就是作为输入,我们必须要先把引脚设置为输入功能,才可以读。当我们要控制引脚高低电平的时候,也就是作为输出,我们必须要先把引脚设置为输出功能,才可以设置。
上拉与下拉
概念比较抽象,你只需要记住:在引脚上没有外界干扰的情况下,上拉就是把引脚设置为高电平了,你用万用表量上拉引脚,就是高电平;下拉就是把引脚设置为低电平了,你用万用表量下拉引脚,就是低电平,也就是0V。
推挽与开漏
概念比较抽象,你只需要记住:设置为推挽,就是提高了引脚的输出电流能力。设置为开漏,就是提高了引脚的输入电流能力。然后还要知道,设置为开漏时,如果外部不加上拉电阻,默认输出是低电平。
通用与复用
通用就是作为普通的输入和输出引脚。复用就是该引脚可以作为SPI引脚I2C引脚等其他功能的引脚。
使用介绍
结合上面讲的,可以得到一些简单的应用设置方式。
例如,检测按钮设置为输入。如果没有外接拉电阻,需要将引脚设置为上拉输入,检测到引脚为低时按下按钮。如果你有一个外部的上拉电阻,你可以设置引脚为一个上拉输入或一个浮动输入。将其设置为其中之一,由于外部上拉电阻,默认电平是高的。同样,当按钮被按下时检测到低电平。
当你想要控制一个应用程序的引脚级别时,你需要将引脚设置为输出功能。例如,驱动器件,驱动发光二极管等。如果你想让led亮在一个高电平,你需要设置引脚推拉输出,以增加电流输出。如果您设置引脚打开钻输出,led将不会点亮。然而,如果你使用低电平来点亮led,则漏极和推挽输出都将正确地点亮。