<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > STM32的GPIO結構圖分析

STM32的GPIO結構圖分析

作者: 時(shí)間:2018-09-13 來(lái)源:網(wǎng)絡(luò ) 收藏

  1、結構圖

本文引用地址:http://dyxdggzs.com/article/201809/391839.htm

  共有8中設置模式:輸入浮空、輸入上拉、輸入下拉、模擬輸入、開(kāi)漏輸出、推挽式輸出、推挽式復用功能,開(kāi)漏復用功能,共4種輸入,2種輸入,2種復用功能。

  2、模式說(shuō)明

 ?、俑】蛰斎?/p>

  圖中施密特觸發(fā)器是開(kāi)啟的,IO口的狀態(tài)可以直接送到輸入寄存器中,CPU可以直接讀取輸入寄存器;

  在上圖中,陰影的部分處于不工作狀態(tài),尤其是下半部分的輸出電路,實(shí)際上是與端口處于隔離狀態(tài)。

  黃色的高亮部分顯示了數據傳輸通道,外部的電平信號通過(guò)左邊編號1的IO端口進(jìn)入,經(jīng)過(guò)編號2的施密特觸發(fā)器的整形送入編號3的輸入數據寄存器,在輸入數據寄存器的另一端編號4,CPU可以隨時(shí)讀出IO端口的電平狀態(tài)。

 ?、谏侠斎?/p>

  上圖是帶上拉輸入模式的配置。與前面的浮空輸入模式相比,僅僅是在數據通道上部,接入了一個(gè)上拉電阻,根據STM32的數據手冊,這個(gè)上拉電阻阻值介于30K~50K。

  同樣,CPU可以隨時(shí)在輸入數據寄存器的另一端,讀出IO端口的電平狀態(tài)。

 ?、巯吕斎?/p>

 ?、苣M輸入

  施密特觸發(fā)器是關(guān)閉的,信號直接到ADC輸入;

  STM32的模擬輸入通道的配置則更加簡(jiǎn)單,信號從左邊編號1的端口進(jìn)入,從右邊編號2的一端直接進(jìn)入ADC模塊。

  這里我們看到所有的上拉、下拉電阻和施密特觸發(fā)器,均處于斷開(kāi)狀態(tài),因此輸入數據寄存器將不能反映端口上的電平狀態(tài),也就是說(shuō),模擬輸入配置下,CPU不能在輸入數據寄存器上讀到有效的數據。

 ?、蓍_(kāi)漏輸出模式

  當CPU在編號1端通過(guò)“位設置/清楚寄存器”或“輸出數據寄存器”寫(xiě)入數據后,該數據位通過(guò)編號2的輸出控制電路傳送到編號4的IO端口。

  如果CPU寫(xiě)入的是邏輯1,則編號3的N-MOS管將處于關(guān)閉狀態(tài),此時(shí)IO端口的電平將由外部的上拉電阻決定,如果CPU寫(xiě)入的是邏輯0,則編號3的N-MOS管將處于開(kāi)啟狀態(tài),此時(shí)IO端口的電平被編號3的N-MOS管拉到了VSS的零電位。

  在上圖的上半部,施密特觸發(fā)器處于開(kāi)啟狀態(tài),這意味著(zhù)CPU可以在“輸入數據寄存器”的另一端,隨時(shí)監控IO端口的狀態(tài);通過(guò)這個(gè)特性,還實(shí)現了虛擬的IO端口雙向通信,只要CPU輸出邏輯1,由于編號3的N-MOS管處于關(guān)閉狀態(tài),IO端口的電平將完全由外部電路決定,因此,CPU可以在“輸入數據寄存器”讀到外部電路的信號,而不是它自己輸出的邏輯1。

  GPIO口的輸出模式下,有3種輸出速度可選(2MHz、10MHz和50MHz),這個(gè)速度是指GPIO口驅動(dòng)電路的響應速度,而不是輸出信號的速度,輸出信號的速度與程序有關(guān)(芯片內部在IO口的輸出部分安排了多個(gè)響應速度不同的輸出驅動(dòng)電路,用戶(hù)可以根據自己的需要選擇合適的驅動(dòng)電路)。通過(guò)選擇速度來(lái)選擇不同的輸出驅動(dòng)模塊,達到最佳的噪聲控制和降低功耗的目的。高頻的驅動(dòng)電路,噪聲也高,當不需要高的輸出頻率時(shí),請選用低頻驅動(dòng)電路,這樣非常有利于提高系統的EMI性能。當然如果要輸出較高的頻率的信號,但卻選用了較低頻率的驅動(dòng)模塊,很可能會(huì )得到失真的輸出信號。

 ?、揲_(kāi)漏輸出復用功能

 ?、咄仆燧敵瞿J?/p>

 ?、嗤仆鞆陀幂敵瞿J?/p>

  GPIO推挽復用輸出模式,編號2的輸出控制電路的輸入,與復用功能的輸出端相連,此時(shí)輸出數據寄存器被從輸出通道斷開(kāi)了,并和片上外設的輸出信號連接。我們將GPIO配置成復用輸出功能后,如果外設沒(méi)有被激活,那么它的輸出將不確定,其它部分與前述模式一致,包括對“輸入數據寄存器”的讀取。

  3、應用場(chǎng)合

 ?、偕侠斎?、下拉輸入可以用來(lái)檢測外部信號;例如,按鍵等;

 ?、诟】蛰斎肽J?,由于輸入阻抗較大,一般把這種模式用于標準通信協(xié)議的I2C、USART的接收端;

 ?、燮胀ㄍ仆燧敵瞿J揭话銘迷谳敵鲭娖綖?和3.3V的場(chǎng)合。而普通開(kāi)漏輸出模式一般應用在電平不匹配的場(chǎng)合,如需要輸出5V的高電平,就需要在外部一個(gè)上拉電阻,電源為5V,把GPIO設置為開(kāi)漏模式,當輸出高阻態(tài)時(shí),由上拉電阻和電源向外輸出5V電平。

 ?、軐τ谙鄳膹陀媚J?,則是根據GPIO的復用功能來(lái)選擇,如GPIO的引腳用作串口的輸出,則使用復用推挽輸出模式。如果用在IC、SMBUS這些需要線(xiàn)與功能的復用場(chǎng)合,就使用復用開(kāi)漏模式。

 ?、菰谑褂萌魏我环N開(kāi)漏模式時(shí),都需要接上拉電阻。



關(guān)鍵詞: STM32 GPIO

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>