贴上相关代码,望指点
/* Enable the GPIO4 Clock */
SCU_APBPeriphClockConfig(__GPIO4, ENABLE);
/* Enable the TIM01 Clock */
SCU_APBPeriphClockConfig(__TIM01, ENABLE);
/*配置捕获输入管脚,使用P4.0为捕获输入脚*/
GPIO_DeInit(GPIO4);
GPIO_StructInit(&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Direction = GPIO_PinInput;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Type = GPIO_Type_OpenCollector;
GPIO_InitStructure.GPIO_Alternate = GPIO_InputAlt1;
GPIO_InitStructure.GPIO_IPConnected = GPIO_IPConnected_Enable;
GPIO_Init (GPIO4, &GPIO_InitStructure); //P4.0 TIM0_ICAP1输入
/* TIM0设置 */
TIM_DeInit(TIM0); /* TIM0 Deinitialization */
/* TIM0 Structure Initialization */
TIM_StructInit(&TIM_InitStructure);
/* TIM0 Configuration in PWM Mode */
TIM_InitStructure.TIM_Mode = TIM_ICAP_CHANNEL_1; //1通道输入捕获
TIM_InitStructure.TIM_Clock_Source = TIM_CLK_APB;
TIM_InitStructure.TIM_Prescaler = 255;
TIM_InitStructure.TIM_ICAP1_Edge = TIM_ICAP1_EDGE_FALLING; //通道1为上升延捕获
TIM_Init (TIM0, &TIM_InitStructure);
TIM_ITConfig(TIM0, TIM_IT_IC1, ENABLE);
TIM_CounterCmd(TIM0, TIM_START);
/* 系统中断设置 */
SCU_AHBPeriphClockConfig(__VIC,ENABLE);
VIC_DeInit();
VIC_Config(TIM0_ITLine, VIC_IRQ, 1);
VIC_ITCmd(TIM0_ITLine, ENABLE);
/* 中断函数 */
/*******************************************************************************
* Function Name : TIM0_IRQHandler
* Description : This function handles the TIM0 interrupt request
* Input : None
* Output : None
* Return : None
*******************************************************************************/
void TIM0_IRQHandler(void)
{
TIM_ClearFlag(TIM0, TIM_FLAG_IC1);
}
|