STM32F303 STM32CubeMX __HAL_TIM_SetCompare macro no existe

Estoy usando CubeMX para generar código para mi NucleoF303. Estoy un poco confundido sobre cómo configurar el ancho de pulso de un temporizador en modo PWM.

Anteriormente (usando un F4) había una macro __HAL_TIM_SetCompare en el archivo stm32fxxx_hal_tim.h.

Pero eso no existe. ¿Se supone que debo establecer el ciclo de trabajo de alguna otra manera?

Por supuesto, puedo configurar directamente los registros CCRx. Eso funciona. Pero si voy a usar un HAL con mucha abstracción como parece ser el cubo, al menos me gustaría saber cómo pretenden que lo use. Incluso si no lo hago.

Realmente no hay ningún código para esta pregunta. Pero aquí está mi compromiso actual en caso de que sea útil: https://github.com/c-herring/Sumo2017_NucleoF303/tree/221dc57a305ccd64a4b98726df3cce02720b280b

¡Salud!

Bueno, puede consultar la descripción de HAL de STM32CubeF3, pero hasta donde yo sé, no hay nada para usted, aparte de volver a configurar todo el canal. __HAL_TIM_SetCompareesto solo establece el registro CCRx directamente de todos modos. Entonces, en mi opinión, está bien ahora.

Respuestas (1)

Anteriormente (usando un F4) había una macro __HAL_TIM_SetCompare en el archivo stm32fxxx_hal_tim.h.

De hecho, eso fue hace algún tiempo. Encontré una copia de STM32CubeF4 V1.6.0 (lanzado el 28 de mayo de 2015) en un directorio de proyecto antiguo y ya tiene la siguiente definición de alias

Inc/Legacy/stm32_hal_legacy.h:#define __HAL_TIM_SetCompare            __HAL_TIM_SET_COMPARE

Profundizando aún más, la descripción de 1.4.0 dice

Paquete de firmware STM32CubeF4 V1.4.0 / 26 de diciembre de 2014

Cambios Principales

Versión de mantenimiento para corregir defectos conocidos e implementación de varias mejoras

Cambio de nombre de macros y literales HAL para garantizar la compatibilidad en la serie STM32, compatibilidad con versiones anteriores mantenida gracias al nuevo archivo agregado stm32_hal_legacy.h en /Inc/Legacy

Por lo tanto, debe ser el momento en que __HAL_TIM_SetComparequedó obsoleto a favor de __HAL_TIM_SET_COMPARE.

Sin embargo, aún debe obtener la definición de alias, porque todos los encabezados HAL incluyen stm32_hal_legacy.h.