Всем привет.
Такое дело: на STM32F103RG есть USART. Я его настроил, с первого взгляда всё заработало (передавал текстовую строку в терминал на комп через FT232 по прерываниям, строка приходила и правильно читалась в терминале).
Проблема в том, что сразу после прошивки (шью через JTAG ST-Link'ом) всё работает правильно. Однако если выключить и включить контроллер, то
- USART инициализируется
- Первый раз попадает в прерывание USART1_IRQn (в коде обработчика в самом начале есть включение светодиода, он загорается).
- После чего контроллер виснет на HardFault_Handler (посмотрел содержимое PC через ST-Link Utility), ничего не передав по USART (смотрел на линию Tx осциллографом, там ничего нет).
- Особый прикол в том, что если попытаться отдладить программу через JTAG и посмотреть, где вылезает ошибка, то всё работает хорошо.
- Перепрошивка решает проблему, всё снова работает как надо до следующего отключения питания.
Что делать?
Очень рассчитываю на любые указания, я почти разбил себе голову. Заранее спасибо.