|
TIM2_CH2 重映射后用PB3做输入捕获。
配置如下:
void GPIO_Configuration(void)
{
/* TIM2 clock enable */
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
/* GPIOA and GPIOB clock enable */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
/* AFIO clock enable */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
/* TIM2 channel 2 pin (PB.3) configuration */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
/* TIM2 Partial1 Alternate Function mapping(重映射TIM2_CH1-PA15/TIM2_CH2-PB3) */
GPIO_PinRemapConfig(GPIO_PartialRemap1_TIM2,ENABLE);
TIM_ICInitStructure.TIM_Channel = TIM_Channel_2;
TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;
TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;
TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;
TIM_ICInitStructure.TIM_ICFilter = 0x0f;
TIM_ICInit(TIM2, &TIM_ICInitStructure);
/* Enable the CC2 Interrupt Request */
TIM_ITConfig(TIM2, TIM_IT_CC2, ENABLE);
/*清除溢出中断标志位*/
TIM_ClearITPendingBit(TIM2,TIM_IT_Update);
/* TIM update Interrupt source*/
TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);
/* TIM enable counter */
TIM_Cmd(TIM2, ENABLE);
}
原始信号输入波形
程序下载到芯片,PB3输入管脚波形跟原始波形相同
进入仿真(Jlink mini edu sw模式)后PB3波形是
退出仿真后PB3波形是
断电重启,又恢复到原始波形
硬件电路如下图(已将10k上拉换成4.7K)
不理解为什么会这样,请高手分析一下,咋回事?
|
|