|
|
  |
STM32F4 срабатывает прерывание хотя таймер не включен |
|
|
|
Apr 27 2015, 14:46
|
Частый гость
 
Группа: Участник
Сообщений: 140
Регистрация: 21-04-11
Пользователь №: 64 524

|
Добрый день! Использую STM32F4DISCOVERY и Keil настраиваю таймер вот так: Код // Timer initialization RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); // APB1 div == 4, freq == 42 MGz TIM_TimeBaseStructure.TIM_ClockDivision = 0; TIM_TimeBaseStructure.TIM_Prescaler = 42000 - 1; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseStructure.TIM_Period = 1; TIM_TimeBaseStructure.TIM_RepetitionCounter = 0; TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE); //TIM_ClearITPendingBit(TIM2, TIM_IT_Update); NVIC_EnableIRQ(TIM2_IRQn); После того как отработает NVIC_EnableIRQ(TIM2_IRQn) сразу попадаю в прерывание. В регистре SR выставляется флаг UIF, пытался его сбросить используя TIM_ClearITPendingBit(TIM2, TIM_IT_Update); не помогло. Сам же таймер я включаю позже. Как правильно делать?
|
|
|
|
|
Apr 27 2015, 17:11
|
Частый гость
 
Группа: Участник
Сообщений: 140
Регистрация: 21-04-11
Пользователь №: 64 524

|
Цитата(ViKo @ Apr 27 2015, 18:14)  Включайте раньше, тогда, видимо, сбросите. Спасибо за ответ. Мне необходимо запускать таймер когда по USART принимаю пакет для того, чтобы реализовать тайминг по приёму пакета, т.е. если во время приёма пакета между байтами превышен некоторый временной интервал, то считается что пакет отвалился. Это значит что таймер мне требуется запускать в момент приёма первого байта, и останавливать после приёма всего пакета. Т.е. таймер у меня всё время не будет запущен. Думаю косяк где-то в инициализации, пока не разобрался...
|
|
|
|
|
Apr 28 2015, 13:16
|
Частый гость
 
Группа: Участник
Сообщений: 140
Регистрация: 21-04-11
Пользователь №: 64 524

|
Цитата(AHTOXA @ Apr 27 2015, 20:19)  Попробуйте поднять TIM_ClearITPendingBit(TIM2, TIM_IT_Update); ещё на одну строчку выше. Действительно помогло. Большое спасибо!)
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|