user

Авторизация

Добро пожаловать!

Регистрация

Graf

stm32

STM32 GPIO (цифровой вывод данных)

 В этой лабораторной работе мы настроим GPIO для вывода. Затем мы сделаем мигание первого светодиода с помощью Blue Pill STM32. Вы узнаете все шаги по настройке STM32 CubeMX, перенесете код из CubeIDE на плату и начнете тестирование.

Конфигурации STM32 CubeMX   

 Шаг 1. Откройте CubeMX и создайте новый проект.

 Шаг 2. Выберите целевой MCU и дважды щелкните его имя.

 Шаг 3. Нажмите на контакт, который вы хотите настроить в качестве выхода, и выберите вариант вывода.

 Пусть это будет, например, пин А8!

 Шаг 4. Установите внешний источник синхронизации RCC.

 Шаг 6. Установите системную частоту на 72 МГц или на любую другую.

 Шаг 7. Назовите и сгенерируйте код инициализации проекта для CubeIDE или IDE, которую вы используете.

 Затем откройте проект в используемой вами IDE. И перейдите к файлу main.c. Итак, мы можем приступить к написанию кода приложения и взглянуть на код инициализации, сгенерированный инструментом STM32 CubeMX.

Код приложения в CubeIDE   

 Файл main.c в каталоге исходного кода наших проектов выглядит так, как показано ниже.

 Обе функции SystemClock_Config() и MX_GPIO_Init() генерируются CubeMX для настройки системных часов, как мы делали это раньше в графическом интерфейсе, и контакта GPIO, который мы выбрали в качестве выходного контакта. Реализация обеих функций находится в файле после основной функции.

 Мы вызываем каждый из них перед основным циклом while(1), а также перед функцией HAL_Init. HAL_Init должен вызываться в начале вашего приложения. Его функциональность поясняется в документации HAL, как показано ниже.

 И самое главное, он инициализирует таймер SysTick, тики которого используются функцией HAL_Delay(). Таймер SysTick установлен на частоту 1000 Гц или каждые 1 мс. Таким образом, функция HAL_Delay даст вам задержку, кратную миллисекундам.

 Помимо функции задержки, нам также необходимо знать API-интерфейсы HAL для управления выводами GPIO. Для выполнения базовых операций, таких как чтение или запись контактов, чтение/запись портов и т. д.

 Итак, мы снова обратимся к документации HAL и найдем главу GPIO, где найдем список доступных API. API-интерфейсы имеют гиперссылки в файле документации, поэтому вы можете щелкнуть имя функции, чтобы перейти непосредственно к ее подробному описанию.

 Итак, давайте подробнее рассмотрим функцию GPIO_WritePin(), поскольку мы тоже будем ее использовать.

 Прочитав документацию и ознакомившись с доступными API, вы готовы к работе. В нашем примере с мигающим светодиодом нам не понадобятся ничего, кроме функций GPIO_WritePin и HAL_Delay. Вот полный код приложения для этой лабораторной работы.

Прототипирование и тестирование   

 Шаг 0 : См. схему и распиновку платы Blue Pill.

 Шаг 1. Подключите ST-Link к порту USB и контактам SWD на плате.

 Шаг 2. Нажмите кнопку «Отладка», чтобы скомпилировать код, записать его на плату и начать сеанс отладки.

 Шаг 3. Вы можете остановить сеанс отладки или продолжить его. Но вам нужно один раз перезапустить MCU, чтобы запустить новое приложение в процессе загрузки.

Скачать проект LAB