csm7 0 13 января, 2020 Опубликовано 13 января, 2020 · Жалоба В работающем проекте созданном в stm32CubeMX настроены usart1,3 (c прерыванием), tim2 (с прерыванием по переполнению), CMSIS-RTOS (живет три потока, osMail). Понадобилось подключить TIM2, TIM6 c прерываниями - но таймеры не работают, в функцию прерывания таймеров TIM2, TIM6 контроллер не входит.Проект написан в среде Keil и установлены настройки для stm32l151vd но при этом среда видит настройки как для stm32l152rbt6 (с меньшим объемом памяти и ОЗУ в два раза ).В проекте подключен sturtup_stm32l151xd.s, system_stm32l1xx.c, stm32l1xx_hal_tim.cВ файле stm32l1xx_it.c - есть функции для прерываний usart1,3 tim2 а вот для TIM3, TIM6 нет - может в этом грабли.В чем может быть глюк? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vlad_G 7 13 января, 2020 Опубликовано 13 января, 2020 · Жалоба Если имя прерывания правильно написали, то какая разница кубом сгенерировано или сами написали? У меня такая же фигня была только с tim16 и с F303 при включенной оптимизации, куб не использовал, в ручную на регистрах. После отключения оной все заработало. Пока не разбирался что к чему, но надо исправлять кривизну :о) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
csm7 0 13 января, 2020 Опубликовано 13 января, 2020 (изменено) · Жалоба Запустил прерывание, оказалось в файле stm32l1xx_it.c прописал вручную функцию void TIM3_IRQHandler(void) и прерывание заработало. Всем спасибо за обсуждение вопроса Изменено 13 января, 2020 пользователем csm7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться