[mw_shl_code=c,true]#include "pwm.h"
void TIM4_PWMINPUT_INIT(u16 arr,u16 psc)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
NVIC_InitTypeDef NVIC_InitStructure;
TIM_ICInitTypeDef TIM4_ICInitStructure;
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
TIM_TimeBaseStructure.TIM_Period = arr;
TIM_TimeBaseStructure.TIM_Prescaler =psc;
TIM_TimeBaseStructure.TIM_ClockDivision = 0;
TIM_TimeBaseStructure.TIM_CounterMode =TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure);
NVIC_InitStructure.NVIC_IRQChannel = TIM4_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
TIM4_ICInitStructure.TIM_Channel = TIM_Channel_2;
TIM4_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;
TIM4_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;
TIM4_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;
TIM4_ICInitStructure.TIM_ICFilter = 0x0; [/mw_shl_code]
[mw_shl_code=c,true]
TIM_PWMIConfig(TIM4, &TIM4_ICInitStructure);
TIM_SelectInputTrigger(TIM4, TIM_TS_TI2FP2); [/mw_shl_code]
[mw_shl_code=c,true] TIM_SelectSlaveMode(TIM4, TIM_SlaveMode_Reset);
TIM_SelectMasterSlaveMode(TIM4, TIM_MasterSlaveMode_Enable);
TIM_ITConfig(TIM4, TIM_IT_CC2|TIM_IT_Update, ENABLE);
TIM_ClearITPendingBit(TIM4, TIM_IT_CC2|TIM_IT_Update);
TIM_Cmd(TIM4, ENABLE);
}
u16 period = 0;
u16 duty = 0;
u8 CollectFlag = 1;
void TIM4_IRQHandler(void)
{
if(CollectFlag){
if (TIM_GetITStatus(TIM4, TIM_IT_CC2) != RESET)
{
duty = TIM_GetCapture1(TIM4); //采集占空比
period=TIM_GetCapture2(TIM4); //采集周期
}
CollectFlag = 0;
}
TIM_ClearITPendingBit(TIM4, TIM_IT_CC2|TIM_IT_Update);
}
[/mw_shl_code]
后面那两个
[mw_shl_code=c,true]TIM_GetCapture1[/mw_shl_code]
[mw_shl_code=c,true]TIM_GetCapture2[/mw_shl_code]
[mw_shl_code=c,true]不懂了[/mw_shl_code]
|