no-OS
Macros | Functions | Variables
stm32_pwm.c File Reference
#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"
Include dependency graph for stm32_pwm.c:

Macros

#define PWM_DEFAULT_PERIOD   0xffff
 
#define NO_OS_CHN_TO_STM32_CHN(x)   (0x4*(x-1))
 
#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. More...
 
int32_t stm32_pwm_remove (struct no_os_pwm_desc *desc)
 Free the resources allocated by stm32_pwm_init() More...
 
int32_t stm32_pwm_enable (struct no_os_pwm_desc *desc)
 Enable the PWM. More...
 
int32_t stm32_pwm_disable (struct no_os_pwm_desc *desc)
 Disable the PWM. More...
 
int32_t stm32_pwm_set_period (struct no_os_pwm_desc *desc, uint32_t period_ns)
 Set the PWM period. More...
 
int32_t stm32_pwm_get_period (struct no_os_pwm_desc *desc, uint32_t *period_ns)
 Get the PWM period. More...
 
int32_t stm32_pwm_set_duty_cycle (struct no_os_pwm_desc *desc, uint32_t duty_cycle_ns)
 Set the PWM duty cycle. More...
 
int32_t stm32_pwm_get_duty_cycle (struct no_os_pwm_desc *desc, uint32_t *duty_cycle_ns)
 Get the PWM duty cycle. More...
 

Variables

const struct no_os_pwm_platform_ops stm32_pwm_ops
 STM32 platform specific PWM platform ops structure. More...
 

Macro Definition Documentation

◆ FREQUENCY_HZ_TO_TIME_NS_FACTOR

#define FREQUENCY_HZ_TO_TIME_NS_FACTOR   1000000000.0

◆ NO_OS_CHN_TO_STM32_CHN

#define NO_OS_CHN_TO_STM32_CHN (   x)    (0x4*(x-1))

◆ PWM_DEFAULT_PERIOD

#define PWM_DEFAULT_PERIOD   0xffff

Function Documentation

◆ stm32_pwm_disable()

int32_t stm32_pwm_disable ( struct no_os_pwm_desc desc)

Disable the PWM.

Parameters
desc- PWM descriptor
Returns
0 in case of success, negative error otherwise.

◆ stm32_pwm_enable()

int32_t stm32_pwm_enable ( struct no_os_pwm_desc desc)

Enable the PWM.

Parameters
desc- PWM descriptor
Returns
0 in case of success, negative error code otherwise.

◆ stm32_pwm_get_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.

Parameters
desc- Pointer where the configured instance is stored.
duty_cycle_ns- PWM duty cycle.
Returns
0 in case of success, negative error code otherwise.

◆ stm32_pwm_get_period()

int32_t stm32_pwm_get_period ( struct no_os_pwm_desc desc,
uint32_t *  period_ns 
)

Get the PWM period.

Parameters
desc- Pointer where the configured instance is stored.
period_ns- PWM period.
Returns
0 in case of success, negative error code otherwise.

◆ stm32_pwm_init()

int32_t stm32_pwm_init ( struct no_os_pwm_desc **  desc,
const struct no_os_pwm_init_param param 
)

Initialize the PWM.

Parameters
desc- PWM descriptor.
param- The structure containing PWM init parameters.
Returns
0 in case of success, negative error code otherwise.

◆ stm32_pwm_remove()

int32_t stm32_pwm_remove ( struct no_os_pwm_desc desc)

Free the resources allocated by stm32_pwm_init()

Parameters
desc- PWM descriptor
Returns
0 in case of success, negative error code otherwise.

◆ stm32_pwm_set_duty_cycle()

int32_t stm32_pwm_set_duty_cycle ( struct no_os_pwm_desc desc,
uint32_t  duty_cycle_ns 
)

Set the PWM duty cycle.

Parameters
desc- Pointer where the configured instance is stored.
duty_cycle_ns- PWM duty cycle.
Returns
0 in case of success, negative error code otherwise.

◆ stm32_pwm_set_period()

int32_t stm32_pwm_set_period ( struct no_os_pwm_desc desc,
uint32_t  period_ns 
)

Set the PWM period.

Parameters
desc- Pointer where the configured instance is stored.
period_ns- PWM period.
Returns
0 in case of success, negative error code otherwise.

Variable Documentation

◆ stm32_pwm_ops

const struct no_os_pwm_platform_ops stm32_pwm_ops
Initial value:
= {
.pwm_ops_init = &stm32_pwm_init,
.pwm_ops_enable = &stm32_pwm_enable,
.pwm_ops_disable = &stm32_pwm_disable,
.pwm_ops_set_period = &stm32_pwm_set_period,
.pwm_ops_get_period = &stm32_pwm_get_period,
.pwm_ops_set_duty_cycle = &stm32_pwm_set_duty_cycle,
.pwm_ops_get_duty_cycle = &stm32_pwm_get_duty_cycle,
.pwm_ops_remove = &stm32_pwm_remove
}

STM32 platform specific PWM platform ops structure.

STM32 specific PWM platform ops structure.

stm32_pwm_enable
int32_t stm32_pwm_enable(struct no_os_pwm_desc *desc)
Enable the PWM.
Definition: stm32_pwm.c:447
stm32_pwm_set_duty_cycle
int32_t stm32_pwm_set_duty_cycle(struct no_os_pwm_desc *desc, uint32_t duty_cycle_ns)
Set the PWM duty cycle.
Definition: stm32_pwm.c:577
stm32_pwm_get_period
int32_t stm32_pwm_get_period(struct no_os_pwm_desc *desc, uint32_t *period_ns)
Get the PWM period.
Definition: stm32_pwm.c:553
stm32_pwm_disable
int32_t stm32_pwm_disable(struct no_os_pwm_desc *desc)
Disable the PWM.
Definition: stm32_pwm.c:483
stm32_pwm_init
int32_t stm32_pwm_init(struct no_os_pwm_desc **desc, const struct no_os_pwm_init_param *param)
Initialize the PWM.
Definition: stm32_pwm.c:341
stm32_pwm_remove
int32_t stm32_pwm_remove(struct no_os_pwm_desc *desc)
Free the resources allocated by stm32_pwm_init()
Definition: stm32_pwm.c:401
stm32_pwm_get_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.
Definition: stm32_pwm.c:611
stm32_pwm_set_period
int32_t stm32_pwm_set_period(struct no_os_pwm_desc *desc, uint32_t period_ns)
Set the PWM period.
Definition: stm32_pwm.c:512