国产精品久久久久影院,成人午夜福利视频,国产精品久久久久高潮,国产精品 欧美 亚洲 制服,国产精品白浆无码流出

針對(duì)STM32設(shè)計(jì),這8種GPIO配置不可忽視

發(fā)布者:superstar11最新更新時(shí)間:2024-04-12 來源: elecfans關(guān)鍵字:STM32  GPIO配置  數(shù)據(jù)手冊(cè) 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

最近在看數(shù)據(jù)手冊(cè)的時(shí)候,發(fā)現(xiàn)在Cortex-M3里,對(duì)于GPIO的配置種類有8種之多:

(1)GPIO_Mode_AIN 模擬輸入(2)GPIO_Mode_IN_FLOATING 浮空輸入(3)GPIO_Mode_IPD 下拉輸入(4)GPIO_Mode_IPU 上拉輸入(5)GPIO_Mode_Out_OD 開漏輸出(6)GPIO_Mode_Out_PP 推挽輸出(7)GPIO_Mode_AF_OD 復(fù)用開漏輸出(8)GPIO_Mode_AF_PP 復(fù)用推挽輸出


對(duì)于剛?cè)腴T的新手,我想這幾個(gè)概念是必須得搞清楚的,平時(shí)接觸的最多的也就是推挽輸出、開漏輸出、上拉輸入這三種,但一直未曾對(duì)這些做過歸納。

因此,在這里做一個(gè)總結(jié):

一、推挽輸出:可以輸出高、低電平,連接數(shù)字器件;推挽結(jié)構(gòu)一般是指兩個(gè)三極管分別受兩個(gè)互補(bǔ)信號(hào)的控制,總是在一個(gè)三極管導(dǎo)通的時(shí)候另一個(gè)截止。高低電平由IC的電源決定。

推挽電路是兩個(gè)參數(shù)相同的三極管或MOSFET,以推挽方式存在于電路中,各負(fù)責(zé)正負(fù)半周的波形放大任務(wù),電路工作時(shí),兩只對(duì)稱的功率開關(guān)管每次只有一個(gè)導(dǎo)通,所以導(dǎo)通損耗小、效率高。輸出既可以向負(fù)載灌電流,也可以從負(fù)載抽取電流。推拉式輸出級(jí)既提高電路的負(fù)載能力,又提高開關(guān)速度。

二、開漏輸出:輸出端相當(dāng)于三極管的集電極,要得到高電平狀態(tài)需要上拉電阻才行。適合于做電流型的驅(qū)動(dòng),其吸收電流的能力相對(duì)強(qiáng)(一般20mA以內(nèi))。

開漏形式的電路有以下幾個(gè)特點(diǎn):

1、利用外部電路的驅(qū)動(dòng)能力,減少IC內(nèi)部的驅(qū)動(dòng)。當(dāng)IC內(nèi)部MOSFET導(dǎo)通時(shí),驅(qū)動(dòng)電流是從外部的VCC流經(jīng)上拉電阻、MOSFET到GND。IC內(nèi)部僅需很小的柵極驅(qū)動(dòng)電流。

2、一般來說,開漏是用來連接不同電平的器件,匹配電平用的,因?yàn)殚_漏引腳不連接外部的上拉電阻時(shí),只能輸出低電平,如果需要同時(shí)具備輸出高電平的功能,則需要接上拉電阻,很好的一個(gè)優(yōu)點(diǎn)是通過改變上拉電源的電壓,便可以改變傳輸電平。比如加上上拉電阻就可以提供TTL/CMOS電平輸出等。(上拉電阻的阻值決定了邏輯電平轉(zhuǎn)換的速度。阻值越大,速度越低功耗越小,所以負(fù)載電阻的選擇要兼顧功耗和速度。)

3、開漏輸出提供了靈活的輸出方式,但是也有其弱點(diǎn),就是帶來上升沿的延時(shí)。因?yàn)樯仙厥峭ㄟ^外接上拉無源電阻對(duì)負(fù)載充電,所以當(dāng)電阻選擇小時(shí)延時(shí)就小,但功耗大;反之延時(shí)大功耗小。所以如果對(duì)延時(shí)有要求,則建議用下降沿輸出。

4、可以將多個(gè)開漏輸出連接到一條線上。通過一只上拉電阻,在不增加任何器件的情況下,形成“與邏輯”關(guān)系,即“線與”??梢院唵蔚睦斫鉃椋涸谒幸_連在一起時(shí),外接一上拉電阻,如果有一個(gè)引腳輸出為邏輯0,相當(dāng)于接地,與之并聯(lián)的回路“相當(dāng)于被一根導(dǎo)線短路”,所以外電路邏輯電平便為0,只有都為高電平時(shí),與的結(jié)果才為邏輯1。

關(guān)于推挽輸出和開漏輸出,最后用一幅最簡單的圖形來概括:該圖中左邊的便是推挽輸出模式,其中比較器輸出高電平時(shí)下面的PNP三極管截止,而上面NPN三極管導(dǎo)通,輸出電平VS+;當(dāng)比較器輸出低電平時(shí)則恰恰相反,PNP三極管導(dǎo)通,輸出和地相連,為低電平。右邊的則可以理解為開漏輸出形式,需要接上拉。

三、浮空輸入:對(duì)于浮空輸入,一直沒找到很權(quán)威的解釋,只好從以下圖中去理解了

由于浮空輸入一般多用于外部按鍵輸入,結(jié)合圖上的輸入部分電路,我理解為浮空輸入狀態(tài)下,IO的電平狀態(tài)是不確定的,完全由外部輸入決定,如果在該引腳懸空的情況下,讀取該端口的電平是不確定的。

四、上拉輸入/下拉輸入/模擬輸入:這幾個(gè)概念很好理解,從字面便能輕易讀懂。

五、復(fù)用開漏輸出、復(fù)用推挽輸出:可以理解為GPIO口被用作第二功能時(shí)的配置情況(即并非作為通用IO口使用)

六、總結(jié)在STM32中選用IO模式

模式

1、浮空輸入GPIO_IN_FLOATING ——浮空輸入,可以做KEY識(shí)別,RX12、帶上拉輸入GPIO_IPU——IO內(nèi)部上拉電阻輸入3、帶下拉輸入GPIO_IPD—— IO內(nèi)部下拉電阻輸入4、模擬輸入GPIO_AIN ——應(yīng)用ADC模擬輸入,或者低功耗下省電

5、開漏輸出GPIO_OUT_OD ——IO輸出0接GND,IO輸出1,懸空,需要外接上拉電阻,才能實(shí)現(xiàn)輸出高電平。當(dāng)輸出為1時(shí),IO口的狀態(tài)由上拉電阻拉高電平,但由于是開漏輸出模式,這樣IO口也就可以由外部電路改變?yōu)榈碗娖交虿蛔???梢宰xIO輸入電平變化,實(shí)現(xiàn)C51的IO雙向功能

6、推挽輸出GPIO_OUT_PP ——IO輸出0-接GND, IO輸出1 -接VCC,讀輸入值是未知的7、復(fù)用功能的推挽輸出GPIO_AF_PP ——片內(nèi)外設(shè)功能(I2C的SCL,SDA)8、復(fù)用功能的開漏輸出GPIO_AF_OD——片內(nèi)外設(shè)功能(TX1,MOSI,MISO.SCK.SS)

七、STM32設(shè)置實(shí)例:

1、模擬I2C使用開漏輸出_OUT_OD,接上拉電阻,能夠正確輸出0和1;讀值時(shí)先GPIO_SetBits(GPIOB, GPIO_Pin_0);拉高,然后可以讀IO的值;使用GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_0);

2、如果是無上拉電阻,IO默認(rèn)是高電平;需要讀取IO的值,可以使用帶上拉輸入_IPU和浮空輸入_IN_FLOATING和開漏輸出_OUT_OD;

八、通常有5種方式使用某個(gè)引腳功能,它們的配置方式如下:

1、作為普通GPIO輸入:根據(jù)需要配置該引腳為浮空輸入、帶弱上拉輸入或帶弱下拉輸入,同時(shí)不要使能該引腳對(duì)應(yīng)的所有復(fù)用功能模塊。

2、作為普通GPIO輸出:根據(jù)需要配置該引腳為推挽輸出或開漏輸出,同時(shí)不要使能該引腳對(duì)應(yīng)的所有復(fù)用功能模塊。

3、作為普通模擬輸入:配置該引腳為模擬輸入模式,同時(shí)不要使能該引腳對(duì)應(yīng)的所有復(fù)用功能模塊。

4、作為內(nèi)置外設(shè)的輸入:根據(jù)需要配置該引腳為浮空輸入、帶弱上拉輸入或帶弱下拉輸入,同時(shí)使能該引腳對(duì)應(yīng)的某個(gè)復(fù)用功能模塊。

5、作為內(nèi)置外設(shè)的輸出:根據(jù)需要配置該引腳為復(fù)用推挽輸出或復(fù)用開漏輸出,同時(shí)使能該引腳對(duì)應(yīng)的所有復(fù)用功能模塊。

注意如果有多個(gè)復(fù)用功能模塊對(duì)應(yīng)同一個(gè)引腳,只能使能其中之一,其它模塊保持非使能狀態(tài)。比如要使用STM32F103VBT6的47、48腳的USART3功能,則需要配置47腳為復(fù)用推挽輸出或復(fù)用開漏輸出,配置48腳為某種輸入模式,同時(shí)使能USART3并保持I2C2的非使能狀態(tài)。如果要使用STM32F103VBT6的47腳作為TIM2_CH3,則需要對(duì)TIM2進(jìn)行重映射,然后再按復(fù)用功能的方式配置對(duì)應(yīng)引腳。


關(guān)鍵字:STM32  GPIO配置  數(shù)據(jù)手冊(cè) 引用地址:針對(duì)STM32設(shè)計(jì),這8種GPIO配置不可忽視

上一篇:一塊STM32最小系統(tǒng)板來驅(qū)動(dòng)電機(jī)
下一篇:基于STM32和W5100的SNTP服務(wù)器設(shè)計(jì)

推薦閱讀最新更新時(shí)間:2025-06-27 19:58

51單片機(jī)的GPIO配置
導(dǎo)語 通過單片機(jī)控制外圍器件(LED,蜂鳴器,數(shù)碼管,按鍵),本質(zhì)上是對(duì)于單片機(jī)IO口的操作,相對(duì)于STM32,51單片機(jī)IO口模式較少,但了解IO的內(nèi)部對(duì)于學(xué)習(xí)了解51單片機(jī)也由很大的幫助。 GPIO GPIO(General Purpose Input Output),通用輸入輸出。既能當(dāng)輸入口使用,又能當(dāng)輸出口使用。端口,就是元器件上的一個(gè)引腳。可以通過軟件去控制。 在大多數(shù)的時(shí)候,我們將IO口可以看為一個(gè)電子開關(guān),通過向IO寄存器中寫入相應(yīng)的值,其輸出的電平就隨著寄存器的變化而變化,這是IO口的輸出,在大多數(shù)的單片機(jī)中,需要去配置單片機(jī)的IO模式,是輸入還是輸出。 即需要預(yù)先初始化,配置GPIO的參數(shù),再去使用
[單片機(jī)]
51單片機(jī)的<font color='red'>GPIO</font><font color='red'>配置</font>
STM32-GPIO配置和使用
1.寄存器介紹 STM32 的每個(gè) IO 端口都有 7 個(gè)寄存器來控制。他們分別是:配置模式的 2 個(gè) 32 位的端口配置寄存器CRL 和 CRH;2 個(gè) 32 位的數(shù)據(jù)寄存器IDR 和 ODR;1 個(gè) 32 位的置位/復(fù)位寄存器BSRR;一個(gè) 16 位的復(fù)位寄存器 BRR;1 個(gè) 32 位的鎖存寄存器LCKR;這里我們僅介紹常用 的幾個(gè)寄存器,我們常用的 IO 端口寄存器只有 4 個(gè):CRL、CRH、IDR、ODR,即端口配置寄存器和數(shù)據(jù)寄存器。 1.1端口配置寄存器(CRL和CRH) CRL:每個(gè) IO 端口的位占用 CRL 的 4 個(gè)位,高兩位為 CNF,用來配置端口的模式,低兩位為 MODE,用來配置端口的最大輸出速度
[單片機(jī)]
STM32-<font color='red'>GPIO</font>的<font color='red'>配置</font>和使用
關(guān)于STM32GPIO配置命令
以下代碼摘自原子的stm32開發(fā)指南 //初始化 PB5 和 PE5 為輸出口.并使能這兩個(gè)口的時(shí)鐘 void LED_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOE, ENABLE); //使能 PB,PE 端口時(shí)鐘 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //PB.5 推挽輸出 GPIO_InitStructure.GPIO_M
[單片機(jī)]
STM32F10x芯片GPIO/AFIO端口配置總結(jié)
1、介紹 STM32F10x芯片的GPIO/AFIO配置主要包括以下幾方面知識(shí):在時(shí)鐘控制模塊中配置好相應(yīng)總線時(shí)鐘,并在總線上使能對(duì)應(yīng)的GPIO口(AFIO口,需要的話)時(shí)鐘后:根據(jù)需求配置相應(yīng)GPIO端口為對(duì)應(yīng)的輸入/輸出模式,按需求更改/讀取端口的數(shù)據(jù);端口功能重映射;若用外部中斷,則將中斷線與對(duì)應(yīng)引腳鏈接起來。 STM32F10x芯片的每個(gè)GPIO端口都有7個(gè)相關(guān)的寄存器:2個(gè)32位配置寄存器(GPIOx_CRL,GPIOx_CRH),兩個(gè)32位數(shù)據(jù)寄存器(GPIOx_IDR,GPIOx_ODR),一個(gè)32位置位/復(fù)位寄存器(GPIOx_BSRR),一個(gè)16位復(fù)位寄存器(GPIOx_BRR)和一個(gè)32位鎖定寄存器(GPI
[單片機(jī)]
嵌入式系統(tǒng)中可配置GPIO模擬SPI總線方法
??? 在嵌入式系統(tǒng)處理器中有相當(dāng)一部分處理器不帶SPI接口,但基丁SPI接口的設(shè)備非常豐富,此外,SPI設(shè)備的不同以及處理器對(duì)GPIO口位尋址是否支持各處理器各有不同,因而不同處理器中軟件模擬GPIO也各不相同。若能提供一種通用可配置可移植的GPIO模擬SPI總線的驅(qū)動(dòng)則能很方便快捷的訪問SPI設(shè)備,從而提高整個(gè)嵌入式系統(tǒng)的開發(fā)效率。本文針對(duì)GPIO口位尋址與否給出方面,給出了一種可配置GPIO模擬SPI總線的方法并詳細(xì)介紹了其設(shè)計(jì)與實(shí)現(xiàn)過程,且具有代碼小可移植性強(qiáng)使用方便等特點(diǎn)。 1 GPIO規(guī)范 ??? SPI是一個(gè)全雙工的串行接口。它設(shè)計(jì)成可以在一個(gè)給定總線上處理多個(gè)互聯(lián)的主機(jī)和從機(jī)。在一定數(shù)據(jù)傳輸過程中,接口上只
[工業(yè)控制]
解決方法:STM32下載提示Cannot enter Debug Mode
一、問題 在 STM32F103VET6 使用 CMSIS-DAP 下載程序時(shí)提示 Cannot access Memory 和 Cannot enter Debug Mode 二、原因 是硬件問題,測量芯片的 VREF+ 只有0.9V, VDDA 只有0.8V,而下面的焊盤測量出都有3.3V。是引腳虛焊了。 三、解決方法 重新焊接后能正常下載程序。
[單片機(jī)]
記錄一次在Windows上面搭建 STM32環(huán)境 之codeblocks 安裝
需要的軟件 1.codeblocks 下載地址: http://www.codeblocks.org/ 2.交叉編譯系列軟件 arm-none-eabi :https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads 可能遇到的問題: 1.make 命令失敗 Execution of 'make.exe all' in ' D: datastm32Workdemo' failed. make 命令失敗 解決方案 :將 C:P
[單片機(jī)]
L2-2 Keil5-MDK軟件STM32工程仿真(USART篇)
前置條件 已創(chuàng)建STM32工程(本文以STM32F103ZE系列芯片為例) 已完成USART1的驅(qū)動(dòng)程序編寫(包括printf的硬件重定向) 代碼示例 usart.h #ifndef _USART_H_ #define _USART_H_ #include stm32f10x.h #ifdef __GNUC__ #define PUTCHAR_PROTOTYPE int __io_putchar(int ch) #else #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f) #endif void Usart_Init(void); // 對(duì)外提供的
[單片機(jī)]
小廣播
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號(hào)

 
EEWorld服務(wù)號(hào)

 
汽車開發(fā)圈

 
機(jī)器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號(hào) 京ICP備10001474號(hào)-1 電信業(yè)務(wù)審批[2006]字第258號(hào)函 京公網(wǎng)安備 11010802033920號(hào) Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved