STM32埠復用 埠重對映

2021-10-06 16:13:33 字數 1697 閱讀 1650

埠復用功能

stm32有很多的內部外設,這些外設的外部引腳都是與gpio復用的。也就是說,乙個gpio如果可以復用為內部外設的功能引腳,那麼當這個gpio作為內部外設使用的時候,就叫做復用。

譬如,mcu都有串列埠,stm32有好幾個串列埠。比如說stm32f103zet6有5個串列埠,我們可以查手冊知道,串列埠1的引腳對應的io位pa9和pa10. pa9和pa10預設功能是gpio,所以當pa9和pa10引腳作為串列埠1的tx和rx引腳使用的時候,那就是埠復用。

復用埠初始化有3個步驟:①gpio埠時鐘使能。②復用的外設時鐘使能。③埠模式配置。

所以,我們在使用復用功能的時候,最少要使能2個時鐘:

①gpio時鐘使能

②復用的外設時鐘使能

同時要初始化gpio以及復用外設功能。

埠重對映

為了使不同器件封裝的外設io功能數量達到最優,可以把一些復用功能重新對映到其他一些引腳上。stm32中有很多內部外設的輸入輸出引腳都具有重對映的功能(remap)。我們知道每個內部外設都有若干個輸入輸出引腳,一般這些引腳的輸出埠都是固定不變的,為了讓設計工程師可以更好地安排引腳的走向和功能,在stm32中引入了外設引腳重對映的概念,即乙個外設的引腳除了具有預設的埠外,還可以通過設定重對映暫存器的方式,把這個外設的引腳對映到其他的埠。簡單的講就是把管腳的外設功能對映到另乙個管腳,但不是可以隨便對映的。譬如,串列埠1:

使用重對映功能的4個步驟:

①使能gpio時鐘

②使能串列埠1時鐘

③使能afio時鐘

④開啟重對映

這樣就將串列埠的tx和rx重對映到管腳pb6和pb7上面了。至於有哪些功能可以重對映,大家除了檢視中文參考手冊之外,還可以從gpio_pinremapconfig函式入手檢視第乙個入口引數的取值範圍可以得知。在stm32f10x_gpio.**件中定義了取值範圍為下面巨集定義的識別符號,這裡我們貼一小部分:

從上面可以看出,usart1只有一種重對映,而對於usart3存在部分重對映完全重對映。所謂部分重對映就是部分管腳和預設的是一樣的,而部分管腳是重新對映到其他管腳。而完全重對映就是所有管腳都重新對映到其他管腳。譬如usart3重對映:

部分重對映就是pb10,pb11,pb12重對映到pc10,pc11,pc12上。而pb13和pb14和沒有重對映情況是一樣的,都是usart3_cts和usart3_rts對應管腳。完全重對映就是將這兩個腳重新對映到pd11和pd12上去。我們使用usart3的部分重對映,呼叫函式方法為:

gpio_pinremapconfig(gpio_partialremap_usart3,enable);

STM32埠復用和重對映

stm32的引腳可設定為可設定為 普通io功能 復用功能 重對映功能。不過普通io功能 復用功能用得比較多。復用 在tsm32裡面,大部分的引腳都是有gpio復用功能,也就是說,乙個 gpio如果可以復用為內建外設的功能引腳,那麼當這個 gpio 作為內建外設使用的時候,就叫做復用。例如圖下方框 串...

STM32 埠重對映基礎知識

一 埠重對映 二 引腳重對映配置過程 串列埠1為例 使能gpio時鐘 重對映後的io 使能功能外設時鐘 例如串列埠io 使能afio時鐘。重對映必須使能afio時鐘 rcc apb2periphclockcmd rcc apb2periph afio,enable 開啟重對映 gpio pinrem...

STM32之埠復用與重對映

首先來說下什麼是埠復用。stm32有很多的內建外設,這些外設的外部引腳都是與gpio復用的。也就是說,乙個gpio如果可以復用為內建外設的功能引腳,那麼當這個gpio作為內建外設使用的時候,就叫做復用。其實說白了,簡單易懂的說,就是某些普通的外設引腳也可以用來其它功能。比如說那我使用的正點原子哥的板...