Ваше программное обеспечение отлично справляется с поставленной задачей, но оно также блокирует некоторые полезные и важные функции. Для наилучшего использования сайта, пожалуйста, найдите время, чтобы отключить ваш AdBlocker.

STM32F4VE Blink CubeMX Keil

Опубликовано stm32 - ср, 03/20/2019 - 12:46

Продолжим изучение микроконтроллеров фирмы ST. Ниже представлена плата на которой установлен микроконтроллер   STM32F407VET6В предыдущей статье мы попробовали включить выключить светодиод с помощью только IDE Keil uVision5. Теперь попробуем всю подготовительную часть настройки сделать с помощью удобной программы конфигурации  STM32CubeMX. Для этого программу необходимо скачать с официального сайта фирмы www.st.com, установить, запустить, настроить конфигурацию для программы Blink - будем включать и выключать светодиоды установленные на плате. Стоит только добавить, что при первоначальной настройке программа будет докачивать из интернета дополнительные пакеты конфигурации.   

1120

И так начнем -  > Запускаем STM32CubeMX

4601

После запуска STM32CubeMX и выбираем в синем окне I need to:

Start My project from MCU – почему выбираем по чипу, а не по плате? Просто этой платы нет и это хорошо т.к. лучше постигать все от микроконтроллера до пинов платы лучше самостоятельно.

46000

В появившемся окне вводим название микроконтроллера

4602

После того как микроконтроллер нашелся таблица справа снизу. Выходим в настройки дважды нажав левой клавишей мыши на эту таблицу

4603

Выход в окно настройки интерфейсов микроконтроллера

4604

Смотрим что нам необходимо для того чтобы включить выключить светодиод на плате.

Схема (часть) платы

Светодиоды (самое главное)  и подключение кварцевого резонатора 8 МГц (8 000 000 Гц)

4605  4606

 

Определились .. идем в STM32CubeMX

4607

С левой стороны во Вкладке System Core  выбираем пункт RCC. В появившемся окне (по середине ниже приложенного фото) открывается окно RCC MODE and Configuration. Выбираем мышкой

4608

 

В окне

 

4608

Автоматически программа выберет эти ножки на микросхеме в правом окне

 

4611

 

Далее спускаемся по окнам ниже к окну выбора частоты кварцевого резонатора

4612

Изменяем на частоту с 16 (16 000 000) на частоту установленного на плате кварцевого резонатора установленного на плате 8 (8 000 000).

4612

Идем в настройки выходов микроконтроллера. Будем включать выключать светодиоды. Для этого выбираем слева GPIO. При выборе откроется (по середине экрана) таблица уже настроенных нами ножек для кварцевого резонатора. Давайте добавим ножки для светодиодов. PA6 и PA7.

4613

Для этого перемещаем мышку к графическому виду микросхемы, находим ножку с нужным нам названием и тыкаем на нее указателем мышки. В ответ должно появиться окно в котором можно назначить, что эта ножка микроконтроллера может.

4611

Перемещаясь мышкой по списку

4614

выбираем пункт GPIO_Output для PA6. Также проделываем с ножной PA7.

В итого после выбора получим на графическом изображении

4615

Далее спускаемся вниз окна ( по середине) и меняем для каждого выбранного порта уровень выходного сигнала с LOW на High.

4616

В итоге должно быть ..

4617

Все дальше идем во вкладку конфигурации проекта

Выбираем папку для проекта

46181

Выбираем Путь проектаИмя проекта

4620

Среду разработки 

 

4618

И финальная часть работы с  STM32CubeMX

4619

Далее должен быть сгенерирован проект.

НО скорее всего программа предложит загрузить необходимые файлы. Первый раз скачивается весь пакет. Он достаточно большой!!!

4622

Если все прошло нормально то после генерации кода появиться окно см. ниже

4623

Все на этом часть работы с STM32CubeMX мы заканчиваем. И переходим уже в Keil uVision5.

Нажимаем Open Project и автоматически происходит запуск среды разработки. 

После открытия IDE Keil uVision5 появляется окно в котором мы видим подготовленную среду для начала программирования. 

4621

Файл main.c создан и все, что необходимо подключено.

Работу начинаем с настройки параметров проекта.

Идем в настройки нашего проекта.

4624

 

И настраиваем частоту нашего кварцевого резонатора с 16.0 (16 000 0000) на 8.0 (8 000 000)

4625

После изменения 

46251

Вкладка Output - все установлено автоматически 

4626

Вкладка Debug

4627

В этой вкладке я для эксперимента попробую новый программатор.

Он очень удобно подключается к плате. Но ниже опишу подключение и ST-Link.

1149

Я немного поправил внутри этого программатора, так чтобы он мог подавать напряжение и на плату. ПОЭТОМУ Я НЕ подключаю внешнего питания. ПЛАТА питается от программатора. Преобразователь напряжения который стоит в программаторе аналогичен тому, что стоит на плате. Об этом отдельно напишу когда буду рассматривать программатор отдельно.

Поэтому для этого программатора настройки следующие

4628

Выбираем  Settings

И видим окно см. ниже. если все нормально то в окне JTAG Device - должна отображаться наша плата

4629

Если все нормально переходим на вкладку Flash Download.

4630

Нажимаем OK и выходим в проект.

Дальше в файле main.c забиваем следующие строки нашей программы 

while (1)

  {

    /* USER CODE END WHILE */

   HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_6);

   HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_7);  

   HAL_Delay(300);

    /* USER CODE BEGIN 3 */

  }

 

Вот так это должно выглядеть в Keil uVision5

45301

Нажимаем F7 или

4631

Первый раз ждем немного дольше обычного. И должны получить следующее сообщение. Главное - 0 Error(s)!!

4632

Дальше самое интересное ... 

 

4633

Т.к. в микроконтроллер при получении из Китая стояла программа которая моргала светодиодами то лучше ее стереть и потом запрограммировать уже созданной нами программой.

Поэтому сначала

1.  Erase

2. Download

И в итоге:

4634

И результат на плате где включаются и выключаются одновременно два светодиода.

1150

Поближе

1135

 

Ура !!!

Все заработало с первого раза!! 

Далее... как писал выше добавляю для ST-Link2 

1114

Приступим :

Смотрим схему платы, а конкретно разъема JTAG/SWD

4635

и номера нужных контактов на самом программаторе

22

Соединяем плату и программатор

Начинаем с питания платы (напряжение берем с программатора

8 ножка разъема программатора (3.3V) - соединяем с 2 ножкой разъема платы, 

4 ножка разъема программатора (GND) - соединяем с 4 ножкой разъема платы.

4640

2 ножка разъема программатора (SWDIO) - соединяем с 7 ножкой разъема на плате

6 ножка разъема программатора (SWCLK) - соединяем с 9 ножкой разъема на плате

4641

И получается такая собранная схема

1156

Всего четыре провода!!!

Переключаемся наKeil uVision5 и идем в настройки программатора 

Меняем тип программатора 

С

4636

На

4637

Идем в Settings

Убеждаемся, что плата определилась по SW

4638

Выходим нажав OK.

Нажимаем F7 и еще раз собираем проект.

Далее все как с предыдущем программатором.

Стираем память микроконтроллера.  Светодиоды должны погаснуть.

Ниже окна после стирания чипа - две последние строчки

4639

Причем процесс идет гораздо дольше чем на предыдущем программаторе. Я успел снять скрин экрана при процессе очищения микроконтроллера.

И записываем его с помощью ST-Link

И соответственно светодиоды на плате начнут дружно моргать.

 

В этой статье мы убедились как достаточно быстро и не имея достаточных знаний можно с помощью мощного программного обеспечения создавать программы.

На этом пока все!!!

 

 

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