什么是復用?
在TSM32里面,大部分的引腳都是有GPIO復用功能,也就是說,一個 GPIO如果可以復用為內置外設的功能引腳,那么當這個 GPIO 作為內置外設使用的時候,就叫做復用。
配置步驟
詳細步驟為:
1)首先 GPIO 端口時鐘使能。因為要使用到端口復用,當然要使能該端口的時鐘了。
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
2)復用的外設時鐘使能。比如你要將端口 PA9,PA10 復用為串口,所以要使能串口時鐘。
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
3)端口模式配置。
在 IO 復用位內置外設功能引腳的時候,必須設置 GPIO 端口的模式,至于在復用功能下 GPIO 的模式是怎么對應的,這個可以查看手冊《STM32 中文參考手冊 V10》(根據引腳配置不同的)
總結:我們在使用復用功能的是時候,最少要使能 2 個時鐘!!!
什么是重映射?
為了使不同器件封裝的外設 IO 功能數量達到最優,可以把一些復用功能重新映射到其他一些引腳上,目的為了讓設計工程師可以更好地安排引腳的走向和功能,在 STM32 中引入了外設引腳重映射的概念,即一個外設的引腳除了具有默認的端口外,還可以通過設置重映射寄存器的方式,把這個外設的引腳映射到其它的端口。簡單的講就是把管腳的外設功能映射到另一個管腳去使用,但是不是可以隨便映射的,根據手冊是否可以映射。
配置步驟
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);
5)端口模式配置:
詳細請見以下鏈接
https://blog.csdn.net/qq_34692743/article/details/80495858
|