Я использую CubeMX для генерации кода для своего NucleoF303. Я немного запутался, как установить ширину импульса таймера в режиме PWM.
Ранее (используя F4) в файле stm32fxxx_hal_tim.h был макрос __HAL_TIM_SetCompare.
Но этого не существует. Я должен установить рабочий цикл каким-то другим способом?
Конечно, я могу просто напрямую установить регистры CCRx. Это работает. Но если я собираюсь использовать HAL с большим количеством абстракций, как, кажется, куб, я хотел бы, по крайней мере, знать, как они собираются его использовать. Даже если я этого не сделаю.
На самом деле нет никакого кода для этого вопроса. Но вот мой текущий коммит на случай, если он будет полезен: https://github.com/c-herring/Sumo2017_NucleoF303/tree/221dc57a305ccd64a4b98726df3cce02720b280b
Ваше здоровье!
Ранее (используя F4) в файле stm32fxxx_hal_tim.h был макрос __HAL_TIM_SetCompare.
Это действительно было некоторое время назад. Я нашел копию STM32CubeF4 V1.6.0 (выпущенную 28 мая 2015 г.), лежащую в старом каталоге проекта, и у нее уже есть следующее определение псевдонима.
Inc/Legacy/stm32_hal_legacy.h:#define __HAL_TIM_SetCompare __HAL_TIM_SET_COMPARE
Копаем еще глубже, в описании 1.4.0 говорится
Пакет прошивки STM32CubeF4 V1.4.0 / 26 декабря 2014 г.
Основные изменения
Технический выпуск для исправления известных дефектов и реализации нескольких улучшений.
Макросы и литералы HAL переименованы для обеспечения совместимости между сериями STM32, обратная совместимость поддерживается благодаря новому добавленному файлу stm32_hal_legacy.h в /Inc/Legacy.
Таким образом, это должно быть время, когда __HAL_TIM_SetCompare
устарело в пользу __HAL_TIM_SET_COMPARE
.
Однако вы все равно должны получить определение псевдонима, потому что все заголовки HAL включают stm32_hal_legacy.h
.
Бенс Кауликс
__HAL_TIM_SetCompare
в любом случае это просто устанавливает регистр CCRx напрямую. Так что ИМО сейчас в порядке.