端口复用是重点,只要使用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的布线,将某些端口映射到其他端口。