初级会员

- 积分
- 149
- 金钱
- 149
- 注册时间
- 2013-6-16
- 在线时间
- 37 小时
|
5金钱
各位大神帮忙看下哪里有问题, 定时器1通道4输入捕获(PA11脚) 无法进入中断.
PA11脚用示波器观察有300Khz的方波.
void TIMER_IC_GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11; //PA11脚
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; //复用模式
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //50Mhz
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; //推挽输出
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; //无上下拉(浮空)
//GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_PinAFConfig(GPIOA, GPIO_PinSource11, GPIO_AF_2); //复用配置(TIM1通道4)
}
void TIM1_Init(void)
{
TIM_ICInitTypeDef TIM_ICInitStructure;
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_DeInit(TIM1);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE); //使能TIM1
TIM_TimeBaseStructure.TIM_Prescaler = 8 - 1; //8分频(与捕获分频相同)
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //向上计数
TIM_TimeBaseStructure.TIM_Period = 0xFFFFFFFF; //定时周期
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //时钟分频因子
TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);
TIM_ICInitStructure.TIM_Channel = TIM_Channel_4; //通道4
TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising; //上升捕获
TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI; //映射
TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV8; //捕获分频
TIM_ICInitStructure.TIM_ICFilter = 0x0; //捕获滤波
TIM_ICInit(TIM1, &TIM_ICInitStructure);
TIM_Cmd(TIM1, ENABLE);
TIM_ITConfig(TIM1,TIM_IT_Update|TIM_IT_CC4,ENABLE);
}
void TIM1_CC_IRQHandler(void) //TIM1中断
{
if(TIM_GetITStatus(TIM1, TIM_IT_CC4) != RESET)
{
TIM_ClearFlag(TIM1, TIM_IT_CC4);
}
}
/////////////////////////////////////////////////////////////////////////////////////////
// //
// //
// MAIN主程序 //
// //
// //
/////////////////////////////////////////////////////////////////////////////////////////
int main(void)
{
TIMER_IC_GPIO_Configuration(); //初始化PA11(TIM1_CH4)
TIM1_Init(); //TIM1初始化
while(1)
{
delay_ms(10);
}
}
|
|