需求
一开始使用stm32c8t6,想实现pwm输出,但是原电路固定在芯片的引脚PB10和PB11上,查看了下引脚的功能,需要使用到复用功能。让改引脚作为定时器PWM的输出IO口。
IO口的复用和重映射
IO口使用可分为两种情况:
1.正常功能。正常使用,开启GPIO时钟使用。
2.复用功能。使用复用功能,将改IO引脚作为另外的ADC、PWM定时器等引脚使用。
复用功能有可以分为三种情况:没有重映射、部分重映射、完全重映射。
复用功能的使用的目的是为了在有限的引脚的情况下可以充分的使用各种外设,定时器、串口等等。
总之就是在复用的情况下,原来的引脚可以作为另一种功能的引脚使用。
重映射就是在复用情况下, 可以把一些复用功能重新映射到其他一些引脚上,也就是充当另一个外设功能引脚使用。当然,重映射也不是随便映射的,是芯片设计好的时候就已经固定了,stm32的重映射可以查看《《STM32 中文参考手册》的P116页,8.3通用和复用功能。
而复用重映射的目的都是为了能充分利用有限的引脚资源去实现更多的外设功能。
通过初步查看数据手册,发现PB10和PB11两个引脚如下图所示,可以发现,默认复用的时候可以作为IIC或者usart3使用,而在重定义功能(完全重映射,说法不同)的情况下, 可以作为定时器2的通道3和通道4使用。
使用
复用
首先介绍复用功能的使用,复用功能使用比较简单,开启复用时钟即可。
查看手册可以看到复用开启,没有开启重映像的时候,就是串口3.
//开启io口时钟和定时器时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENA