:::: MENU ::::

Примеры использования StdPeriph — Timer 6

В данной серии статей будут приведены примеры работы с периферией STM32L с помощью библиотеки, предоставляемой ST — StdPeriph. Перед использованием примеров не забывайте включать, соответствующие файлы библиотеки в проект.

Timer 6

void timer_6_init(void)
{
  TIM_TimeBaseInitTypeDef TIMER_InitStructure;
  NVIC_InitTypeDef NVIC_InitStructure;

  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6, ENABLE);
  TIM_TimeBaseStructInit(&TIMER_InitStructure);

  TIMER_InitStructure.TIM_CounterMode = TIM_CounterMode_Up; // считает вверх
  TIMER_InitStructure.TIM_Period = 16; // до чего считать для прерывания
  TIMER_InitStructure.TIM_Prescaler = 1000; // делитель частоты тактирования МК
  TIM_TimeBaseInit(TIM6, &TIMER_InitStructure);

  NVIC_InitStructure.NVIC_IRQChannel = TIM6_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);

  TIM_ITConfig(TIM6, TIM_IT_Update,ENABLE);
  TIM_Cmd(TIM6, ENABLE);
}

void TIM6_IRQHandler(void)
{
  TIM_ClearITPendingBit(TIM6, TIM_IT_Update);
}