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!
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_SetCompare
quedó 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
.
Bence Kaulics
__HAL_TIM_SetCompare
esto solo establece el registro CCRx directamente de todos modos. Entonces, en mi opinión, está bien ahora.