Параметры движения задаются тремя величинами. Расстояние - которое нужно проехать. Скорость - с какой нужно проехать. Разгон - как набирать скорость/тормозить.
Задавая частоту таймеру вы задаете скорость двигателя. Подразумеваю сигнал Step.
Изменение частоты этого таймера - разгон/торможение.
Количество переполнений этого таймера - расстояние(обороты в штуках или Step_ах).
Чтобы не считать программно эти шаги можно привязать другой (Slave) таймер. В его регистре CNT будет количество шагов которое можно прочитать в любой момент. DMA не нужно. Направление счета этого таймера должно соответствовать сигналу DIR.
Главное пройти заданное количество шагов без перелета и подойти к конечной точке с заданной скоростью (иногда с нулевой).
Часто нужно синхронизировать движение одного двигателя с другим(и). Здесь да - нужно изменять скорость пропорционально(косая прямая/дуга окружности). Но до этого вопроса вы пока не дошли.


