Первая программа
Основной код программы хранится в файле main.c. Найдём этот файл в дереве проекта и откроем его. Слева появится вкладка с редактором кода выбранного файла.
Код состоит из фрагментов, которые генерируются автоматически при любом изменении в конфигураторе, и фрагментов, куда разработчик может вставить свой код. Фрагменты разработчика помечены комментарием, начинающимся со слов «USER CODE«. Если написать что-то, вне этих фрагментов, конфигуратор всё удалит!
Найдем главный суперцикл программы, а в нём фрагмент:
/* USER CODE BEGIN 3 */
/* USER CODE END 3 */
Теперь придумаем, что туда вписать. Для смены состояния контакта используем стандартную функцию:
HAL_GPIO_WritePin(порт, индекс, состояние)
Здесь порт — имя порта, которому принадлежит контакт. Поскольку мы назначили псевдоним, то имя будет такое: LED_GPIO_Port. Затем идёт индекс контакта в порту — LED_Pin. Наконец, третий параметр — состояние: GPIO_PIN_SET — высокий уровень либо GPIO_PIN_RESET — низкий уровень (в Ардуино это эквивалентно HIGH и LOW).
После включения и выключения светодиода нам нужно немного подождать, иначе глаз не заметит столь быстрого мигания. Используем функцию:
HAL_Delay(время)
где время — количество миллисекунд, которые нужно подождать.
Таким образом, чтобы мигнуть светодиодом, пишем:
HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_SET);
HAL_Delay(50);
HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_RESET);
HAL_Delay(500);
А вот так это будет выглядеть в редакторе.
Сохраняем файл и переходим к сборке проекта.
Компиляция программы
Чтобы собрать все компоненты программы воедино и превратить это в код пригодный для работы в микроконтроллере, запустим процесс сборки. Для этого, выберем в меню пункт: Project / Build Project. В консоли под вкладками начнет отображаться процесс сборки, который завершится текстом:
22:05:23 Build Finished. 0 errors, 0 warnings. (took 25s.625ms)
Если рядом с errors стоит не 0, значит в коде какая-то ошибка. Пока все ошибки не будут устранены, программа не скомпилируется. warnings — это предупреждения, на которые тоже следует обратить внимание, но они не препятствуют сборке программы.
Следующий этап — самый волнующий: загрузка программы на микроконтроллер.


