...
The FreeRTOS BSP make uses of the STM32CubeH7 software component to provide a device driver for the STM32H7 PWM. The driver is configured (enabled / disabled) at the BSP build time, using the HAL_TIM_MODULE_ENABLED
configuration option, defined in the stm32h7xx_hal_conf.h
file.
1.2. FreeRTOS PWM C-Binding API
...
Function | Description | Comments |
HAL_StatusTypeDef HAL_TIM_PWM_Init(TIM_HandleTypeDef *htim)
|
| Initialize the TIM PWM mode according to the specified parameters by htim | htim is a pointer to a structure that contains the configuration information for TIM module; returns one of {HAL_OK, HAL_ERROR, HAL_BUSY, HAL_TIMEOUT}
|
HAL_StatusTypeDef HAL_TIM_PWM_DeInit(TIM_HandleTypeDef *htim)
|
| De-initialize the TIM peripheral | htim is a pointer to a structure that contains the configuration information for TIM module; returns one of {HAL_OK, HAL_ERROR, HAL_BUSY, HAL_TIMEOUT}
|
HAL_StatusTypeDef HAL_TIM_PWM_ConfigChannel(TIM_HandleTypeDef *htim, TIM_OC_InitTypeDef* sConfig, uint32_t Channel)
|
| Initialize the TIM PWM channel according to the specified parameters by sConfig | htim is a pointer to a structure that contains the configuration information for TIM module; sConfig is a TIM PWM configuration structure; Channel is a TIM channel to be configured; returns one of {HAL_OK, HAL_ERROR, HAL_BUSY, HAL_TIMEOUT}
|
HAL_StatusTypeDef HAL_TIM_PWM_Start(TIM_HandleTypeDef *htim, uint32_t Channel)
|
| Starts the PWM signal generation | htim is a pointer to a structure that contains the configuration information for TIM module; Channel is a TIM channel to be enabled; returns one of {HAL_OK, HAL_ERROR, HAL_BUSY, HAL_TIMEOUT}
|
HAL_StatusTypeDef HAL_TIM_PWM_Stop(TIM_HandleTypeDef *htim, uint32_t Channel)
|
| Stops the PWM signal generation | htim is a pointer to a structure that contains the configuration information for TIM module; Channel is a TIM channel to be disabled; returns one of {HAL_OK, HAL_ERROR, HAL_BUSY, HAL_TIMEOUT}
|
The TIM_HandleTypeDef
data structure used in this API has the following definition:
Code Block |
---|
typedef struct
{
TIM_TypeDef *Instance; /* Register base address */
TIM_Base_InitTypeDef Init; /* TIM Time Base required parameters */
HAL_TIM_ActiveChannel Channel; /* Active channel */
DMA_HandleTypeDef *hdma[7]; /* DMA Handlers array */
HAL_LockTypeDef Lock; /* Locking object */
__IO HAL_TIM_StateTypeDef State; /* TIM operation state */
} TIM_HandleTypeDef; |
The TIM_OC_InitTypeDef
data structure used in HAL_TIM_PWM_ConfigChannel
interface has the following definition:
...
Command | Description | Comments |
pwm_start <tim> <chnl> <period> <duty>
| Start a PWM output signal | tim M is the timer number, chnl is the channel number, period is the PWM output frequency (value in nanoseconds), duty is the duty cycle (percentage value) |
pwm_stop <tim> <chnl>
| Stop a PWM output | tim is the timer number, chnl M is the channel number
|
3. Validating PWM Operation
...