STM32端口复用和重映射
STM32有很多的内置外设,这些外设的外部引脚都是与GPIO复用的。也就是说,一个GPIO如果可以复用为内置外设的功能引脚,那么当这个GPIO作为内置外设使用的时候,就叫做复用。
简单易懂的说,就是某些普通的外设引脚也可以用来其它功能。比如说串口1 的发送接收引脚是PA9,PA10,当我们把PA9,PA10不用作普通的GPIO口,而用做复用功能串口1的发送接收引脚的时候,叫端口复用。
我们知道每个内置外设都有若干个输入输出引脚,一般这些引脚的输出脚位都是固定不变的,为了让设计工程师可以更好地安排引脚的走向和功能,在STM32中引入了外设引脚重映射的概念,即一个外设的引脚除了具有默认的脚位外,还可以通过设置重映射寄存器的方式,把这个外设的引脚映射到其它的脚位。
STM32的端口重映射有三种模式:
以TIM3为例,没有重映射就是使用复用端口引脚,如下图,没有重映射4个输出通道引脚分别是在PA6、PA7、PB0、PB1;部分重映射,从字面上理解就是只改变一部分输出或输入引脚的端口,部分重映射后,TIM3的通道1和通道2从原先的PA6、PA7引脚改变到PB4、PB5了,而通道3、通道4还是在PB0、PB1保持不变;完全重映射,引脚全部改变了,通道1到通道4从原先的PA6、PA7、PB0、PB1变为PC6~PC9。
还是以TIM3为例