Здравствуйте! При использовании среды iar с использованием cmsis для stm32f407vet6 компилируется файл прошивки ( мигание светодиодом), но почему-то не работает при прошивке. Хотя если в этой же среде создать проект на ассемблере то устройство работает. В чем подвох?
Добрый день! А можешь проект выложить?
А почему в ODR ноль всегда? И я бы рекомендовал в данном случае для начала внутренний источник тактирования использовать.
@aveal Потому что светодиод подключён к 3.3 в через резистор, соответственно, чтобы зажечь на порт надо подать лог 0 или конфигурировать с открытым коллектором. Кварц пробывал тоже включать не помогло. Ведь в проекте на ассемблере кварц невключалось, т. е тактирование по умолчанию, но всё работает.
Может не правильно передаются адреса? Пока не получается зажечь.
@aveal цель пока просто зажечь светодиод. Это на ассемблере там всё мигает, т. е через цикл.
Внешний кварц (HSE) наоборот я имел ввиду не активировать. А под отладчиком что происходит?
Внешний кварц (HSE) наоборот я имел ввиду не активировать. А под отладчиком что происходит?
под отладчиком могу сказать следующее: в регистры для косвенной адресации вроде правильно записываются адрес регистра ahb1enr и odr, управление функция main вроде получает. Либо Cmsis файл стартуп корявая или ещё, что нибудь, думаю реально в железе нет перехода на функцию main
@eduard-2 Я тоже об этом подумал как раз, но вроде там в папке проекта startup код присутствовал, на самом деле единственный вариант получается, что он не отрабатывает, и в main() просто не попадает в железе.
@eduard-2 у меня сейчас нет возможности, к сожалению, у себя собрать попробовать. Как вариант - взять готовый проект любой и посмотреть на предмет отличий в части startup'а.
Всем привет!
Не вероятно , но проект на С++ заработал. В чем ошибка была, так и не понял.
Всем участникам форума спасибо!!!
Вот архив рабочего проекта мигалка светодиодом STM32f407vet6, отладочная плата на скрине выше.
версия IAR EW 9.30.1