Создаем свой первый проект в Keil

В данной статье создадим первый рабочий проект в среде uVision от Keil, откомпилируем его, прошьем отладочную плату STM32VLDiscovery, рассмотрим некоторые «подводные камни», которые будут по мере работы над проектом. Ничего особенно писать не будем просто помигаем светодиодами. UPD: статья довольно старая, но информация в ней актуальна и для последней на данный момент версии Keil 5.23.Итак начнем. Для начала создаем пустой новый проект, в меню выбираем PROJECT -> New uVision Project, сохраняем его (проект имеет расширение .uvproj), выбираем в окне наш МК, в STM32VLDiscovery это STM32F100RB:

Keil создание проекта

Далее нам предложат добавить в проект стартовый код, жмем «Yes»:

Создадим новый файл с исходным кодом, сохраняем его, присвоив ему расширение .c, добавляем его к проекту в новую группу, также добавляем файлы библиотеки CMSIS, зачем они нужны в следующем уроке, пока просто добавляем:

Keil ARM STM32

Теперь необходимо выполнить конфигурацию проекта:

В окне проекта на вкладке Target видим установки адресов памяти IROM и IRAM, эти значения устанавливаются автоматически при выборе соответствующего чипа, менять их крайне нежелательно (Здесь также желательно установить Xtal частоту, на которой работает микроконтроллер):

Идем во вкладку Output и здесь ставим галочки напротив тех типов файлов, которые мы хотим получить на выходе проекта (Debug Information необходим для отладки устройства, HEX File – прошивка микроконтроллера):

Keil project config

Переходим во вкладку C/C++, если наш проект использует include файлы, то здесь необходимо в поле Include Paths установить пути до этих файлов:

В нашем проекте мы будем использовать файл stm32f10x.h, указываем путь до него:

Далее у нас идет настройка вкладок Debug и Utilities, где производится установка отладчика STLINK, в прошлом уроке мы это уже делали. Все на этом настройка проекта закончена, можно приступать к написанию кода.

Сделаем простую мигалку светодиодами, которые висят у нас на порту С (PC8, PC9) попеременно через пол секунды, кстати в Keil нет функции delay, как в GCC для AVR, так что нам придется написать эту функцию самостоятельно используя таймер:

Ну что ж, можно и компилировать и собирать проект, жмем F7 и у нас выпадает следующая ошибка: C:\Keil\ARM\INC\ST\STM32F10x\stm32f10x.h(96): error: #35: #error directive: «Please select first the target STM32F10x device used in your application (in stm32f10x.h file), которая говорит нам, что необходимо выбрать процессор в файле stm32f10x.h, зачем это придумали делать вручную я не знаю, открываем в проекте это файл и раскомментируем #define с нашим процессором (UPD правильнее сделать на вкладке С/С++ -> Preprocessor Symbol -> Defines вставляем «STM32F10X_MD_VL»):

После чего компиляция происходит успешно.

 

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *