STM32學習筆記 埠復用和重對映

2021-10-04 01:52:27 字數 2319 閱讀 5952

乙個 gpio如果可以復用為內建外設的功能引腳,那麼當這個 gpio 作為內建外設使用的時候,就叫做復用

比如說 stm32f103rbt6 的串列埠 1 的引腳對應的 io 為 pa9,pa10.pa9,pa10 預設功能是 gpio,所以當pa9,pa10 引腳作為串列埠 1 的 tx,rx 引腳使用的時候,那就是埠復用。

復用埠初始化有幾個步驟:

1) gpio 埠時鐘使能。

rcc_apb2periphclockcmd

(rcc_apb2periph_gpioa, enable)

;

2) 復用的外設時鐘使能。比如你要將埠 pa9,pa10 復用為串列埠,所以要使能串列埠時鐘。

rcc_apb2periphclockcmd

(rcc_apb2periph_usart1, enable)

;

3) 埠模式配置。 在 io 復用位內建外設功能引腳的時候,必須設定 gpio 埠的模式,至於在復用功能下 gpio 的模式是怎麼對應的,這個可以檢視手冊stm32 中文參考手冊 。這裡我們拿 usart1 舉例

從**中可以看出,我們要配置全雙工的串列埠 1,那麼 tx 管腳需要配置為推挽復用輸出,rx 管腳配置為浮空輸入或者帶上拉輸入。

//usart1_tx pa.9 復用推挽輸出

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)

;//usart1_rx pa.10 浮空輸入

gpio_initstructure.gpio_pin = gpio_pin_10;

//pa10

gpio_initstructure.gpio_mode = gpio_mode_in_floating;

//浮空輸入

gpio_init

(gpioa,

&gpio_initstructure)

;

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

1) gpio 時鐘使能

2) 復用的外設時鐘使能同時要初始化 gpio 以及復用外設功能

在 stm32 中引入了外設引腳重對映(remap)的概念,即乙個外設的引腳除了具有預設的埠外,還可以通過設定重對映暫存器的方式,把這個外設的引腳對映到其它的埠。簡單的講就是把管腳的外設功能對映到另乙個管腳,但不是可以隨便對映的,具體對應關係stm32 中文參考手冊。這裡我們同樣拿串列埠 1 為例來講解。

上圖是擷取的中文參考手冊中的重對映表,從表中可以看出,預設情況下,串列埠 1 復用的時候的引腳位pa9,pa10,同時我們可以將 tx 和 rx 重新對映到管腳 pb6 和 pb7 上面去。所以重對映我們同樣要使能復用功能的時候講解的 2 個時鐘外,還要使能 afio 功能時鐘,然後要呼叫重對映函式。詳細步驟為:

1)使能 gpiob 時鐘:

rcc_apb2periphclockcmd

(rcc_apb2periph_gpiob, enable)

;

2)使能串列埠 1 時鐘:

rcc_apb2periphclockcmd

(rcc_apb2periph_usart1, enable)

;

3)使能 afio 時鐘:

rcc_apb2periphclockcmd

(rcc_apb2periph_afio, enable)

;

4)開啟重對映:

gpio_pinremapconfig

(gpio_remap_usart1, enable)

;

這樣就將串列埠的 tx 和 rx 重對映到管腳 pb6 和 pb7 上面了。

STM32學習 埠復用及對映

stm32有很多的內建外設,這些外設的外部引腳都是與gpio復用的。也就是說,乙個gpio如果可以復用為內建外設的功能引腳,那麼當這個gpio作為內建外設使用的時候,就叫做復用。哪些埠可以復用為什麼,這個查表就可以了 比如af1要復用到tim1 通過設定afrl暫存器和afrh暫存器 就可以af1 ...

STM32埠復用和重對映

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

STM32埠復用 埠重對映

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