最近在看數據手冊的時候,發現STM32的GPIO輸入輸出模式的配置種類有8種之多(輸入和輸入各4種):
(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復用開漏輸出
(8)GPIO_Mode_AF_PP復用推挽輸出
我們平時接觸的最多的也就是推挽輸出、開漏輸出、上拉輸入這三種,但對于各種模式下IO口的內部電路和典型應用,STM32的數據手冊中也未曾做過詳細的說明和歸納。因此,這里收集了一些網上的資料,試圖做一總結。
推挽輸出:可以輸出高,低電平,連接數字器件; 推挽結構一般是指兩個三極管分別受兩互補信號的控制,總是在一個三極管導通的時候另一個截止。高低電平由IC的電源低定。
推挽電路是兩個參數相同的三極管或MOSFET,以推挽方式存在于電路中,各負責正負半周的波形放大任務,電路工作時,兩只對稱的功率開關管每次只有一個導通,所以導通損耗小、效率高。輸出既可以向負載灌電流,也可以從負載抽取電流。推拉式輸出級既提高電路的負載能力,又提高開關速度。
詳細理解:
推挽放大器的輸出級有兩個“臂”(兩組放大元件),一個“臂”的電流增加時,另一個“臂”的電流則減小,二者的狀態輪流轉換。對負載而言,好像是一個“臂”在推,一個“臂”在拉,共同完成電流輸出任務。當輸出高電平時,也就是下級負載門輸入高電平時,輸出端的電流將是下級門從本級電源經VT3拉出。這樣一來,輸出高低電平時,VT3 一路和 VT5 一路將交替工作,從而減低了功耗,提高了每個管的承受能力。又由于不論走哪一路,管子導通電阻都很小,使RC常數很小,轉變速度很快。因此,推拉式輸出級既提高電路的負載能力,又提高開關速度。
開漏輸出:輸出端相當于三極管的集電極。 要得到高電平狀態需要上拉電阻才行。 適合于做電流型的驅動,其吸收電流的能力相對強(一般20ma以內)。
開漏形式的電路有以下幾個特點:
1. 利用外部電路的驅動能力,減少IC內部的驅動。當IC內部MOSFET導通時,驅動電流是從外部的VCC流經R pull-up ,MOSFET到GND。IC內部僅需很下的柵極驅動電流。
2. 一般來說,開漏是用來連接不同電平的器件,匹配電平用的,因為開漏引腳不連接外部的上拉電阻時,只能輸出低電平,如果需要同時具備輸出高電平的功能,則需要接上拉電阻,很好的一個優點是通過改變上拉電源的電壓,便可以改變傳輸電平。比如加上上拉電阻就可以提供TTL/CMOS電平輸出等。(上拉電阻的阻值決定了邏輯電平轉換的沿的速度。阻值越大,速度越低功耗越小,所以負載電阻的選擇要兼顧功耗和速度。)
3. OPEN-DRAIN提供了靈活的輸出方式,但是也有其弱點,就是帶來上升沿的延時。因為上升沿是通過外接上拉無源電阻對負載充電,所以當電阻選擇小時延時就小,但功耗大;反之延時大功耗小。所以如果對延時有要求,則建議用下降沿輸出。
4. 可以將多個開漏輸出的Pin,連接到一條線上。通過一只上拉電阻,在不增加任何器件的情況下,形成“與邏輯”關系。這也是I2C,SMBus等總線判斷總線占用狀態的原理。補充:什么是“線與”?:
在一個結點(線)上,連接一個上拉電阻到電源VCC或VDD和n個NPN或NMOS晶體管的集電極C或漏極D,這些晶體管的發射極E或源極S都接到地線上,只要有一個晶體管飽和,這個結點(線)就被拉到地線電平上。因為這些晶體管的基極注入電流(NPN)或柵極加上高電平(NMOS),晶體管就會飽和,所以這些基極或柵極對這個結點(線)的關系是或非NOR邏輯。如果這個結點后面加一個反相器,就是或OR邏輯。
其實可以簡單的理解為:在所有引腳連在一起時,外接一上拉電阻,如果有一個引腳輸出為邏輯0,相當于接地,與之并聯的回路“相當于被一根導線短路”,所以外電路邏輯電平便為0,只有都為高電平時,與的結果才為邏輯1。
該圖中左邊的便是推挽輸出模式,其中比較器輸出高電平時下面的PNP三極管截止,而上面NPN三極管導通,輸出電平VS+;當比較器輸出低電平時則恰恰相反,PNP三極管導通,輸出和地相連,為低電平。右邊的則可以理解為開漏輸出形式,需要接上拉。
浮空輸入:對于浮空輸入,一直沒找到很權威的解釋,。
也有認為[2]:如果既要用于輸出,又要接收信號作輸入,無需改變該pin的工作模式,只需設定為浮空浮點狀態GPIO_Mode_IN_FLOATING ,但是讀的時候讀輸入寄存器(GPIOE-》IDR)的值。輸出值照樣設定,不過輸出pin腳可能要硬件上上拉。
由于浮空輸入一般多用于外部按鍵輸入,結合圖上的輸入部分電路,我理解為浮空輸入狀態下,IO的電平狀態是不確定的,完全由外部輸入決定,如果在該引腳懸空的情況下,讀取該端口的電平是不確定的。
上拉輸入/下拉輸入/模擬輸入:這幾個概念很好理解,從字面便能輕易讀懂。
復用開漏輸出、復用推挽輸出:可以理解為GPIO口被用作第二功能時的配置情況(即并非作為通用IO口使用)
最后總結下使用情況:
在STM32中選用IO模式
(1)浮空輸入_IN_FLOATING ——浮空輸入,可以做KEY識別,RX1
(2)帶上拉輸入_IPU——IO內部上拉電阻輸入
(3)帶下拉輸入_IPD—— IO內部下拉電阻輸入
(4)模擬輸入_AIN ——應用ADC模擬輸入,或者低功耗下省電
(5)開漏輸出_OUT_OD ——IO輸出0接GND,IO輸出1,懸空,需要外接上拉電阻,才能實現輸出高電平。當輸出為1時,IO口的狀態由上拉電阻拉高電平,但由于是開漏輸出模式,這樣IO口也就可以由外部電路改變為低電平或不變。可以讀IO輸入電平變化,實現C51的IO雙向功能
(6)推挽輸出_OUT_PP ——IO輸出0-接GND, IO輸出1 -接VCC,讀輸入值是未知的
(7)復用功能的推挽輸出_AF_PP ——片內外設功能(I2C的SCL,SDA)
(8)復用功能的開漏輸出_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;
上一篇:STM32單片機的重映射與地址映射的使用方法及步驟
下一篇:基于STM32單片機啟動文件的作用和啟動過程解析
推薦閱讀
史海拾趣
長園維安始終關注環保和可持續發展。公司積極推行綠色制造和循環經濟模式,降低生產過程中的能耗和排放。同時,長園維安還注重產品環保性能的研發和改進,為客戶提供更加環保、節能的產品。這些努力使長園維安在電子行業中樹立了綠色發展的典范。
面對電子行業快速發展的挑戰,長園維安積極應對,進行轉型升級。公司加大研發投入,開發更加智能化、集成化的產品,滿足市場需求。同時,長園維安還注重人才培養和引進,建立了一支高素質的技術和管理團隊。這些努力使長園維安在激烈的市場競爭中保持領先地位。
在光學技術不斷革新的背景下,CBC株式會社于1979年成功研制出第一只手動變焦鏡頭。這一創新產品不僅提升了鏡頭的拍攝效果和靈活性,還進一步鞏固了CBC在光學領域的領先地位。手動變焦鏡頭的推出,為CBC贏得了更多客戶的青睞,也為公司的后續發展注入了新的動力。
Chip Supply Micro Devices非常重視產學研合作,積極與高校和研究機構建立合作關系。通過與高校和研究機構的合作,公司獲得了前沿的技術支持和人才培養資源。同時,公司還設立了專門的研發團隊,專注于微電子器件領域的創新研究。這些合作和研發活動為公司帶來了源源不斷的技術創新和產品升級,為公司的持續發展提供了強大動力。
在微電子器件領域,Chip Supply Micro Devices憑借一項創新技術,成功打破了市場格局。公司研發出了一種新型低功耗芯片,不僅提高了電子設備的性能,還降低了能源消耗。這一技術突破使得Chip Supply Micro Devices迅速獲得了市場的認可,產品銷量激增。公司借此機會擴大生產規模,加大研發投入,進一步鞏固了其在微電子器件市場的地位。
摘 要: 本文利用FPGA完成了8路同步話音及16路異步數據的復接與分接過程,并且實現了復接前的幀同步捕獲和利用DDS對時鐘源進行分頻得到所需時鐘的過程。該設計的控制模塊由VHDL語言完成,最后利用Xilinx公司的ISE工具和Modelsim工具完成了該設計的 ...… 查看全部問答∨ |
小弟正在學習設計簡單的汽車線控轉向系統。打算只使用兩個電機(路感模擬電機和轉向電機各一個),成本問題,但是別的信息看來,實際汽車實際用的是4個電機(2個路感模擬電機和2個轉向電機)。不太明白每個電機設計兩個就是為了更加安全,更加有保 ...… 查看全部問答∨ |
[img]file:///F:/Program%20Files/Tencent/QQ/Users/382864860/Image/@760GXD(G96Y24}MHQ[1DN0.jpg[/img] 昨天編程的時候出現了這個問題啊,弄了一天還是沒弄好。希望大家幫幫忙!! 還有,用到事件管理器(EVA)的時候,要出現PWM波形,使用比 ...… 查看全部問答∨ |
|
在使用GSM模塊的時候,有一個擔心: 在我發送短信的時候,消息發送動作已經完成,但是模塊還沒有返回OK時,如果恰巧有新的短信到來,會不會先返回一個收到短信的 “+CMTI: "SM",x”的信息,而后再返回發送短信成功的 “+CMGS: xxx”及 OK 信息 ...… 查看全部問答∨ |
WinCE5 CEC文件中如何做把幾個組件做成Choose 1的效果。 比如:File System-Internal ( Choose 1 ) 是如何做出來的。 … 查看全部問答∨ |
uc/os-II中任務調度是分時的還是占先式? uc/os-II中設計一個任務需要考慮哪些問題? uc/os-II中任務通信有哪些方式?… 查看全部問答∨ |
現已經安裝vs2005,想用wince5來開發程序,暫時沒有設備,使用想用模擬器,但是vs2005里沒有wince5的模擬器,各位大俠請指點小弟,不甚感激!!!… 查看全部問答∨ |
st72324的pf1為蜂鳴器輸出口,但我該怎么設置才能使他為1時就輸出,怎么屏蔽掉它的普通io口功能?現在只看到mccbcr里有控制其輸出頻率的,沒看到控制蜂鳴器功能選擇的寄存器。像以前有些單片機如holtek的,是在掩膜選項里選擇是蜂鳴器輸出還是 ...… 查看全部問答∨ |
請教各位大神:怎么實現ZigBee網絡的樹型組網,比如:協調節點下放2個路由節點,每個路由節點下放2個終端節點(終端節點用來測溫) 這樣的簡單樹型網絡 怎么構建? 謝謝!~… 查看全部問答∨ |
設計資源 培訓 開發板 精華推薦
- 高通攜手中國“汽車朋友圈”亮相2025上海車展: 加速駕駛輔助普惠,推動艙駕創新升級
- 工業市場正在快速回暖,德州儀器如何重塑電力電子市場?
- 特斯拉:美國交付的Model Y/3電池包已實現100%美國生產
- 地平線與博世深化合作,攜手為多家車企提供輔助駕駛產品
- 強化中國市場戰略布局,德州儀器正靈活應對全球關稅挑戰
- Molex莫仕通過本地合作和創新加強支持中國汽車行業
- 貿澤開售Texas Instruments適用于高分辨率AR HUD的 全新DLP4620S-Q1 0.46"汽車數字微鏡器件
- ROHM推出高功率密度的新型SiC模塊,將實現車載充電器小型化!
- 用上車規級UFS 4.0,讓出行變得高效且可靠
- 車載測試技術解析:聚焦高帶寬、多通道同步采集與協議分析
- 答題贏好禮|平穩控制與位置服務中至關重要的 ADI MEMS IMU
- 看視頻贏京東卡 | 泰享實測之水哥秘籍第二期
- TI 金剛狼 LaunchPad系列課程,搶開發板&精美好禮!
- 關注有禮 | 泰克中端示波器增“重”計劃
- 【已結束】直播|Microchip MPU解決方案及典型應用
- 齊分享,月月有獎第25期活動華麗升級來襲
- TTI&TE直播:傳感器在工業電機里的發展及最新應用
- 安世半導體&世平集團 高效能&小型化, Nexperia MOSFET的5G解決方案 觀看、下載 闖關贏好禮!
- 想要Get更好的服務?TE人工客服說:“我可以”
- 聽技術大咖侃談Type-C 測量那些事兒—— 即刻獲取能量,輕松闖關贏禮品!