Cube IDE для начинающих
Разбор функционала IDE с помощью простейшего проекта мигания светодиодами
Last updated
Разбор функционала IDE с помощью простейшего проекта мигания светодиодами
Last updated
Далее следует туториал по созданию проекта и базовым функциям IDE, а также основам программирования микроконтроллеров и, наконец, работе с простым мотором.
Предполагается, что вы уже установили CubeIDE по инструкции из предыдущей статьи.
В среде CubeIDE выбираем File -> New -> STM32Project, выбираем микроконтроллер STM32G474RET6, нажимаем Next. В открывшемся окне задаем имя проекта, остальное – по умолчанию. Далее Finish и CubeIDE создаст проект и откроет окно (файл *.ioc ) с изображением микросхемы контроллера.
Количество выводов микросхемы существенно меньше количества входов-выходов всех его периферийных модулей. Поэтому большинство выводов многофункциональны. В каждом конкретном исполнении выводы приобретают конкретные функции и должны быть правильно сконфигурированы.
Ниже приведена конфигурация для нашего случая.
Мы будем использовать два диода, LED1 и LED2. Соответственно, ножки PD2
и PA5
выставляем в GPIO Output
.
Кроме того, мы будем использовать внешнее тактирование во всех проектах, каждый раз этот этап повторять в инструкциях не будем, но надо помнить, что это обязательно настроить. System Core -> RCC -> High Speed Clock -> Crystal/Ceramic Resonator.
CubeIDE сгенерировал нам весь необходимый базовый код. Откроем Code -> Src -> main.c. Можно заметить, что по всему файлу разбросаны блоки USER CODE BEGIN / USER CODE END
. Писать код можно только внутри них! Все остальное удалиться при повторной генерации кода для проекта, что происходит при любом изменении параметров в графическом редакторе. Найдем участок:
И добавим туда следующее:
Все! Если залить этот код, то диод будет мигать с периодом в секунду.
После настройки выводов и параметров периферии нажимаем кнопку . Во вкладке Project Explorer будет создана файловая структура проекта, содержащая собственно программу в папке Src с набором файлов, из которых будем использовать только два: main.c и stm32g4xx_it.c. Последний содержит обработчики прерываний. В папке проекта Drivers содержатся библиотеки, нужные для работы с используемыми в проекте модулями. Подпапка CMSIS содержит описание структур данных, непосредственно связанное с аппаратной реализацией микроконтроллера, включая физические адреса регистров его периферийных модулей. В принципе, этого достаточно для написания собственной программы, однако требует значительного объема программирования. Проще использовать готовые библиотеки, содержащиеся в подпапке STM32G4xx_HAL_Driver.
Эти две операции осуществляются соответственно с помощью кнопок и . Уже сейчас программу можно загрузить, но пока чтто она ничего не будет делать.