STM32 芯片复用功能,针脚重映射
工作中使用到了 STM32F103 芯片
根据 STM32 数据手册,一个希望通过定时器输出 PWM 方波的管脚,默认复用功能并不是定时器通道,这时如果想复用功能重新映射到这个管脚上,可以通过软件配置相应的AFIO寄存器来完成。
查阅参考手册,对应定时器的复用功能提供三种配置,分别为默认、部分重映像和完全重映像,这里以 STM32F103 的 TIM1 为例
具体配置时,首先需要在GPIO的配置处,增加一条使能被重新映射的 I/O 端口时钟,如上图所示,当对TIM1完全重映像时,使能
1 |
GPIOERCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE); |
然后使能外设时钟
1 |
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM1, ENABLE); |
因为使用了重映射功能,所以也要开启重映射的AFIO时钟
1 |
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); |
最后,使用函数配置相应重映射类型,在库文件 stm32f10x.h 中已经定义了全部重映像的配置
这里我们使用AFIO_MAPR_TIM1_REMAP_FULLREMAPi 对 TIM1 全部重映射
1 |
GPIO_PinRemapConfig(AFIO_MAPR_TIM1_REMAP_FULLREMAP); |
随后正常配置端口的复用输出即可。
下附 STM32F103 的数据手册和参考手册
STM32F103中文参考手册
STM32F103C8中文数据手册