操作方法需要用到AFIO和GPIO_PinRemapConfig函数RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); //开启AFIO时钟 void GPIO_PinRemapConfig(uint32_t GPIO_Remap, FunctionalState NewState); //引脚重映射配置uint32_t GPIO_Remap引脚重映射方式每个 GPIO_Remap值 对应的重映射方式 参考手册AFIO一节例如上面4种重映射对应的 GPIO_Remap 值为不使用表示没有重映射GPIO_PartialRemap1_TIM2 //部分重映射1GPIO_PartialRemap2_TIM2 //部分重映射2GPIO_FullRemap_TIM2 //完全重映射一如果重映射 调试端口 PA15、PB3、PB4 到普通GPIO口RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); //开启AFIO的时钟重映射必须先开启AFIO的时钟GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); //解除JTAG复用变为普通GPIO引脚使用二如果重映射定时器或者其他外设的复用引脚到普通GPIO口RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); //开启AFIO的时钟重映射必须先开启AFIO的时钟GPIO_PinRemapConfig(GPIO_PartialRemap1_TIM2, ENABLE); //将TIM2的引脚部分重映射1具体的映射方案需查看参考手册将PA0映射到PA5将PA1映射到PB3//重映射方式对应重映射关系可以参考手册复用功能I/O和测试配置AFIO中可以查看三如果重映射定时器或者其他外设的复用引脚到调试端口由于PA15上电后默认恢复为调试端口JTDI要想让其成为普通GPIO或复用定时器的通道则要关闭调试端口的复用也用这个函数void GPIO_PinRemapConfig(uint32_t GPIO_Remap, FunctionalState NewState);该函数关闭调试端口的参数GPIO_Remap_SWJ_NoJTRST //使用该参数PB4解除JTRST引脚的复用PB4变成正常GPIO口GPIO_Remap_SWJ_JTAGDisable //解除JTAG调试端口的复用PA15、PB3、PB4变回正常GPIOGPIO_Remap_SWJ_Disable //把SWD和JTAG的调试端口全部解除PA13、PA14、PA15、PB3、PB4全部变为普通GPIO没有调试功能不能随便调用。一旦调用该参数并下载程序后调试端口就没了再使用STLINK就下载不进去程序只能再使用串口下载一个新的、没有解除调试端口的程序才能把调试端口弄回来。代码示例RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); //开启AFIO的时钟重映射必须先开启AFIO的时钟GPIO_PinRemapConfig(GPIO_PartialRemap1_TIM2, ENABLE); //将TIM2的引脚部分重映射具体的映射方案需查看参考手册GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); //解除 JTAG 调试端口作为普通GPIO引脚使用注意引脚重映射后GPIO口的初始化要更改为重映射后的引脚。