Я использую плату STM32 (серия F7) и просматриваю документацию HAL API. Когда я инициализирую таймер, я вижу два значения Prescaler
и ClockDivision
. Теперь я понимаю, что Prescaler
используется для деления частоты часов. Однако что ClockDivision
делать? Я вижу, что у него есть три возможных значения: DIV1
, DIV2
, и DIV4
.
Мой автоматически сгенерированный код говорит следующее.
С большим допущением, что все, что ниже, соответствует действительности или, по крайней мере, соответствует описанию серии F7. Я могу быть совершенно не прав! Пожалуйста, проверьте дважды!
Согласно описанию регистра таблицы данных семейства stm32 F4 , «ClockDivision» означает
CKD: это битовое поле указывает коэффициент деления между частотой тактового генератора таймера (CK_INT) и тактовым сигналом мертвого времени и тактовой частотой дискретизации (tDTS), используемым генераторами мертвого времени и цифровыми фильтрами (ETR, TIx).
00: tDTS=tCK_INT
01: tDTS=2*tCK_INT
10: tDTS=4*tCK_INT
11: Зарезервировано, не программируйте это значение.
Я не смог найти какой-либо конкретной документации, относящейся к серии F7, и я не совсем осведомлен об использовании генераторов мертвого времени, но ETR означает «вход внешнего триггера».
Остерегайтесь TIM1 — это специальный таймер, то же описание не относится к другим таймерам общего назначения (например, TIM2 и т. д.).
Кроме того, документация HAL API особенно бесполезна, поскольку представляет собой просто совокупность всех комментариев библиотеки HAL без какого-либо описания. Если вы все еще заинтересованы, это может быть полезно для вас.
пользователь105652
Арки
ClockDivision
. Я попытался превратить код в блок кода вместо того, чтобы вставлять изображение, но, похоже, он неправильно форматируется...