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

相關文章
相關標籤/搜索