STM32F030F4P6 Blink CubeMX

Опубликовано stm32 - ср, 02/05/2020 - 14:58

STM32F030F4P6 Blink CubeMX. 

В статье STM32F030F4P6 hand-made я показал как создать плату с микроконтроллером STM32F030F4P6 своими руками для разных простых проектов.

r42_0

Давайте используя CubeMx и созданную плату напишем программу Blink. В этой программе мы будем включать и выключать порты микроконтроллера.

Для того чтобы использовать эту программу не обязательно создавать плату, как это сделал я - можно купить готовую - например  такую. 

r58

Для программирования микроконтроллера  (запись и отладка) я буду использовать один из самых популярных программаторов ST - LINK v2

r48

Для отображения 1 бита информации - светодиод (сборка резистор + светодиод).

r71

 

Итак приступим ..

Открываем CubeMX и выбираем микроконтроллер 

r59

Двигаясь по вкладкам - настраивает конфигурацию

Настраиваем все порты на выход

r60

И добавляем выходам названия 

r61

В итоге получаем 

r49

Переходим во вкладку GPIO  и проверяем

r50

Переходим по вкладку выбора тактирования микроконтроллера от внешнего кварца

r51

Переходим в Clock Configuration и настраиваем 

1. В моем случае HSE 16 MHZ 

r52

После установки частоты работы микроконтроллера переходим во вкладку Project Manager - называем свой проект и место его хранения.

r53

Все назвали, папки для хранения выбрали, выбрали среду разработки  - жмем 

r54

Ожидаем - если вы еще не работали с этой серией микроконтроллеров - будет предложено скачать и установить необходимые библиотеки.

r55

 

r56

Выбираем Оpen Project и переходим в Keil.

r57

Открывается окно программы Keil. Открываем main.c 

r62

Дополним main.c следующим содержимым в основном цикле программы while

**********************************************************************************

 while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
        HAL_GPIO_WritePin(GPIOA, PA5_Pin, GPIO_PIN_SET);
        HAL_GPIO_WritePin(GPIOA, PA6_Pin, GPIO_PIN_SET);
        HAL_GPIO_WritePin(GPIOA, PA7_Pin, GPIO_PIN_SET);
        HAL_GPIO_WritePin(GPIOB, PB1_Pin, GPIO_PIN_SET);
        HAL_GPIO_WritePin(GPIOA, PA4_Pin, GPIO_PIN_SET);
        HAL_GPIO_WritePin(GPIOA, PA3_Pin, GPIO_PIN_SET);
        HAL_GPIO_WritePin(GPIOA, PA2_Pin, GPIO_PIN_SET);
        HAL_GPIO_WritePin(GPIOA, PA1_Pin, GPIO_PIN_SET);
        HAL_GPIO_WritePin(GPIOA, PA0_Pin, GPIO_PIN_SET);
        
        HAL_Delay(200);
        HAL_GPIO_WritePin(GPIOA, PA5_Pin, GPIO_PIN_RESET);
        HAL_GPIO_WritePin(GPIOA, PA6_Pin, GPIO_PIN_RESET);
        HAL_GPIO_WritePin(GPIOA, PA7_Pin, GPIO_PIN_RESET);
        HAL_GPIO_WritePin(GPIOB, PB1_Pin, GPIO_PIN_RESET);
        HAL_GPIO_WritePin(GPIOA, PA4_Pin, GPIO_PIN_RESET);
        HAL_GPIO_WritePin(GPIOA, PA3_Pin, GPIO_PIN_RESET);
        HAL_GPIO_WritePin(GPIOA, PA2_Pin, GPIO_PIN_RESET);
        HAL_GPIO_WritePin(GPIOA, PA1_Pin, GPIO_PIN_RESET);
        HAL_GPIO_WritePin(GPIOA, PA0_Pin, GPIO_PIN_RESET);
        
        HAL_Delay(200);
        
        
  }

*********************************************************************************

Сохраняем проект 

Собираем 

r63

Если все делалось по пунктам то результатом будет

r64

Далее идем в настройки проекта и устанавливаем программатор и то как мы будем с ним работать 

r65

 

В открывшимся окне выбираем вкладку Debug

r66

Выбираем в моем случае программатор

r67

Переходим в Settings -> Flash Download и устанавливаем галки как на фото ниже

r68

 

После установок - жмем Ok  - Ok и выходим в основное окно Keil и загружаем созданную программу в микроконтроллер

r69

 

Итогом что все прошилось будет 

r70

Отлично!

Дальше подключаем светодиод к любому из выходов микроконтроллера и на каждом из них светодиод будет зажигаться и гаснуть  !!!

Идем и выбираем режим отладки

 r72

После того как откроются все окна необходимые для отладки программы в микроконтроллере - запускаем RUN 

r73

 

 

 

r43

Ура у нас все получилось с первого раза!!!

 

Яндекс.Метрика