<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > STM8 通用輸入輸出口--GPIO

          STM8 通用輸入輸出口--GPIO

          作者: 時間:2016-11-11 來源:網(wǎng)絡(luò) 收藏
          簡介

          通用輸入/ 輸出口用于芯片和外部進行數(shù)據(jù)傳輸。一個IO端口可以包括多達8 個引腳,每個引腳可以被獨立編程作為數(shù)字輸入或者數(shù)字輸出口。另外部分口還可能會有如模擬輸入,外部中斷,片上外設(shè)的輸入/ 輸出等復(fù)用功能。但是在同一時刻僅有一個復(fù)用功能可以映射到引腳上。復(fù)用功能的映射是通過選項字節(jié)控制的。請參考數(shù)據(jù)手冊關(guān)于選項字節(jié)的描述。
          每個端口都分配有一個輸出數(shù)據(jù)寄存器,一個輸入引腳寄存器,一個數(shù)據(jù)方向寄存器,一個選擇寄存器,和一個配置寄存器。一個I/O 口工作在輸入還是輸出是取決于該口的數(shù)據(jù)方向寄存器的狀態(tài)。

          本文引用地址:http://www.ex-cimer.com/article/201611/316708.htm

          GPIO主要功能
          ● 端口的各個位可以被單獨配置
          ● 可選擇的輸入模式:浮動輸入和帶上拉輸入
          ● 可選擇的輸出模式:推挽式輸出和開漏輸出
          ● 數(shù)據(jù)輸入和輸出采用獨立的寄存器
          ● 外部中斷可以單獨使能和關(guān)閉
          ● 輸出擺率控制用以減少EMC噪聲
          ● 片上外設(shè)的I/O 功能復(fù)用
          ● 當(dāng)作為模擬輸入時可以關(guān)閉輸入施密特觸發(fā)器來降低功耗
          ● 在數(shù)據(jù)輸出鎖存時支持讀-修改-寫
          ● 輸入兼容 5V 電壓
          ● I/O 口工作電壓范圍為1.6 V 到V DDIOmax

          I/O 的配置和使用
          每一個端口都有一個輸出數(shù)據(jù)寄存器 (ODR),一個引腳輸入寄存器 (IDR) 和一個數(shù)據(jù)方向寄存器 (DDR) 總是同相關(guān)的。
          控制寄存器1(CR1)和控制寄存器2(CR2)用于對輸入/ 輸出進行配置。任何一個I/O 引腳可以通過對DDR,ODR,CR1 和CR2寄存器的相應(yīng)位進行編程來配置。
          寄存器中的位n對應(yīng)于口的引腳 n 。
          各種不同配置總結(jié)。
          IO 口配置表

          輸入模式
          將DDRx 位清零就選擇了輸入模式。在該模式下讀IDR 寄存器的位將返回對應(yīng)I/O 引腳上的電平值。
          來了解關(guān)于模擬輸入,外部中斷,和施密特觸發(fā)使能/ 關(guān)閉的細節(jié)。
          理論上可以通過軟件配置得到四種不同的輸入模式:懸浮不帶中斷輸入,懸浮帶中斷輸入,上拉不帶中斷輸入和上拉帶中斷輸入。但是在實際情況下不是所有的口都具有外部中斷能力和上拉,用戶應(yīng)參考數(shù)據(jù)手冊中關(guān)于每個引腳的實際硬件性能描述來了解更多細節(jié)。

          輸出模式
          將DDRx 位置1就選擇了輸出模式。在該模式下向ODR寄存器的位寫入數(shù)據(jù)將會通過鎖存器輸出對應(yīng)數(shù)字值到I/O 口。讀IDR 的位將會返回相應(yīng)的I/O 引腳電平值。通過軟件配置CR1,CR2寄存器可以得到不同的輸出模式:上拉輸出,開漏輸出。
          復(fù)位后的默認(rèn)配置
          復(fù)位之后,所有的引腳都是懸浮輸入模式。

          沒有使用的引腳
          沒有使用的I/O 引腳必須連接到一個固定的電平值。或者是上拉或者是下拉。

          功耗模式
          低功耗模式對GPIO口的影響

          輸入模式的詳述
          復(fù)用功能輸入
          部分I/O 口可以被用作復(fù)用功能輸入。例如:可以被用來作為輸入到定時器的輸入捕捉口。復(fù)用的輸入功能是不會自動選擇的,用戶可以通過寫相應(yīng)的外設(shè)寄存器的控制位來選擇復(fù)用功能。

          對于復(fù)用功能的輸入,用戶必須通過配置DDR和CR1 寄存器設(shè)置將對應(yīng)的I/O 口設(shè)為為懸浮或是上拉輸入。

          中斷功能
          用戶可以在I/O 引腳為輸入模式時通過設(shè)置Px_CR2 寄存器的相應(yīng)位來配置某個I/O 作為外部輸入中斷模式。在該配置下,I/O 引腳上的一個信號沿或是低電平會產(chǎn)生一個中斷請求。
          在EXTI_CR[2:1]寄存器中對于每一個中斷向量都可以獨立編程為上升沿或下降沿觸發(fā)。
          外部中斷只有在對應(yīng)I/O 口被設(shè)置為輸入模式下才有效。
          中斷屏蔽
          可以通過對Px_CR2 寄存器的相應(yīng)位進行編程來單獨使能/ 關(guān)閉外部中斷功能。復(fù)位后外部中斷是關(guān)閉的。

          模擬通道
          DC外設(shè)可以選擇某些I/O 口作為模擬輸入通道。如下面一節(jié)描述,當(dāng)使用模擬通道的時候,DC_TDR 寄存器的輸入施密特觸發(fā)器必須被關(guān)閉。
          推薦的和不推薦的模擬輸入配置

          施密特觸發(fā)器
          部分I/O 口包括一個內(nèi)嵌的輸入施密特觸發(fā)器??梢酝ㄟ^ADC_TDR 施密特觸發(fā)器禁止寄存器來使能/ 禁止施密特觸發(fā)器。

          輸出模式詳述
          復(fù)用功能的輸出
          復(fù)用輸出功能為外設(shè)輸出到外部或者I/O 引腳提供一個方便的操作方法。當(dāng)復(fù)用功能使能時,復(fù)用功能模塊接管了輸出鎖存寄存器(Px_ODR) 并強制Px_ODR 相應(yīng)的位為1。
          復(fù)用輸出功能可以是上拉或者開漏輸出,取決于外設(shè)本身和控制寄存器1(Px_CR1) ,輸出擺率取決于控制寄存器2 (Px_CR2)的值。
          例如:
          考慮到要達到最佳性能,SPI輸出引腳必須設(shè)置為上拉,快速擺率。UART_Tx可以被配置為或者是上拉或者是開漏帶外部上拉來實現(xiàn)多從機的配置。

          擺率控制
          輸出擺率可以使用CR2 的相應(yīng)位通過軟件控制。置位CR相應(yīng)位選擇為10MHz的輸出頻率。該功能既可以用在開漏也可以用在帶上拉的輸出模式I/O 口,輸出類型為O3 或者O4。請參考引腳描述表來了解每個口的輸出類型。



          關(guān)鍵詞: STM8輸入輸出口GPI

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();