STM32 GPIO口的驱动能力

STM32的输入输出模式有多种,可由下面这两个函数来进行设置。ide

##Input/Output Mode## <!-- lang: cpp --> typedef enum { GPIO_Mode_IN = 0x00, /*!< GPIO Input Mode / GPIO_Mode_OUT = 0x01, /!< GPIO Output Mode / GPIO_Mode_AF = 0x02, /!< GPIO Alternate function Mode / GPIO_Mode_AN = 0x03 /!< GPIO Analog Mode */ }GPIOMode_TypeDef;函数

typedef enum
{ 
GPIO_OType_PP = 0x00,
GPIO_OType_OD = 0x01
}GPIOOType_TypeDef;

其中PP表明推挽输出,OD表明开漏输出。那么它们之间有什么区别呢?code

当我想在GPIO上接一个电机或者电磁阀的时候,它们可否直接工做?或者当接数字器件时,又该如何设置?图片

这就须要考虑到GPIO口的驱动能力,按照需求来设置GPIO口的工做模式。get

推挽输出——能够输出高,低电平,链接数字器件io

开漏输出——输出端至关于三极管的集电极, 要获得高电平状态须要上拉电阻才行,适合于作电流型的驱动,其吸取电流的能力相对强(通常20ma之内)。function

如图所示,开漏输出应该叫作 反逻辑。当Inside Logic给1,外面输出0V;当给0,外面输出VCC。im

在此输入图片描述

##Reference## [1].http://bbs.ednchina.com/BLOG_ARTICLE_159008.HTMimg

相关文章
相关标签/搜索