|
发表于 2021-1-4 16:04:16
|
显示全部楼层
可以正常运行的程序
- void TIM17_InputCapture_Init(void)
- {
- TIMER_BaseInitPara TIM_TimeBaseStructure;
-
- GPIO_InitPara GPIO_InitStructure;
-
- #define TIM_IC 1
- #if TIM_IC
- TIMER_ICInitPara TIM_ICBaseStructure;
- #endif
-
- RCC_APB2PeriphClock_Enable(RCC_APB2PERIPH_TIMER1, ENABLE);
- RCC_AHBPeriphClock_Enable(RCC_AHBPERIPH_GPIOA,ENABLE);
- {
-
- GPIO_InitStructure.GPIO_Pin = GPIO_PIN_9;
- GPIO_InitStructure.GPIO_Mode = GPIO_MODE_IN;
- GPIO_Init(GPIOA,&GPIO_InitStructure);
-
- GPIO_PinAFConfig(GPIOA,GPIO_PIN_9, GPIO_AF_2);//PA15需要 PA0不需要映射
- }
- {
- TIMER_DeInit(TIMER1);
- TIM_TimeBaseStructure.TIMER_Period = 5000;
- TIM_TimeBaseStructure.TIMER_Prescaler = 0; //不分频
- TIM_TimeBaseStructure.TIMER_ClockDivision = TIMER_CDIV_DIV1;
- TIM_TimeBaseStructure.TIMER_CounterMode = TIMER_COUNTER_UP;
- TIMER_BaseInit(TIMER1, &TIM_TimeBaseStructure);
-
- //TIMER_CARLPreloadConfig(TIMER1, ENABLE);
- TIMER_ClearIntBitState(TIMER1, TIMER_INT_CH1 | TIMER_INT_CH2 | TIMER_INT_CH3 | TIMER_INT_CH4|TIMER_INT_UPDATE);
- //TIMER_INTConfig(TIMER1, TIMER_INT_UPDATE, ENABLE);
-
- TIMER_ETRClockMode1Config(TIMER1,TIMER_EXT_TRI_PSC_OFF,TIMER_EXT_TRI_POLARITY_INVERTED,0);//(TIMx,外部出发分频,外部出发极性,滤波值)
-
-
- #if TIM_IC
- //设置比较捕获寄存器值为计数器值,可以使得1个定时器读取最多4个计数器的值
- TIM_ICBaseStructure.TIMER_CH = TIMER_CH_2;//通道
- TIM_ICBaseStructure.TIMER_ICPolarity = TIMER_IC_POLARITY_RISING;//边沿
- TIM_ICBaseStructure.TIMER_ICSelection = TIMER_IC_SELECTION_DIRECTTI;//连线
- TIM_ICBaseStructure.TIMER_ICPrescaler = TIMER_IC_PSC_DIV1;//预分频器
- TIM_ICBaseStructure.TIMER_ICFilter = 0x0F;//滤波值
- TIMER_ICInit(TIMER1,&TIM_ICBaseStructure);//初始化输入外设
-
- TIMER_SelectInputTrigger(TIMER1,TIMER_TS_TI2FP2);//选择输入触发源
-
- #endif
-
- TIMER_SetCounter(TIMER1,0);//计数器置0
- }
- //TIMER_INTConfig(TIMER1, TIMER_INT_UPDATE, ENABLE);//开启相应中断
- // TIM_Cmd(TIM4, DISABLE);
- TIMER_Enable(TIMER1, ENABLE);
- }
复制代码 |
|