Всем привет!) Продолжаем изучать ARM микроконтроллеры от компании ST, сегодня будем говорить, как можно быстро создать проект и включить светодиод не вдаваясь в глубокие познания архитектуры микроконтроллера. Для начала переходим по ссылке скачиваем программу STM32CubeMX и STM32CubeUpdater (один установочный пакет). Первая программа является генератором проектов, вторая является обновлением HAL-а для ST серии микроконтроллеров.
1. Запускам программу и создаем проект.
2. Выбираем микроконтроллер или борду для создания проекта.
3. Конфигурируем железо по необходимости ADC, DAC и различные RTOS.
4. Настройка тактирования микроконтроллера.
5. Проверяем из каких кубиков состоит проект и сохраняем все настройки проекта.
6. Рассчитываем потребляемую мощность микроконтроллера.
7. Генерируем проект в среде которой будем работать, я всегда выбираю MDK – Keil.
8. С генерируемый проект.
9. Обновляем firmware для STM-а.
И наконец вставляем в главный цикл программы пару строк кода, чтобы немного помигать светодиодом.
HAL_GPIO_WritePin(GPIOD, GPIO_PIN_12, GPIO_PIN_SET); HAL_Delay(500); HAL_GPIO_WritePin(GPIOD, GPIO_PIN_12, GPIO_PIN_RESET); HAL_Delay(500);
На сегодня все!) всем пока.
9 thoughts on “Старт ARM. STM32CubeMX. STM32 GPIO. HAL”
Данный код не заработал на STM32F4 Discovery.
Вы, наверное, забыли вставить данный код в главный цикл.
while (1)
{
HAL_GPIO_WritePin(GPIOD, GPIO_PIN_12, GPIO_PIN_SET);
HAL_Delay(500);
HAL_GPIO_WritePin(GPIOD, GPIO_PIN_12, GPIO_PIN_RESET);
HAL_Delay(500);
}
Всё заработало. Только вот после прошивки приходится сброс нажимать. Сама не запускается. Хотя другие проекты (не из куба) прошиваются и сразу работают без ресета.
Зайдите во Flash Download(Alt+F7) и поставьте галку на Reset and Run.
Мне кажется, что шаги 8 и 9 нужно поменять местами.
Сначала обновить firmware для STM-а, а потом генерировать проект 😉
Поймите, каждый ваш не точный шаг в тексте – может создать уйму проблем для новичков 😉
Согласен, так, наверное будет правильнее, а лучшее в самое начало.
Подскажите пожалуйста, как записать данные в порт, к примеру число 0b01010101 01010101 на выводы GPIOD?
Разобрался, GPIOD->BSRR= 21845;
забавно но на представление числа в двоичном виде GPIOD->BSRR= 0b01010101 01010101; Keil начинал ругаться.
Кейл не знает двоичного формата
Comments are closed.