Implementation of stm32 pwm driver. More...
#include <stdlib.h>
#include <errno.h>
#include "no_os_util.h"
#include "no_os_gpio.h"
#include "no_os_pwm.h"
#include "stm32_gpio.h"
#include "stm32_pwm.h"
#include "stm32_irq.h"
Macros | |
#define | PWM_DEFAULT_PERIOD 0xffff |
#define | NO_OS_CHN_TO_STM32_CHN(x) |
#define | FREQUENCY_HZ_TO_TIME_NS_FACTOR 1000000000.0 |
Functions | |
int32_t | stm32_pwm_init (struct no_os_pwm_desc **desc, const struct no_os_pwm_init_param *param) |
Initialize the PWM. | |
int32_t | stm32_pwm_remove (struct no_os_pwm_desc *desc) |
Free the resources allocated by stm32_pwm_init() | |
int32_t | stm32_pwm_enable (struct no_os_pwm_desc *desc) |
Enable the PWM. | |
int32_t | stm32_pwm_disable (struct no_os_pwm_desc *desc) |
Disable the PWM. | |
int32_t | stm32_pwm_set_period (struct no_os_pwm_desc *desc, uint32_t period_ns) |
Set the PWM period. | |
int32_t | stm32_pwm_get_period (struct no_os_pwm_desc *desc, uint32_t *period_ns) |
Get the PWM period. | |
int32_t | stm32_pwm_set_duty_cycle (struct no_os_pwm_desc *desc, uint32_t duty_cycle_ns) |
Set the PWM duty cycle. | |
int32_t | stm32_pwm_get_duty_cycle (struct no_os_pwm_desc *desc, uint32_t *duty_cycle_ns) |
Get the PWM duty cycle. | |
Variables | |
const struct no_os_pwm_platform_ops | stm32_pwm_ops |
STM32 platform specific PWM platform ops structure. | |
Implementation of stm32 pwm driver.
Copyright 2023-25(c) Analog Devices, Inc.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES, INC. “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANALOG DEVICES, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define FREQUENCY_HZ_TO_TIME_NS_FACTOR 1000000000.0 |
#define NO_OS_CHN_TO_STM32_CHN | ( | x | ) |
#define PWM_DEFAULT_PERIOD 0xffff |
int32_t stm32_pwm_disable | ( | struct no_os_pwm_desc * | desc | ) |
Disable the PWM.
desc | - PWM descriptor |
int32_t stm32_pwm_enable | ( | struct no_os_pwm_desc * | desc | ) |
Enable the PWM.
desc | - PWM descriptor |
int32_t stm32_pwm_get_duty_cycle | ( | struct no_os_pwm_desc * | desc, |
uint32_t * | duty_cycle_ns ) |
Get the PWM duty cycle.
desc | - Pointer where the configured instance is stored. |
duty_cycle_ns | - PWM duty cycle. |
int32_t stm32_pwm_get_period | ( | struct no_os_pwm_desc * | desc, |
uint32_t * | period_ns ) |
Get the PWM period.
desc | - Pointer where the configured instance is stored. |
period_ns | - PWM period. |
int32_t stm32_pwm_init | ( | struct no_os_pwm_desc ** | desc, |
const struct no_os_pwm_init_param * | param ) |
Initialize the PWM.
desc | - PWM descriptor. |
param | - The structure containing PWM init parameters. |
int32_t stm32_pwm_remove | ( | struct no_os_pwm_desc * | desc | ) |
Free the resources allocated by stm32_pwm_init()
desc | - PWM descriptor |
int32_t stm32_pwm_set_duty_cycle | ( | struct no_os_pwm_desc * | desc, |
uint32_t | duty_cycle_ns ) |
Set the PWM duty cycle.
desc | - Pointer where the configured instance is stored. |
duty_cycle_ns | - PWM duty cycle. |
int32_t stm32_pwm_set_period | ( | struct no_os_pwm_desc * | desc, |
uint32_t | period_ns ) |
Set the PWM period.
desc | - Pointer where the configured instance is stored. |
period_ns | - PWM period. |
const struct no_os_pwm_platform_ops stm32_pwm_ops |
STM32 platform specific PWM platform ops structure.
STM32 specific PWM platform ops structure.