STM32中GPIO是如何工作的?想知道嗎?
發布時間:2016-10-28 責任編輯:sherry
【導讀】推挽電路是兩個參數相同的三極管或MOSFET,以推挽方式存在於電路中,各負責正負半周的波形放大任務,電路工作時,兩隻對稱的功率開關管每次隻有一個導通,所以導通損耗小、效率高。輸出既可以向負載灌電流,也可以從負載抽取電流。推拉式輸出級既提高電路的負載能力,又提高開關速度。
一、推挽輸出:可以輸出高、低電平,連接數字器件;推挽結構一般是指兩個三極管分別受兩個互補信號的控製,總是在一個三極管導通的時候另一個截止。高低電平由IC的電源決定。
推挽電路是兩個參數相同的三極管或MOSFET,以(yi)推(tui)挽(wan)方(fang)式(shi)存(cun)在(zai)於(yu)電(dian)路(lu)中(zhong),各(ge)負(fu)責(ze)正(zheng)負(fu)半(ban)周(zhou)的(de)波(bo)形(xing)放(fang)大(da)任(ren)務(wu),電(dian)路(lu)工(gong)作(zuo)時(shi),兩(liang)隻(zhi)對(dui)稱(cheng)的(de)功(gong)率(lv)開(kai)關(guan)管(guan)每(mei)次(ci)隻(zhi)有(you)一(yi)個(ge)導(dao)通(tong),所(suo)以(yi)導(dao)通(tong)損(sun)耗(hao)小(xiao)、效率高。輸出既可以向負載灌電流,也可以從負載抽取電流。推拉式輸出級既提高電路的負載能力,又提高開關速度。
二、開漏輸出:輸出端相當於三極管的集電極,要得到高電平狀態需要上拉電阻才行。適合於做電流型的驅動,其吸收電流的能力相對強(一般20mA以內)。開漏形式的電路有以下幾個特點:
1、利用外部電路的驅動能力,減少IC內部的驅動。當IC內部MOSFET導通時,驅動電流是從外部的VCC流經上拉電阻、MOSFET到GND。IC內部僅需很小的柵極驅動電流。
2、一yi般ban來lai說shuo,開kai漏lou是shi用yong來lai連lian接jie不bu同tong電dian平ping的de器qi件jian,匹pi配pei電dian平ping用yong的de,因yin為wei開kai漏lou引yin腳jiao不bu連lian接jie外wai部bu的de上shang拉la電dian阻zu時shi,隻zhi能neng輸shu出chu低di電dian平ping,如ru果guo需xu要yao同tong時shi具ju備bei輸shu出chu高gao電dian平ping的de功gong能neng,則ze需xu要yao接jie上shang拉la電dian阻zu,很hen好hao的de一yi個ge優you點dian是shi通tong過guo改gai變bian上shang拉la電dian源yuan的de電dian壓ya,便bian可ke以yi改gai變bian傳chuan輸shu電dian平ping。比bi如ru加jia上shang上shang拉la電dian阻zu就jiu可ke以yi提ti供gongTTL/CMOS電平輸出等。(上拉電阻的阻值決定了邏輯電平轉換的速度。阻值越大,速度越低功耗越小,所以負載電阻的選擇要兼顧功耗和速度。)
3、kailoushuchutigonglelinghuodeshuchufangshi,danshiyeyouqiruodian,jiushidailaishangshengyandeyanshi。yinweishangshengyanshitongguowaijieshanglawuyuandianzuduifuzaichongdian,suoyidangdianzuxuanzexiaoshiyanshijiuxiao,dangonghaoda;反之延時大功耗小。所以如果對延時有要求,則建議用下降沿輸出。
4、可以將多個開漏輸出連接到一條線上。通過一隻上拉電阻,在不增加任何器件的情況下,形成“與邏輯”關係,即“線與”。可以簡單的理解為:在所有引腳連在一起時,外接一上拉電阻,如果有一個引腳輸出為邏輯0,相當於接地,與之並聯的回路“相當於被一根導線短路”,所以外電路邏輯電平便為0,隻有都為高電平時,與的結果才為邏輯1。
關於推挽輸出和開漏輸出,最後用一幅最簡單的圖形來概括:該圖中左邊的便是推挽輸出模式,其中比較器輸出高電平時下麵的PNP三極管截止,而上麵NPN三極管導通,輸出電平VS+;當比較器輸出低電平時則恰恰相反,PNP三極管導通,輸出和地相連,為低電平。右邊的則可以理解為開漏輸出形式,需要接上拉。


四、上拉輸入/下拉輸入/模擬輸入:這幾個概念很好理解,從字麵便能輕易讀懂。
五、複用開漏輸出、複用推挽輸出:可以理解為GPIO口被用作第二功能時的配置情況(即並非作為通用IO口使用)
六、總結在STM32中選用IO模式
1、浮空輸入GPIO_IN_FLOATING ——浮空輸入,可以做KEY識別,RX1
2、帶上拉輸入GPIO_IPU——IO內部上拉電阻輸入
3、帶下拉輸入GPIO_IPD—— IO內部下拉電阻輸入
4、模擬輸入GPIO_AIN ——應用ADC模擬輸入,或者低功耗下省電
5、開漏輸出GPIO_OUT_OD ——IO輸出0接GND,IO輸出1,懸空,需要外接上拉電阻,才能實現輸出高電平。當輸出為1時,IO口的狀態由上拉電阻拉高電平,但由於是開漏輸出模式,這樣IO口也就可以由外部電路改變為低電平或不變。可以讀IO輸入電平變化,實現C51的IO雙向功能
6、推挽輸出GPIO_OUT_PP ——IO輸出0-接GND, IO輸出1 -接VCC,讀輸入值是未知的
7、複用功能的推挽輸出GPIO_AF_PP ——片內外設功能(I2C的SCL,SDA)
8、複用功能的開漏輸出GPIO_AF_OD——片內外設功能(TX1,MOSI,MISO.SCK.SS)
七、STM32設置實例:
1、模擬I2C使用開漏輸出_OUT_OD,接上拉電阻,能夠正確輸出0和1;讀值時先GPIO_SetBits(GPIOB, GPIO_Pin_0);拉高,然後可以讀IO的值;使用GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_0);
2、如果是無上拉電阻,IO默認是高電平;需要讀取IO的值,可以使用帶上拉輸入_IPU和浮空輸入_IN_FLOATING和開漏輸出_OUT_OD;
八、通常有5種方式使用某個引腳功能,它們的配置方式如下:
1、作為普通GPIO輸入:根據需要配置該引腳為浮空輸入、帶弱上拉輸入或帶弱下拉輸入,同時不要使能該引腳對應的所有複用功能模塊。
2、作為普通GPIO輸出:根據需要配置該引腳為推挽輸出或開漏輸出,同時不要使能該引腳對應的所有複用功能模塊。
3、作為普通模擬輸入:配置該引腳為模擬輸入模式,同時不要使能該引腳對應的所有複用功能模塊。
4、作為內置外設的輸入:根據需要配置該引腳為浮空輸入、帶弱上拉輸入或帶弱下拉輸入,同時使能該引腳對應的某個複用功能模塊。
5、作為內置外設的輸出:根據需要配置該引腳為複用推挽輸出或複用開漏輸出,同時使能該引腳對應的所有複用功能模塊。
注意如果有多個複用功能模塊對應同一個引腳,隻能使能其中之一,其它模塊保持非使能狀態。比如要使用STM32F103VBT6的47、48腳的USART3功能,則需要配置47腳為複用推挽輸出或複用開漏輸出,配置48腳為某種輸入模式,同時使能USART3並保持I2C2的非使能狀態。如果要使用STM32F103VBT6的47腳作為TIM2_CH3,則需要對TIM2進行重映射,然後再按複用功能的方式配置對應引腳。
特別推薦
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
技術文章更多>>
- 邊緣AI的發展為更智能、更可持續的技術鋪平道路
- 每台智能體PC,都是AI時代的新入口
- IAR作為Qt Group獨立BU攜兩項重磅汽車電子應用開發方案首秀北京車展
- 構建具有網絡彈性的嵌入式係統:來自行業領袖的洞見
- 數字化的線性穩壓器
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
Future
GFIVE
GPS
GPU
Harting
HDMI
HDMI連接器
HD監控
HID燈
I/O處理器
IC
IC插座
IDT
IGBT
in-cell
Intersil
IP監控
iWatt
Keithley
Kemet
Knowles
Lattice
LCD
LCD模組
LCR測試儀
lc振蕩器
Lecroy
LED
LED保護元件
LED背光



