STM32f1學習筆記四 埠復用和重對映

2021-10-17 12:38:45 字數 2433 閱讀 5569

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

例如串列埠1的傳送接收引腳是pa9,pa10,當我們把pa9,pa10不用作gpio,而用做復用功能串列埠1的傳送接收引腳的時候,叫埠復用。

埠復用配置過程

–以pa9,pa10配置為串列埠1為例

rcc_apb2periphclockcmd

(rcc_apb2periph_gpioa, enable)

;//gpioa時鐘

rcc_apb2periphclockcmd

(rcc_apb2periph_usart1, enable)

;//使能usart1時鐘

根據參考手冊

pa9埠配置為推挽復用輸出;pa10埠配置為浮空輸入或帶上拉輸入。

//gpio埠設定

gpio_inittypedef gpio_initstructure;

//usart1_tx gpioa.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)

;//初始化gpioa.9

//usart1_rx gpioa.10初始化

gpio_initstructure.gpio_pin = gpio_pin_10;

//pa10

gpio_initstructure.gpio_mode = gpio_mode_in_floating;

//浮空輸入

gpio_init

(gpioa,

&gpio_initstructure)

;//初始化gpioa.10

每個配置都有若干個輸入輸出引腳,一般這些引腳的輸出埠都是固定不變的,為了讓設計工程師可以更好的安排引腳的走向和功能,在stm32中引入了外設引腳重對映的概念,即乙個外設的引腳除了具有預設的埠外,還可以通過設定重對映暫存器的方式,把這個外設的引腳對映到其他的埠。

部分重對映 & 完全重對映

部分重對映:功能外設的部分引腳重新對映,還有一部分的引腳是原來的預設引腳。

完全重對映:功能外設的所有引腳都重新對映。

(以串列埠3為例,若將串列埠3的pb10||pb11中的乙個埠進行重對映,即為部分重新對映;若將串列埠3的pb10||pb11中的兩個埠都進行重對映,就為完全重新對映。)

引腳重對映的配置過程

–以串列埠3為例

rcc_apb2periphclockcmd

(rcc_apb2periph_gpiod, enable)

;//開啟gpiod時鐘

rcc_apb1periphclockcmd

(rcc_apb1periph_usart3, enable)

;//開啟usart3時鐘

rcc_apb2periphclockcmd

(rcc_apb2periph_afio, enable)

;//開啟rcc_apb2periph_afio

gpio_pinremapconfig

(gpio_fullremap_usart3 , enable)

;//開啟串列埠3完全重對映

gpio_pinremapconfig

(gpio_partialremap_usart3 , enable)

;//開啟串列埠3部分重對映

以下情況需要開啟afio輔助功能時鐘對暫存器afio_mapr\afio_exticrx\afio_evcr進行讀寫操作前,應當首先開啟afio時鐘

STM32f1學習筆記 GPIO

參考文章 stm32自學筆記 stm32可以提供很多gpio,一般分別在5個埠 port gpioa gpioe 每個埠有16個gpio,最大耐壓值為5v。每個埠有32為寬頻的設定暫存器,一共64位,每個gpio占用4位配置位。其中兩位設定gpio的方向,另外兩位設定gpio的工作模式。1 gpio...

STM32f1學習筆記 USART

typedef struct usart inittypedef usart stopbits usart stopbits引數 描述usart stopbits 1 在幀尾傳輸1個停止位 usart stopbits 0.5 在幀尾傳輸0.5個停止位 usart stopbits 2 在幀尾傳輸2...

STM32F4與STM32F1的區別

作為cortex m3市場的最大佔有者,st公司在2011年又推出基於cortex m4核心的stm32f4系列產品,相對與stm32f1 f2等cortex m3產品,stm32f4最大的優勢,就是新增了硬體fpu單元以及dsp指令,同時,stm32f4的主頻也提高了很多,達到168mhz 可獲得...