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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > STM32的功能引腳重映射和復(fù)用功能

          STM32的功能引腳重映射和復(fù)用功能

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

          Stm32的引腳一般應(yīng)用:

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

          模擬輸入_AIN ——應(yīng)用ADC模擬輸入,或者低功耗下省電。

          浮空輸入_IN_FLOATING ——可以做KEY識別,RX1

          開漏輸出_Out_OD——應(yīng)用于I2C總線; (STM32開漏輸出若外部不接上拉電阻只能輸出0)

          STM32中有很多內(nèi)置外設(shè)的輸入輸出引腳都具有重映射(remap)的功能,本文對一些在使用引腳重映射時所遇到的有關(guān)問題加以說明。

          我們知道每個內(nèi)置外設(shè)都有若干個輸入輸出引腳,一般這些引腳的輸出腳位都是固定不變的,為了讓設(shè)計工程師可以更好地安排引腳的走向和功能,在 STM32中引入了外設(shè)引腳重映射的概念,即一個外設(shè)的引腳除了具有默認(rèn)的腳位外,還可以通過設(shè)置重映射寄存器的方式,把這個外設(shè)的引腳映射到其它的腳 位。下面是STM32F103xC中有關(guān)USART3引腳的摘要片段;

          從這里可以看出,USART3_TX的默認(rèn)引出腳是PB10,USART3_RX的默認(rèn)引出腳是PB11;但經(jīng)過重映射后,可以變更USART3_TX的引出腳為PD8,變更USART3_RX的引出腳為PD9。

          STM32中的很多內(nèi)置外設(shè)都具有重映射的功能,比如USART、定時器、CAN、SPI、I2C等,詳細(xì)請看STM32參考手冊(RM0008)和STM32數(shù)據(jù)手冊。

          有些模塊(內(nèi)置外設(shè))的重映射功能還可以有多種選擇,下面是RM0008上有關(guān)USART3輸入輸出引腳的重映射功能表:



          從這個表中可以看出,USART3的TX和RX引腳默認(rèn)的引出腳位是PB10和PB11,根據(jù)配置位的設(shè)置,可以重映射到PC10和PC11,還可以重映射到PD8和PD9。

          一個模塊的功能引腳不管是從默認(rèn)的腳位引出還是從重映射的腳位引出,都要通過GPIO端口模塊實現(xiàn),相應(yīng)的GPIO端口必須配置為輸入(對應(yīng)模塊的 輸入功能,如USART的RX)或復(fù)用輸出(對應(yīng)模塊的輸出功能,如USART的TX),對于輸出引腳,可以按照需要配置為推挽復(fù)用輸出或開漏復(fù)用輸出。



          上圖是STM32的GPIO端口模塊,使用復(fù)用功能時的配置。從圖中可以看出,配置為復(fù)用輸出時,該端口對應(yīng)的GPIO輸出功能將不起作用。例如當(dāng)配置PB10對應(yīng)的引腳為復(fù)用輸出功能時,操作PB10對應(yīng)的輸出寄存器將不影響引腳上的信號。

          從圖中還可以看出,普通的GPIO端口輸入功能與復(fù)用的輸入功能的配置方式?jīng)]有分別,這意味著在使用引腳的復(fù)用輸入功能時,可以在這個引腳的輸入寄 存器上讀出引腳上的信號。例如在使能了USART3模塊時,可以讀GPIOB_IDR寄存器,得到PB11信號線上的當(dāng)前狀態(tài)。

          有不少引腳上配備了來自多個模塊的復(fù)用功能引出腳,例如本文第一張圖中顯示的PB10,默認(rèn)復(fù)用功能就有I2C2_SCL和USART3_TX兩個功能,TIM2重映射后,TIM2_CH3也使用PB10的復(fù)用功能。

          在使用引腳的復(fù)用功能時,需要注意在軟件上只可以使能一個外設(shè)模塊,否則在引出腳上可能產(chǎn)生信號沖突。例如,如果使能了USART3模塊,同時沒有 對USART3進(jìn)行重映射配置,則不可以使能I2C2模塊;同理如果需要使用I2C2模塊,則不能使能USART3模塊。但是如果配置了USART3的引 腳重映射,USART3的TX和RX信號將從PC10和PC11,或PD8和PD9引出,避開了I2C2使用的PB10和PB11,這時就可以同時使用 I2C2模塊和USART3模塊了。

          USART3模塊共有5個信號,分別為TX、RX、CK、CTS和RTS,從上面給出的第二張圖中可以看出,重映射是對所有信號同時有效。

          這5個信號中,在使能了USART3模塊后,只有TX和RX是始終與對應(yīng)的引出腳相連,而其它3個信號分別有獨(dú)立的控制位,控制它們是否與外部引腳 相連,如果程序中不使用某個信號的功能,則可以關(guān)閉這個信號的功能,對應(yīng)的引腳可以做為其它功能的引出腳。例如,當(dāng)關(guān)閉了USART3的CK、CTS和 RTS功能并且沒有重映射USART3時,PB12、PB13和PB14可以作為通用輸入輸出端口使用,也可以作為其它模塊的復(fù)用功能引出腳。

          下面這張圖是一個內(nèi)部控制連接的等效示意圖,它并不表示真正的內(nèi)部連接,但可以有效地幫助理解重映射和復(fù)用引腳的概念。圖中右邊引出的信號,分別連接到了本文第三張圖的輸入輸出模塊。




          關(guān)鍵詞: STM32重映射復(fù)用功

          評論


          技術(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); })();