ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
3 июля
528632
Argon (08.07.2014 17:33 - 17:52, просмотров: 13376)
STM32F2: что-то не могу запустить прерывания по таймеру (IAR). Сам таймер (TIM3) исправно работает. При вот такой инициализации прерываний: /* Enable the CC2 Interrupt Request */ TIM_ITConfig(TIM3, TIM_IT_Update, ENABLE); NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); виснет где-то в районе BusFault_Handler. Сам вектор прерывания сдернут из примеров: void TIM3_IRQHandler(void) { if(TIM_GetITStatus(TIM3, TIM_IT_Update) == SET) { TIM_ClearITPendingBit(TIM3, TIM_IT_Update); } } Подозреваю, что проблема где-то в векторе или его инициализации. Что я не сделал? может, таблица векторов где-то должна быть, куда прописать TIM3_IRQHandler? и вообще странно, что в примерах нет никаких прагм и прочих служебных слов рядом с векторами.