新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > STM8 通用輸入輸出口--GPIO

        STM8 通用輸入輸出口--GPIO

        作者: 時間:2016-11-11 來源:網絡 收藏
        簡介

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

        本文引用地址:http://www.104case.com/article/201611/316708.htm

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

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

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

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

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

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

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

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

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

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

        施密特觸發器
        部分I/O 口包括一個內嵌的輸入施密特觸發器。可以通過ADC_TDR 施密特觸發器禁止寄存器來使能/ 禁止施密特觸發器。

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

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



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 健康| 东乡族自治县| 定陶县| 伊宁县| 永宁县| 鹤山市| 会宁县| 察隅县| 郓城县| 四会市| 麻栗坡县| 南投市| 绥化市| 宁国市| 武冈市| 鹰潭市| 铁力市| 上饶县| 安吉县| 鹤岗市| 开化县| 富阳市| 霸州市| 康马县| 福泉市| 宁国市| 印江| 荥阳市| 时尚| 嘉祥县| 那曲县| 黄浦区| 南丹县| 泰来县| 昌邑市| 南召县| 资中县| 宜宾市| 色达县| 洪江市| 伊川县|