Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: STM32F051K4T6 TIM1 PWM
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
MiklPolikov
В процессоре STM32F051K4T6 не работает TIM1 PWM.
Такое впечатление, что что-то не так с таймером, будто бы его вообще нет, или на ногах нет функции PWM.
Подскажите, в чём дело ?
Заранее спасибо!


Код
  //Инициализация порта
     GPIOA->MODER &= ~(GPIO_MODER_MODER8_0 | GPIO_MODER_MODER9_0 | GPIO_MODER_MODER10_0 | GPIO_MODER_MODER11_0);     
     GPIOA->MODER |=  (GPIO_MODER_MODER8_1 | GPIO_MODER_MODER9_1 | GPIO_MODER_MODER10_1 | GPIO_MODER_MODER11_1);         
     GPIOA->OSPEEDR |= (GPIO_OSPEEDER_OSPEEDR8 | GPIO_OSPEEDER_OSPEEDR9 | GPIO_OSPEEDER_OSPEEDR10 | GPIO_OSPEEDER_OSPEEDR11);
     GPIOA->AFR[1]|=(2<<0);  //TIM1_CH1
     GPIOA->AFR[1]|=(2<<4);  //TIM1_CH2
     GPIOA->AFR[1]|=(2<<8);  //TIM1_CH3
     GPIOA->AFR[1]|=(2<<12); //TIM1_CH4


//Инициализация таймера
RCC->APB2ENR|=RCC_APB2ENR_TIM1EN;  //включили тактирование TIM1

   RCC->APB2RSTR|=RCC_APB2RSTR_TIM1RST;  //сброс настроек TIM1
   RCC->APB2RSTR&=~RCC_APB2RSTR_TIM1RST;  

   TIM1->CCER|=TIM_CCER_CC1E | TIM_CCER_CC2E  | TIM_CCER_CC3E | TIM_CCER_CC4E;

   TIM1->CCMR1|=TIM_CCMR1_OC1M_1|TIM_CCMR1_OC1M_2;
   TIM1->CCMR1|=TIM_CCMR1_OC2M_1|TIM_CCMR1_OC2M_2;
   TIM1->CCMR2|=TIM_CCMR2_OC3M_1|TIM_CCMR2_OC3M_2;
   TIM1->CCMR2|=TIM_CCMR2_OC4M_1|TIM_CCMR2_OC4M_2;
    
   TIM1->ARR=50;

   TIM1->PSC=0;
    
  TIM1->CCR1=25;
  TIM1->CCR2=0;
  TIM1->CCR3=0;
  TIM1->CCR4=0;
    
   TIM1->CR1|=TIM_CR1_CEN; //включили таймер


AHTOXA
У первого таймера есть специальный битик MOE в регистре BDTR. Без него никакие выходы не работают.
Код
    TIM1->BDTR |= TIM_BDTR_MOE;
Aleksandr Baranov
Я не заметил, делаете-ли Вы что-нибудь с битом "Preload Enable". У STM32F051 есть такой?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.