Настройка таймера STM32 для работы с энкодером
Энкодер будет считываться без участия процессора. Когда нам понадобится положение энкодера, мы его просто возьмем из регистра. Я покажу на примере Stm32f103c8. В этом микроконтроллере всего 4 таймера. TIM1 - продвинутый, мы его оставим на всякий случай. TIM2, TIM3, TIM4 - таймеры общего назначения. Для примера возьмем TIM2. Мы будем использовать два входных канала этого таймера. Выводы энкодера CLK и DT подключаем к GPIO A15 и GPIO B3 . Сейчас неважно, какой сигнал, к какой ноге. GND к GND контроллера, + к 3.3V платы контроллера. Настраиваем пины для работы с таймером. GPIO_Alternate_Function_Enable(@_GPIO_MODULE_TIM2_CH1_PA15); GPIO_Alternate_Function_Enable(@_GPIO_MODULE_TIM2_CH2_PB3); GPIO_Set_Pin_Mode(@GPIOA_BASE, _GPIO_PIN_15, _GPIO_CFG_MODE_ALT_FUNCTION); GPIO_Set_Pin_Mode(@GPIOB_BASE, _GPIO_PIN_3, _GPIO_CFG_MODE_ALT_FUNCTION); Разрешаем тактирование второго таймера. RCC_APB1ENR.TIM2EN:= 1; Перед началом настройки запрещаем работу таймер...





Коментарі
Дописати коментар