STM32 Rotary Encoder config auf TIM4

Ich versuche, TIM4 für Quadratur-encoder-Eingang auf meinem STM32F4DISCOVERY board.
Hier ist mein code :

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE);

GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6| GPIO_Pin_7;
GPIO_Init(GPIOB, &GPIO_InitStructure);

GPIO_PinAFConfig(GPIOB, GPIO_PinSource6, GPIO_AF_TIM4);
GPIO_PinAFConfig(GPIOB, GPIO_PinSource7, GPIO_AF_TIM4);

/* Configure the timer */
TIM_EncoderInterfaceConfig(TIM4, TIM_EncoderMode_TI12, TIM_ICPolarity_Rising, TIM_ICPolarity_Rising);

/* TIM4 counter enable */
TIM_Cmd(TIM4, ENABLE);

leider TIM4->CNT Zähler bewegt sich nicht, wenn ich drehen Sie den encoder. Ich arbeitet perfekt mit TIM8.
Hier ist der vollständige code der arbeiten TIM8 und die nicht funktioniert, TIM4 :
https://gist.github.com/nraynaud/5082298

Ich das überprüfen von Druck-rT2() in der gdb nach der Verschiebung der encoder von hand.

InformationsquelleAutor nraynaud | 2013-03-04

Schreibe einen Kommentar