stm32 TIM2 重映射
stm32的TIM2的端口使用組合有下面四種:
1.當(dāng)不重映射時(shí),默認(rèn)TIM2四個(gè)的IO口是PA0、PA1、PA2、PA3
2.要使用PA15、PB3、PA2、PA3的端口組合,要調(diào)用下面的語句進(jìn)行部分重映射:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); //重映射必須要開AFIO時(shí)鐘
GPIO_PinRemapConfig(GPIO_PartialRemap1_TIM2, ENABLE);
3.要使用PA0、PA1、PB10、PB11的端口組合,要調(diào)用下面的語句進(jìn)行部分重映射:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); //重映射必須要開AFIO時(shí)鐘
GPIO_PinRemapConfig(GPIO_PartialRemap2_TIM2, ENABLE);
4.要使用PA15、PB3、PB10、PB11的端口組合,要調(diào)用下面的語句進(jìn)行完全重映射:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); //重映射必須要開AFIO時(shí)鐘
GPIO_PinRemapConfig(GPIO_FullRemap_TIM2, ENABLE);
同時(shí)還要禁用JTAG功能,PA15、PB3、PB10、PB11才會(huì)正常輸出。
完全映射端口配置函數(shù):
staticvoidTIM2_GPIO_Config(void)//CH1-PA15CH2-PB3CH3-PB10CH4-PB11重映射
{
GPIO_InitTypeDefGPIO_InitStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO,ENABLE);
GPIO_PinRemapConfig(GPIO_FullRemap_TIM2,ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);//禁止JTAG功能,把PB3,PB4作為普通IO口使用
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_15;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;//復(fù)用推挽輸出
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_3|GPIO_Pin_10|GPIO_Pin_11;
GPIO_Init(GPIOB,&GPIO_InitStructure);
}