Administrator
Administrator
发布于 2025-06-02 / 5 阅读
0
0

stm32的复用功能重映射

一,PA15和PB3和PB4三个引脚当作GPIO来使用

// 启用 AFIO(Alternate Function I/O)时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);

// 禁用 JTAG(Joint Test Action Group)调试功能以释放引脚
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);

二,重映射定时器或者其它外设的复用引脚

// 启用 AFIO(Alternate Function I/O)时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);

// 部分重映射 TIM2,这会将 TIM2 的部分引脚重映射到其他引脚
GPIO_PinRemapConfig(GPIO_PartialRemap1_TIM2, ENABLE);

三,如果重映射正好是JTAG调试端口

// 启用 AFIO(Alternate Function I/O)时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);

// 部分重映射 TIM2,这会将 TIM2 的部分引脚重映射到其他引脚
GPIO_PinRemapConfig(GPIO_PartialRemap1_TIM2, ENABLE);

// 禁用 JTAG(Joint Test Action Group)调试功能以释放引脚
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);

当你启用 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); 时,你实际上是启用了 AFIO(Alternate Function I/O)时钟。AFIO 模块是用于配置 GPIO 引脚的交替功能的模块。启用这个时钟允许你配置 GPIO 引脚的交替功能,比如重映射。

GPIO_PinRemapConfig(GPIO_PartialRemap1_TIM2, ENABLE); 用于启用部分重映射功能,将 TIM2 的部分功能映射到 GPIO 引脚上。在这里,我们启用了第一种部分重映射功能,将 TIM2 的部分功能映射到了 GPIO 引脚上。

GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); 用于禁用 JTAG 接口,并释放 JTAG 相关引脚,使它们可以用作普通的 GPIO 引脚。这个操作可能会与其它功能映射冲突,所以在需要使用 GPIO 引脚时,可能需要禁用 JTAG 接口。


评论