前言
这一篇博客主要讲解端口复用和重映射。
首先是理解端口复用的原理,STM32 有很多的内置外设,这些外设的外部引脚都是与 GPIO 复用的。用我自己的话来说,就是GPIO口除了有它IO口的功能外,还可以有其他的功能,比如串口的输入输出之类的,而复用其他功能,就要用上端口复用的知识。
而重映射就是将一些端口的功能让另外一些端口来实现,假设PA8PA9具有串口1输出输入功能,为了布线方便可以让其串口1的输出输入功能映射到PE9和PE10。重映射还有完全重映射和部分重映射,之后会简单说明一下。
端口复用
特别说明一下,具体的哪个端口可以复用哪些功能要查询芯片手册,我这里查的是《STM32F103ZET6》,如图是我查询芯片手册后得知,PA9和PA10可以用作串口1的接受发送功能。
之后就需要用函数来设置端口复用功能,因为这个原功能是IO口的输入输出,现在要改成(复用)为串口接收发送,所以需要配置GPIO函数。
首先是要使能GPIO时钟,这在之前的点亮LED灯实验中也会用到,只要用到GPIO口就必须使能时钟。
RCC_APB2eriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE)
然后是复用外设时钟使能
RCC_APB2eriphClockCmd(RCC_APB2P