新手上路
- 积分
- 37
- 金钱
- 37
- 注册时间
- 2018-6-13
- 在线时间
- 11 小时
|

楼主 |
发表于 2019-8-6 07:28:39
|
显示全部楼层
初始化代码
void TIM2_init(unsigned short arr,unsigned short psc)
{
GPIO_InitTypeDef GPIO_ITD;
TIM_TimeBaseInitTypeDef TIM_TBITD;
TIM_ICInitTypeDef TIM_ICITD;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);
GPIO_ITD.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1; //PA0-CH1 PA1-CH2
GPIO_ITD.GPIO_Mode=GPIO_Mode_IPD;
GPIO_Init(GPIOA,&GPIO_ITD);
TIM_ICStructInit(&TIM_ICITD); //给结构体以默认值防止GG
TIM_TBITD.TIM_Period=arr;
TIM_TBITD.TIM_Period=psc;
TIM_TBITD.TIM_CounterMode=TIM_CounterMode_Up;
TIM_TBITD.TIM_ClockDivision=TIM_CKD_DIV1;
TIM_TimeBaseInit(TIM2,&TIM_TBITD);
TIM_ICITD.TIM_Channel=TIM_Channel_1;
TIM_ICITD.TIM_ICFilter=0; //通过再以次捕获条件中通过多次采样来滤除杂波
TIM_ICITD.TIM_ICPolarity=TIM_ICPolarity_Rising;
TIM_ICITD.TIM_ICPrescaler=TIM_ICPSC_DIV1;
TIM_ICITD.TIM_ICSelection=TIM_ICSelection_DirectTI;
TIM_ICInit(TIM2,&TIM_ICITD);
TIM_ICITD.TIM_Channel=TIM_Channel_2;
TIM_ICInit(TIM2,&TIM_ICITD);
NVIC_InitStructure.NVIC_IRQChannel=TIM2_IRQn;
NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority=1;
NVIC_Init(&NVIC_InitStructure);
TIM_ITConfig(TIM2,TIM_IT_Update|TIM_IT_CC1|TIM_IT_CC2,ENABLE);
TIM_Cmd(TIM2,ENABLE);//使能寄存器
}
void TIM4_init(unsigned short arr,unsigned short psc)
{
GPIO_InitTypeDef GPIO_ITD;
TIM_TimeBaseInitTypeDef TIM_TBITD;
TIM_ICInitTypeDef TIM_ICITD;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE);
GPIO_ITD.GPIO_Pin=GPIO_Pin_6|GPIO_Pin_7; //PA0-CH1 PA1-CH2
GPIO_ITD.GPIO_Mode=GPIO_Mode_IPD;
GPIO_Init(GPIOB,&GPIO_ITD);
TIM_ICStructInit(&TIM_ICITD); //给结构体以默认值防止GG
TIM_TBITD.TIM_Period=arr;
TIM_TBITD.TIM_Period=psc;
TIM_TBITD.TIM_CounterMode=TIM_CounterMode_Up;
TIM_TBITD.TIM_ClockDivision=TIM_CKD_DIV1;
TIM_TimeBaseInit(TIM4,&TIM_TBITD);
TIM_ICITD.TIM_Channel=TIM_Channel_1;
TIM_ICITD.TIM_ICFilter=0; //通过再以次捕获条件中通过多次采样来滤除杂波
TIM_ICITD.TIM_ICPolarity=TIM_ICPolarity_Rising;
TIM_ICITD.TIM_ICPrescaler=TIM_ICPSC_DIV1;
TIM_ICITD.TIM_ICSelection=TIM_ICSelection_DirectTI;
TIM_ICInit(TIM4,&TIM_ICITD);
TIM_ICITD.TIM_Channel=TIM_Channel_2;
TIM_ICInit(TIM4,&TIM_ICITD);
NVIC_InitStructure.NVIC_IRQChannel=TIM4_IRQn;
NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority=1;
NVIC_Init(&NVIC_InitStructure);
TIM_ITConfig(TIM4,TIM_IT_Update|TIM_IT_CC1|TIM_IT_CC2,ENABLE);
TIM_Cmd(TIM4,ENABLE);//使能寄存器
}
|
|