Страница 1 из 1

STM32 TIM4 remap в режиме энкодера

Добавлено: Вс май 04, 2014 20:10:54
РадиоЛоматель
Добрый день!
Проблема в следующем. Есть необходимость подключить энкодер на ремапнутые выводы TIM4 в STM32F103ZET6. Все заработало и было бы классно, но мне понадобилось задействовать и прерывания от EXTI Lines. А вот если включить тактирование модуля AFIO, то таймер прекращает реагировать на изменение состояния своих переадресованных ног. От порядка включения тактирования наличие проблемы не зависит. К сожалению, нет возможности проверить, будет ли то же происходить без remap-a (готовая отладочная плата - удобства в соседнем дворе). Может кто сталкивался с таким?

Re: STM32 TIM4 remap в режиме энкодера

Добавлено: Вс май 04, 2014 20:57:17
РадиоЛоматель
Ну вот, сам спросил, сам ответил. Проблема решилась. Нужно было включить тактирование AFIO уже после инициализации выводов и таймера, а так же включения таймера. Странно, ведь рекомендованный производителем порядок - включить тактирование для всех используемых модулей, потом их инициализировать.

Re: STM32 TIM4 remap в режиме энкодера

Добавлено: Чт май 08, 2014 15:44:43
Zud
РадиоЛоматель писал(а):Нужно было включить тактирование AFIO уже после инициализации выводов и таймера, а так же включения таймера. Странно, ведь рекомендованный производителем порядок - включить тактирование для всех используемых модулей, потом их инициализировать.
Не может быть ! Возможно где-то во время инициализации с AFIO как-то не правильно работали, или AFIO случайно выключали (запустив не ту функцию, например RCC...reset(AFIO..) ).

Re: STM32 TIM4 remap в режиме энкодера

Добавлено: Чт май 08, 2014 19:00:35
РадиоЛоматель
Zud писал(а):Не может быть ! Возможно где-то во время инициализации с AFIO как-то не правильно работали, или AFIO случайно выключали (запустив не ту функцию, например RCC...reset(AFIO..) ).
Нет. AFIO используется в программе впервые, нигде не выключается. Более того, если никакой другой работы с AFIO, кроме включения тактовой, не делать, то таймер все равно отваливается. Если включение тактовой перенести за инициализацию таймера - все работает.