Создание проекта в IDE Keil MDK. Загрузка IDE Keil MDK и в меню Project, страница 6

Файл определений stm32f4xx.h обязательно включается во все файлы проекта, в которых программируется  ядро или периферия микроконтроллера. Таким образом, файл stm32F4xx_conf.h становится доступным для всех файлов проекта.  В файле stm32F4xx_conf.h перечислены все файлы объявлений (*.h) библиотеки STM32F4xx_StdPeriph_Driver. В исходном состоянии эти объявления закомментированы. При использовании функции из библиотеки достаточно раскомментировать соответствующую строку.

Скопируется файл stm32F4xx_conf.h в наш проект и раскомментируем в нем  объявления нужных  нам файлов: stm32f4xx_rcc.h – конфигурирование системы тактирования, stm32f4xx_gpio_c.h – работа с портами ввода-вывода, stm32f4xx_usart_c.h – работа с интерфейсом USART.

Поскольку мы планируем использовать библиотечные функции для работы с системой тактирования, портами ввода-вывода и интерфейсом USART, то подключим соответствующие файлы реализации к проекту (stm32F4xx_conf.c, stm32f4xx_gpio_c.c, stm32f4xx_usart_c.c )

Напишем первую функцию нашей программы. Ее задача – управлять светодиода на макетной плате. Подключение светодиодов к микроконтроллеру показано на следующем рисунке.

Как следует из рисунка, светодиоды подключены к порту GPIOD к выводам 12, 13, 14 и 15.

В первую очередь опишем режим работы выводов порта GPIOG 12-15. Для этого воспользуемся структурой GPIO_PIN_DECLARATION из файла gpio.h.

typedef struct

{

// Указатель на порт ввода-выода

GPIO_TypeDef *GPIOx;

// Указатель на структуру с описанием свойств отдельного вывода.          

GPIO_InitTypeDef  InitStruct; 

}GPIO_PIN_DECLARATION;

Структура GPIO_InitTypeDef  описана в файле stm32F4xx_gpio_c.h. В этом же файле перечислены все значения, которые можно присваивать полям структуры. Не нужно изобретать собственных имен и обозначений для ядра и периферии. Нужно пользоваться готовыми разработками фирмы  производителя.

Объявим константы типа GPIO_PIN_DECLARATION, и присвоим им значения, которые определяют режим работы вывода

const GPIO_PIN_DECLARATION LED1 =

{ GPIOD,                    // Порт, к которому подключен светодиод

{ GPIO_Pin_12,       // Номер вывода, к которому подключен светодиод 

GPIO_Mode_OUT,     // Вывод используется как выход

GPIO_Speed_2MHz,   // Максимальная частота переключения вывода 2 МГц.

GPIO_OType_PP,     // Тип выхода - обычный

GPIO_PuPd_NOPULL   // Подтягивающие резисторы отключены

}

};

Аналогичным образом опишем и оставшиеся выводы, включим тактирование порта GPIOD и проинициализируем нужные нам выводы.

Все порты ввода вывода подключены к шине AHB1. Для включения тактирования воспользуемся функцией CC_AHB1PeriphClockCmd( RCC_AHB1Periph_GPIOВ, ENABLE). Для инициализации выводов используем функцию mGPIO_Init(&LED1), которую вызовем отдельно для каждого вывода.

После инициализации в функции main() создадим бесконечный цикл, в котором будем управлять светодиодами.

Запустим сборку проекта и устраним все обнаруженные ошибки. Подключим макетную плату к персональному компьютеру и загрузим исполняемый файл нашего проекта в микроконтроллер. Для этого нажмем кнопку Load.  Во время загрузки программы в окне Build Output будет отображен процесс загрузки.

Видно, что при загрузке программы в микроконтроллер выполняются именно те операции которые мы выбрали при конфигурировании загрузчика на закладке Utilietes – Erase, Programming, Verify.

Запустим отладчик. Для этого нажмем кнопку  в главном окне среды программированияю. В результате откроется следующее окно

Порядок выполнения работы

1.  Скопировать на рабочую машину каталог devtools.

2.  Сконфигурировать и зарегистрировать IDE Keil MDK.

3.  При необходимости скорректировать реестр для нормального отображения кириллицы.

4.  Подключить макетную плату STM32F4DISCOVERY к компьютеру.

5.  Установить драйвер для ST-Link Debugger и утилиту STM32 ST-LINK Utility.

6.  Загрузить утилиту STM32 ST-LINK Utility и подключиться к плате STM32F4DISCOVERY

7.  В папке Projects создать каталог для нового проекта. Имя каталога определить следующим образом: начальные буквыфамилии_начальные буквы имени. В названиях папок и файлов использовать ЗАПРЕЩЕНЫ пробел и кириллица.

8.  Загружаем IDE Keil MDK открыть новый проект и поместить его в созданную папку.

9.  Сконфигурировать проект.

10.  В функции main() написать код для управления светодиодами на макетной плате STM32F4DISCOVERY.

11.  Использую плату STM32F4DISCOVERY отладить код.