AnsweredAssumed Answered

PWM tim3

Question asked by hakim.soni on Jan 23, 2014
Latest reply on Jan 23, 2014 by hakim.soni
hi, I'm using STM32F030R8T6 to create PWM with tim3 chanel3 (PB0) but after I check in oscilloscope nothing appear in pin B0. can someone help me find what is wrong with my code.


#include "stm32f0xx_gpio.h"
#include "stm32f0xx_rcc.h"
#include "stm32f0xx_tim.h"
#include "test.h"
 
void RCC_Configuration(void)
{
    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA|RCC_AHBPeriph_GPIOB, ENABLE);
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
}
 
void GPIO_Configuration(void)
{
    GPIO_InitTypeDef GPIO_InitStruct;
    GPIO_PinAFConfig(GPIOB, GPIO_PinSource0, GPIO_AF_2);
 
    GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0;
    GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF;
    GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;
    GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL;
    GPIO_InitStruct.GPIO_Speed = GPIO_Speed_2MHz;
    GPIO_Init(GPIOB, &GPIO_InitStruct);
}
 
void TIM_Configuration(void)
{
    TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
    TIM_OCInitTypeDef TIM_OCInitStructure;
 
    TIM_TimeBaseStructure.TIM_Prescaler = 72 - 1; // 72 to 1 MHz
    TIM_TimeBaseStructure.TIM_Period = 1000 - 1; // 1 MHz to 1 KHz
    TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
    TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
 
    TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);
 
    TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
    TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
    TIM_OCInitStructure.TIM_Pulse = 1000 / 2; // 50%
    TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;
 
    TIM_OC1Init(TIM3, &TIM_OCInitStructure);
    TIM_OC2Init(TIM3, &TIM_OCInitStructure);
    TIM_OC3Init(TIM3, &TIM_OCInitStructure);
 
    TIM_Cmd(TIM3, ENABLE);
}
 
int main (void)
{
 
    void RCC_Configuration(void);
    void TIM_Configuration(void);
    void TIM_Configuration(void);
 
 
    while(1)
    {
 
    }
}

thanks for you help

Outcomes