В данной серии статей будут приведены примеры работы с периферией STM32L с помощью библиотеки, предоставляемой ST — StdPeriph. Перед использованием примеров не забывайте включать, соответствующие файлы библиотеки в проект.
- Порты GPIOx
- Прерывания
- Timer 6
- USART
- I2C
- SPI
- DMA
- Системный таймер
- EEPROM
- RTC
- Тактирование 32МГц с настройкой пропуска такта flash
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);
}