端口復用是重點,只要使用stm32就要用到外設,外設是與gpio引腳共用(復用)的,即某些引腳既可以單純作為輸入輸出,又可以作為具有一定功能的外設(如ADC, 串口等等)的引腳端口。
這是stm32的一個優點,節省了引腳的數量。
端口的復用和重映射的引腳對應可以查詢芯片手冊,stm32的Mini板對應的是STM32F103RCT6。如圖
復用具體步驟
復用端口初始化有幾個步驟:
1) GPIO 端口時鍾使能。要使用到端口復用,當然要使能端口的時鍾了。
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);【這個函數在LED那一節已經接觸過,在stm32f10x_rcc.c這個文件里】
2) 復用的外設時鍾使能。比如你要將端口 PA9,PA10 復用為串口,所以要使能串口時鍾。
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);【同樣在stm32f10x_rcc.c這個文件里,只是判斷有效性的第一項不同】
3) 端口模式配置。 在 IO 復用位內置外設功能引腳的時候,必須設置 GPIO 端口的模式,至於
在復用功能下 GPIO 的模式是怎么對應的,這個可以查看手冊《 STM32 中文參考手冊 V10》
P110 的表格" 8.1.11 外設的 GPIO 配置"。
端口重映射用的比較少,一般了解即可,主要是為了方便pcb的布線,將某些端口映射到其他端口。