реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> STM32 очень странный глюк USART1
Григорий Ревзин
сообщение Jan 13 2012, 18:45
Сообщение #1





Группа: Новичок
Сообщений: 4
Регистрация: 13-01-12
Пользователь №: 69 376



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

Что делать?
Очень рассчитываю на любые указания, я почти разбил себе голову. Заранее спасибо.
Go to the top of the page
 
+Quote Post
kan35
сообщение Jan 14 2012, 06:10
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 537
Регистрация: 22-02-06
Пользователь №: 14 594



hardault может возникать совершенно по разным причинам. Например, проблемы с памятью или вообще переполнение стека или неправильная инициализация, потому без кода ничего не посоветуешь тут. JTAG влиять может, точнее остановки по коду влияют...
У меня на этом камне работают все USARTы и UARTы, правда только с прерыванием на прием.
Go to the top of the page
 
+Quote Post
EugenyAM
сообщение Jan 30 2012, 10:19
Сообщение #3


Участник
*

Группа: Свой
Сообщений: 73
Регистрация: 14-10-08
Из: Omsk
Пользователь №: 40 929



А программа прошивается во Flash?
Указанный эффект может наблюдаться, если программа загружена в RAM.

Если пользуетесь IAR, проверьте галочку "Use flash loader" в опциях Debugger'а
Go to the top of the page
 
+Quote Post
SSerge
сообщение Jan 30 2012, 13:02
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528



USART1, говорите?
А проверьте-ка состояние ножек BOOT0 и BOOT1 при старте.


--------------------
Russia est omnis divisa in partes octo.
Go to the top of the page
 
+Quote Post
Alex Black
сообщение Mar 23 2012, 15:22
Сообщение #5





Группа: Участник
Сообщений: 7
Регистрация: 29-11-07
Из: Украина, Донецк
Пользователь №: 32 792



Когда пользовался ИАР до 6.30, то приходилось .icf файл создавать самому, так как стандартных не было в комплекте. А вот когда перешел на 6.30 и попробовал использовать .icf файл предыдущей версии, то оказалось, что не работает с похожими симптомами. В итоге выяснил, что для прерываний может использовать отдельный стек, так вот в новых файлах .icf он прописан, а в старых этого описания нет. Когда обнаружил, что в новой версии ИАР есть штатный ICF файл для моего камня и прописал его, то все заработало.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 20:08
Рейтинг@Mail.ru


Страница сгенерированна за 0.01414 секунд с 7
ELECTRONIX ©2004-2016