埠復用和重對映

2021-08-07 09:11:07 字數 1996 閱讀 9536

stm32

有很多的內建外設,這些外設的外部引腳都是與

gpio

復用的。也就是說,乙個

gpio

如果可以復用為內建外設的功能引腳,那麼當這個

gpio

作為內建外設使用的時候,就叫做復用。

埠復用配置過程-

以pa9,pa10

配置為串列埠1為例

gpio

埠時鐘使能。

rcc_apb2periphclockcmd(rcc_apb2periph_gpioa,enable);

復用外設時鐘使能,比如你要將埠

pa9,pa10

復用為串列埠,所以要使能串列埠時鐘。

rcc_apb2periphclockcmd(rcc_apb2periph_usart1, enable);

埠模式配置。

gpio_init

()函式。

rcc_apb2periphclockcmd(rcc_apb2periph_gpioa, enable);//①io時鐘使能

rcc_apb2periphclockcmd(rcc_apb2periph_usart1, enable);//②外設時鐘使能

//③初始化io為對應的模式

gpio_initstructure.gpio_pin = gpio_pin_9; 復用推挽輸出

gpio_initstructure.gpio_speed = gpio_speed_50mhz;

gpio_initstructure.gpio_mode = gpio_mode_af_pp;

gpio_init(gpioa, &gpio_initstructure);

gpio_initstructure.gpio_pin = gpio_pin_10;//pa10 pa.10 浮空輸入

gpio_initstructure.gpio_mode = gpio_mode_in_floating;//浮空輸入

gpio_init(gpioa, &gpio_initstructure);

埠重對映

每個內建外設都有若干個輸入輸出引腳,一般這些引腳的輸出埠都是固定不變的,為了讓設計工程師可以更好地安排引腳的走向和功能,在

stm32

中引入了外設引腳重對映的概念,即乙個外設的引腳除了具有預設的埠外,還可以通過設定重對映暫存器的方式,把這個外設的引腳對映到其它的埠。

為了使不同器件封裝的外設

io功能數量達到最優,可以把一些復用功能重新對映到其他一些引腳上。

stm32

中有很多內建外設的輸入輸出引腳都具有重對映

(remap)

的功能。

引腳重對映配置過程(串列埠

1為例):

1.使能

gpio

時鐘(重對映後的

io);

2.使能功能外設時鐘(例如串列埠

1);

3.使能

afio

時鐘。重對映必須使能

afio

時鐘:rcc_apb2periphclockcmd(rcc_apb2periph_afio, enable);

4.開啟重對映:

gpio_pinremapconfig

(gpio_remap_usart1,enable);

根據第乙個引數,來確定是部分重對映還是全部重對映

哪些情況需要開啟

afio

輔助功能時鐘?

對暫存器

afio_mapr

,afio_exticrx

和afio_evcr

進行讀寫操作前,應當首先開啟

afio

時鐘。

l. afio_mapr

:配置復用功能重對映

2.afio_exticrx:

配置外部中斷線對映

3.afio_evcr:  

配置eventout

事件輸出

埠復用和重對映

stm32除核心外還有很多內建外設,如串列埠,adc,與gpio復用 一些gpio可以復用為內建外設的功能引腳,如 pa9,pa10可復用為功能串列埠1的傳送接收引腳 晶元資料手冊 gpio埠復用時鐘使能 rcc apb2periphclockcmd rcc apb2periph gpio,enab...

STM32埠復用和重對映

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

STM32埠復用 埠重對映

埠復用功能 stm32有很多的內部外設,這些外設的外部引腳都是與gpio復用的。也就是說,乙個gpio如果可以復用為內部外設的功能引腳,那麼當這個gpio作為內部外設使用的時候,就叫做復用。譬如,mcu都有串列埠,stm32有好幾個串列埠。比如說stm32f103zet6有5個串列埠,我們可以查手冊...