stm32f103
void TIM4_Encoder_Config(void)
{
GPIO_InitTypeDef GPIO_InitStructure
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure
TIM_ICInitTypeDef TIM_ICInitStructure
//PB6: A TMI4_CH1, PB7 B TMI4_CH2
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE)
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE)
GPIO_StructInit(&GPIO_InitStructure)
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz
GPIO_Init(GPIOB, &GPIO_InitStructure)
TIM_DeInit(TIM4)
TIM_TimeBaseStructInit(&TIM_TimeBaseStructure)
TIM_TimeBaseStructure.TIM_Period = ENCODER_CNT*4
TIM_TimeBaseStructure.TIM_Prescaler = 0
TIM_TimeBaseStructure.TIM_ClockDivision =TIM_CKD_DIV1
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up
TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure)
TIM_EncoderInterfaceConfig(TIM4, TIM_EncoderMode_TI12, TIM_ICPolarity_BothEdge ,TIM_ICPolarity_BothEdge)
TIM_ICStructInit(&TIM_ICInitStructure)
TIM_ICInitStructure.TIM_ICFilter = 6
TIM_ICInit(TIM4, &TIM_ICInitStructure)
TIM_ClearFlag(TIM4, TIM_FLAG_Update)
TIM_ITConfig(TIM4, TIM_IT_Update, ENABLE)
TIM4->CNT = 0
TIM_Cmd(TIM4, ENABLE)
}
stm32f407
void TIM4_Encoder_Config(void)
{
GPIO_InitTypeDef GPIO_InitStructure
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure
TIM_ICInitTypeDef TIM_ICInitStructure
//PD12 ch1 A,PD13 ch2 B
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE)
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE)
GPIO_StructInit(&GPIO_InitStructure)
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz
GPIO_Init(GPIOD, &GPIO_InitStructure)
GPIO_PinAFConfig(GPIOD,GPIO_PinSource12,GPIO_AF_TIM4)
GPIO_PinAFConfig(GPIOD,GPIO_PinSource13,GPIO_AF_TIM4)
TIM_DeInit(TIM4)
TIM_TimeBaseStructInit(&TIM_TimeBaseStructure)
TIM_TimeBaseStructure.TIM_Period = ENCODER_CNT*4
TIM_TimeBaseStructure.TIM_Prescaler = 0
TIM_TimeBaseStructure.TIM_ClockDivision =TIM_CKD_DIV1
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up
TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure)
TIM_EncoderInterfaceConfig(TIM4, TIM_EncoderMode_TI12, TIM_ICPolarity_BothEdge ,TIM_ICPolarity_BothEdge)
TIM_ICStructInit(&TIM_ICInitStructure)
TIM_ICInitStructure.TIM_ICFilter = 6
TIM_ICInit(TIM4, &TIM_ICInitStructure)
TIM_ClearFlag(TIM4, TIM_FLAG_Update)
TIM_ITConfig(TIM4, TIM_IT_Update, ENABLE)
TIM4->CNT = 0
TIM_Cmd(TIM4, ENABLE)
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)