Activating TIMER PWM mode with CMSIS. Need help!
Hi all!
I'm fighting witn CMSIS, and now I'm triyng to start a timer in PWM mode.
The MCU is a STM32F303CCT6, and the timer I want to use is TIMER3, activating a led on PA6.
I didnt modify any clock, so I supose the MCU uses the HSI clock at 8MHz.
This is the code, but dont work. Any advice?:
/* USER CODE BEGIN 2 */
//Enable GPIOA
RCC->AHBENR |= RCC_AHBENR_GPIOAEN;
//Enable TIM3
RCC->APB1ENR |= RCC_APB1ENR_TIM3EN;
//Alternate Function 2 for A6 (TIM3 CH1)
GPIOA->AFR[0] = 0x02000000;
//Alternate mode for PA6 pin
GPIOA->MODER &= ~GPIO_MODER_MODER6_0;
GPIOA->MODER |= GPIO_MODER_MODER6_1;
//Select PWM mode 1
TIM3->CCMR1 &= ~(TIM_CCMR1_OC1M_0 | TIM_CCMR1_OC2M_3);
TIM3->CCMR1 |= TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC2M_2 | TIM_CCMR1_OC1PE;
//Enabler channel 1 from TIM3
TIM3->CCER |= TIM_CCER_CC1E;
TIM3->PSC = 8000;
TIM3->ARR = 1000;
TIM3->CCR1 = 500;
TIM3->EGR |= TIM_EGR_UG;
TIM3->CR1 |= TIM_CR1_CEN;
/* USER CODE END 2 */-
/* USER CODE BEGIN 2 */
//Enable GPIOA
RCC->AHBENR |= RCC_AHBENR_GPIOAEN;
//Enable TIM3
RCC->APB1ENR |= RCC_APB1ENR_TIM3EN;
//Alternate Function 2 for A6 (TIM3 CH1)
GPIOA->AFR[0] = 0x02000000;
//Alternate mode for PA6 pin
GPIOA->MODER &= ~GPIO_MODER_MODER6_0;
GPIOA->MODER |= GPIO_MODER_MODER6_1;
//Select PWM mode 1
TIM3->CCMR1 &= ~(TIM_CCMR1_OC1M_0 | TIM_CCMR1_OC2M_3);
TIM3->CCMR1 |= TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC2M_2 | TIM_CCMR1_OC1PE;
//Enabler channel 1 from TIM3
TIM3->CCER |= TIM_CCER_CC1E;
TIM3->PSC = 8000;
TIM3->ARR = 1000;
TIM3->CCR1 = 500;
TIM3->EGR |= TIM_EGR_UG;
TIM3->CR1 |= TIM_CR1_CEN;
/* USER CODE END 2 */
