Файл определений 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 отладить код.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.