TM STM32F4xx Libraries  v1.0.0
Libraries for STM32F4xx devices from Tilen Majerle
tm_stm32f4_pwm.h
1 
30 #ifndef TM_PWM_H
31 #define TM_PWM_H 210
32 
109 #include "stm32f4xx.h"
110 #include "stm32f4xx_rcc.h"
111 #include "stm32f4xx_gpio.h"
112 #include "stm32f4xx_tim.h"
113 #include "tm_stm32f4_timer_properties.h"
114 #include "tm_stm32f4_gpio.h"
115 #include "defines.h"
116 
126 typedef enum {
138 
142 typedef struct {
143  TIM_TypeDef* TIM;
144  uint32_t Period;
145  uint32_t Prescaler;
146  uint32_t Frequency;
147  uint32_t Micros;
150  uint32_t CH_Periods[4];
151  uint8_t CH_Init;
152 } TM_PWM_TIM_t;
153 
157 typedef enum {
163 
167 typedef enum {
172 
190 TM_PWM_Result_t TM_PWM_InitTimer(TIM_TypeDef* TIMx, TM_PWM_TIM_t* TIM_Data, double PWMFrequency);
191 
200 
208 TM_PWM_Result_t TM_PWM_SetChannel(TM_PWM_TIM_t* TIM_Data, TM_PWM_Channel_t Channel, uint32_t Pulse);
209 
217 TM_PWM_Result_t TM_PWM_SetChannelPercent(TM_PWM_TIM_t* TIM_Data, TM_PWM_Channel_t Channel, float percent);
218 
231 TM_PWM_Result_t TM_PWM_SetChannelMicros(TM_PWM_TIM_t* TIM_Data, TM_PWM_Channel_t Channel, uint32_t micros);
232 
245 #endif
246 
PWM Timer data.
Definition: tm_stm32f4_pwm.h:142
Definition: tm_stm32f4_pwm.h:170
Definition: tm_stm32f4_pwm.h:133
uint32_t Prescaler
Definition: tm_stm32f4_pwm.h:145
TM_PWM_Result_t TM_PWM_InitTimer(TIM_TypeDef *TIMx, TM_PWM_TIM_t *TIM_Data, double PWMFrequency)
Initializes specific timer for PWM capability.
uint32_t Frequency
Definition: tm_stm32f4_pwm.h:146
TM_PWM_PinsPack_t
Pin selected for corresponding channel on specific channel.
Definition: tm_stm32f4_pwm.h:167
Definition: tm_stm32f4_pwm.h:169
Definition: tm_stm32f4_pwm.h:160
TM_PWM_Result_t TM_PWM_InitChannel(TM_PWM_TIM_t *TIM_Data, TM_PWM_Channel_t Channel, TM_PWM_PinsPack_t PinsPack)
Initializes channel used for specific timer.
TM_PWM_Result_t
PWM Result enumeration.
Definition: tm_stm32f4_pwm.h:126
Definition: tm_stm32f4_pwm.h:158
Definition: tm_stm32f4_pwm.h:168
Definition: tm_stm32f4_pwm.h:161
uint32_t Period
Definition: tm_stm32f4_pwm.h:144
Definition: tm_stm32f4_pwm.h:128
Definition: tm_stm32f4_pwm.h:130
Definition: tm_stm32f4_pwm.h:129
TM_PWM_Result_t TM_PWM_SetChannelMicros(TM_PWM_TIM_t *TIM_Data, TM_PWM_Channel_t Channel, uint32_t micros)
Sets PWM value for specific timer and channel with pulse high time feature.
TIM_TypeDef * TIM
Definition: tm_stm32f4_pwm.h:143
uint32_t Micros
Definition: tm_stm32f4_pwm.h:147
TM_PWM_Result_t TM_PWM_SetChannel(TM_PWM_TIM_t *TIM_Data, TM_PWM_Channel_t Channel, uint32_t Pulse)
Sets PWM value for specific timer and channel.
TM_PWM_Result_t TM_PWM_SetChannelPercent(TM_PWM_TIM_t *TIM_Data, TM_PWM_Channel_t Channel, float percent)
Sets PWM value for specific timer and channel with percentage feature.
Definition: tm_stm32f4_pwm.h:127
Definition: tm_stm32f4_pwm.h:159
TM_PWM_Channel_t
Channel selection for PWM on specific timer.
Definition: tm_stm32f4_pwm.h:157
Definition: tm_stm32f4_pwm.h:134
uint8_t CH_Init
Definition: tm_stm32f4_pwm.h:151
Definition: tm_stm32f4_pwm.h:131