Сам я начинающий в этом деле, если что не так опишу, просьба сильно не пинать)
До работы с STM микроконтроллерами, упорно изучал AVR. После приобретения своей первой платы STM32f3discovery, своим первым проектом, конечно же, хотел помигать светодиодами. Думал ща приду домой, включу и сразу начну программировать и без проблем делать всякие там проекты. Но не тут то было. После создания проекта постоянно вылетали всякие ошибки, компилятор постоянно ругался на недостающие файлы.
Наиболее часто вылетала ошибка типа этой:
«.\Objects\Ex3.axf: Error: L6218E: Undefined symbol assert_param (referred from stm32f30x_adc.o). Not enough information to list image symbols. Finished: 1 information, 0 warning and 1 error messages. ".\Objects\Ex3.axf" - 1 Error(s), 497 Warning(s). Target not created.»
После долгих попыток наконец-то удалось установить причину всех моих неудач. Ниже представлены несколько шагов, которые делаю я для создания проекта. Эти шаги облегчат процесс создание своих первых проектов на микроконтроллерах семейства STM32.
Среда Keil имеет свои «внутренние» файлы, которые она использует по умолчанию. К примеру фалы отвечающие за конфигурацию периферии и др. Для того чтобы компилятор использовал скипированные файлы необходимо сделать
1. Шаг первый – скачиваем файлы настройки контроллера
Для того чтобы настроить свой первый проект вам необходимо для начала скачать архив для вашей конкретной платы с официального сайта
Для своей платы STM32f3Discovery я скачал архив с примерами по ссылки
http://www.st.com/web/catalog/mmc/FM141/SC1169/SS1576/LN1531/PF252054#
Далее распаковываем данный архив.
2. Создаем папки проекта
После этого в папке с проектом создаем 4 папки
У меня это выглядит так:
"F:\Projects\STM32\Ex4\cmsis"
"F:\Projects\STM32\Ex4\pl"
"F:\Projects\STM32\Ex4\startup"
"F:\Projects\STM32\Ex4\user"
3. Создаем аналогичные группы в среде Keil u vision
Аналогично в нашем проекте создаём группы с такими же названиями. Названия можно давать любые, но чтобы не путаться лучше такие же, как и сами папки.
Важно понимать, что создание группы в проекте это не создание аналогичных папок в папке проекта, а всего лишь группировка исполняемых файлов.
4. Копируем нужные файлы в папки проекта
Далее нам необходимо скопировать из нашего,ранее скаченного архива, следующие файлы.
В папку cmsis следующие 3 файла:
Файл stm32f30x.h – это файл необходимый для настройки работы микроконтроллера.
В папку pl две папки из STM32F30x_StdPeriph_Driver это
inc и src, в которых находится куча файлов для работы с периферией.
Также в папку pl необходимо скопировать файл stm32f30x_conf.h из любого проекта.
В итоге имеем:
В папку startupкопируем следующий файл
"F:\Projects\STM32\Ex4\startup\startup_stm32f30x.s"
В папке userсоздаем наш исполняемый файл main.c
5. Добавляем файлы в проект
В среде Keil нам необходимо добавить некоторые файлы в созданные группы.
На данном этапе это выглядит так:
6. Самый главные этап создания проекта
Далее нам необходимо открыть файл stm32f30x.h и убрать комментарий со следующей строки:
/* #define USE_STDPERIPH_DRIVER*/
В результате Keil начинает использовать ваши скопированные файлы.
7. Добавляем в проект стандартную библиотеку core
Для того чтобы добавить данную библиотеку необходимо менеджере проектов выбрать пунк Run-TimeEnviroment и поставить галочку в поле CMSIS.
Далее открываем наш main.c и компилируем, если ошибок нет. Значит проект настроен верно.
Комментарии
Здравсвуйте, точно сейчас не могу вспомнить но вроде этот
STSW-STM32108
STM32F30x/31x DSP and standard peripherals library,includi ng 81 examples for 25 different peripherals and template project for 5 different IDEs (UM1581)
находится во вкладке design and resources