STM32學(xué)習(xí)筆記之 重映射功能
最近在學(xué)習(xí)STM32,在BZ上一篇關(guān)于的串口通信文章里有這么一段代碼:RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD | RCC_APB2Periph_AFIO,ENABLE);
本文引用地址:http://m.butianyuan.cn/article/201611/322907.htm當(dāng)初是參考開發(fā)的里子寫的一直對GPIOD或上“RCC_APB2Periph_AFIO”這句話的意思沒搞懂,通過這幾天在網(wǎng)上查找資料和看手冊,終于高清楚了,不敢獨(dú)享,希望能對跟我一樣的新手有所幫助吧o(∩_∩)o...
STM32上有很多I/O口,也有很多的內(nèi)置外設(shè)想I2C,ADC,ISP,USART等 ,為了節(jié)省引出管腳,這些內(nèi)置外設(shè)基本上是與I/O口共用管腳的,也就是I/O管腳的復(fù)用功能。但是STM32還有一特別之處就是:很多復(fù)用內(nèi)置的外設(shè)的I/O引腳可以通過重映射功能,從不同的I/O管腳引出,即復(fù)用功能的引腳是可通過程序改變的。知道了這些我們就不難理解上面代碼的意思了,程序中用到的USART2外設(shè)的TX,RX分別對應(yīng)PA2,PA3,但是我的學(xué)習(xí)板上的PA2,PA3引腳接了其他設(shè)備,但是為了還要用USART2,“RCC_APB2Periph_GPIOD |RCC_APB2Periph_AFIO”就打開了GPIOD重映射功能把USART2設(shè)備的TX,RX映射到PD5,PD6上,我們在這兩個引腳上接上MAX232串口芯片就可以使用USART2串口通信了。那為看官該問:“USART2是不是可以映射到任意管腳呢?”答案是否定的,它只能映射到固定的管腳,下圖是USART2重映射表
其他外設(shè)的重映射可以參考STM32100X手冊。
為了節(jié)省IO資源單片機(jī)會在一個IO上復(fù)用很多功能,一般的單片機(jī)用到 一個功能后就能再用兩外復(fù)用的功能了,這就體現(xiàn)出了STM32 GPIO的強(qiáng)大功能了,我們用重映射的方法把其中一個外設(shè)映射到其他IO腳上,這樣就可以充分利用片內(nèi)資源!
評論