реклама на сайте
подробности

 
 
> запустить ШИМ на TIM3 STM32F103, как правильно инициализировать
andreichk
сообщение Aug 31 2013, 09:28
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 507
Регистрация: 15-04-06
Из: Германия
Пользователь №: 16 143



Привет народ, подскажите как правильно заремапить и запустить ШИМ на таймере TIM3 или TIM8 ?
Срисовал код инита, пытаюсь подать на выход PC6,PC7 импульсы, но что-то наверное не так или недоделано.

CODE
void pwm_init(void)
{
RCC->APB2ENR |= RCC_APB2ENR_IOPCEN; // Enable GPIOC clocking
RCC->APB1ENR |= RCC_APB1ENR_TIM3EN; // Enable TIM3 clocking
RCC->APB2ENR |= RCC_APB2ENR_AFIOEN; // Enable AFIO clocking

////////////////////////// GPIO
GPIOC->CRL = (GPIO_CRL_MODE7 |
GPIO_CRL_CNF7_1); // PC7 - Output mode 50 MHz
GPIOC->CRL &= (~GPIO_CRL_CNF7_0); // and alternate push-pull

//----------------------------------------
GPIOC->CRL |= (GPIO_CRL_MODE6 |
GPIO_CRL_CNF6_1); // PC6 - Output mode 50 MHz
GPIOC->CRL &= (~GPIO_CRL_CNF6_0); // and alternate push-pull
//----------------------------------------
GPIOC->CRL |= (GPIO_CRL_MODE6 |
GPIO_CRL_MODE7 |
GPIO_CRL_CNF6_1 |
GPIO_CRL_CNF7_1); // PC6, PC7 - Output mode 50 MHz
GPIOC->CRL &= (~(GPIO_CRL_CNF6_0 |
GPIO_CRL_CNF7_0)); // and alternate push-pull
GPIOC->ODR = 0x0000;

//---------------------------------------
AFIO->MAPR |= AFIO_MAPR_TIM3_REMAP_0;
AFIO->MAPR &= (~AFIO_MAPR_TIM3_REMAP_1);

//////////////////////////////// PWM Timer 3
TIM3->CR1 = TIM_CR1_ARPE;
TIM3->PSC = 8;
TIM3->ARR = 0x00FF;

TIM3->CCR1 = 100;
TIM3->CCR2 = 0xFF;
TIM3->CCR3 = 0x00;
TIM3->CCR4 = 0x00;

TIM3->CCMR1 = (TIM_CCMR1_OC1PE | TIM_CCMR1_OC1M |
TIM_CCMR1_OC2PE | TIM_CCMR1_OC2M);

TIM3->CCER = (TIM_CCER_CC1E | /*TIM_CCER_CC1P |*/
TIM_CCER_CC1NE | /*TIM_CCER_CC1NP |*/
TIM_CCER_CC2E | /*TIM_CCER_CC2P |*/
TIM_CCER_CC2NE /*| TIM_CCER_CC2NP*/);

TIM3->BDTR = (TIM_BDTR_MOE | ((4<<5) | 10));

TIM3->CR1 |= TIM_CR1_CEN;
}

// Задать скважность (0-0xFFFF)
void pwm_Set(uint16_t wert)
{
TIM3->CCR1 = wert;
}


Сообщение отредактировал IgorKossak - Aug 31 2013, 09:55
Причина редактирования: [codebox] для длинного кода, [code] - для короткого!!!


--------------------
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 15:00
Рейтинг@Mail.ru


Страница сгенерированна за 0.01371 секунд с 7
ELECTRONIX ©2004-2016