1、stm32 的 TIM2 的端口使用组合有下面四种:1.当不重映射时,默认 TIM2 四个的 IO 口是 PA0、PA1 、PA2、PA32.要使用 PA15、PB3 、PA2、PA3 的端口组合,要调用下面的语句进行部分重映射:RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); /重映射必须要开 AFIO 时钟GPIO_PinRemapConfig(GPIO_PartialRemap1_TIM2, ENABLE);3.要使用 PA0、PA1 、PB10、PB11 的端口组合,要调用下面的语句进行部分重映射:RCC_APB2PeriphCl
2、ockCmd(RCC_APB2Periph_AFIO, ENABLE); /重映射必须要开 AFIO 时钟GPIO_PinRemapConfig(GPIO_PartialRemap2_TIM2, ENABLE);4.要使用 PA15、PB3 、PB10 、PB11 的端口组合,要调用下面的语句进行完全重映射:RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); /重映射必须要开 AFIO 时钟GPIO_PinRemapConfig(GPIO_FullRemap_TIM2, ENABLE);同时还要禁用 JTAG 功能,PA15、PB3 、PB
3、10、PB11 才会正常输出。GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFIO, ENABLE);/*1.执行端口重映射时,复用功能时钟得使能:RCC_APB2Periph_AFIO2. 1. GPIO_Remap_SWJ_Disable: ! Full SWJ Disabled (JTAG-DP + SW-DP)此时 PA13|PA14|PA15|PB3|PB4 都可作为普通 IO 用了为了保存某些调试
4、端口,GPIO_Remap_SWJ_Disable 也可选择为下面两种模式:2. GPIO_Remap_SWJ_JTAGDisable : ! JTAG-DP Disabled and SW-DP Enabled此时 PA15|PB3|PB4 可作为普通 IO 用了3. GPIO_Remap_SWJ_NoJTRST: ! Full SWJ Enabled (JTAG-DP + SW-DP) but without JTRST此时只有 PB4 可作为普通 IO 用了 */GPIO_PinRemapConfig(GPIO_Remap_SWJ_NoJTRST, ENABLE); /使能禁止 JTAG
5、GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE); /JATG-DP 禁用,但是 SW-DP 可使用/初始化 GPIOB 推挽输出GPIO_InitStructure.GPIO_Pin = (GPIO_Pin_3|GPIO_Pin_4);GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOB, GPIO_SetBits(GPIOB, GPIO_Pin_3|GPIO_Pin_4);/初始化 GPIOA 推挽输出GPIO_InitStructure.GPIO_Pin = (GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15); GPIO_Init(GPIOA, GPIO_SetBits(GPIOA, GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15);