Продолжим изучение микроконтроллеров фирмы ST. Ниже представлена плата на которой установлен микроконтроллер STM32F407VET6. В предыдущей статье мы попробовали включить выключить светодиод с помощью только IDE Keil uVision5. Теперь попробуем всю подготовительную часть настройки сделать с помощью удобной программы конфигурации STM32CubeMX. Для этого программу необходимо скачать с официального сайта фирмы www.st.com, установить, запустить, настроить конфигурацию для программы Blink - будем включать и выключать светодиоды установленные на плате. Стоит только добавить, что при первоначальной настройке программа будет докачивать из интернета дополнительные пакеты конфигурации.
И так начнем - > Запускаем STM32CubeMX
После запуска STM32CubeMX и выбираем в синем окне I need to:
Start My project from MCU – почему выбираем по чипу, а не по плате? Просто этой платы нет и это хорошо т.к. лучше постигать все от микроконтроллера до пинов платы лучше самостоятельно.
В появившемся окне вводим название микроконтроллера
После того как микроконтроллер нашелся таблица справа снизу. Выходим в настройки дважды нажав левой клавишей мыши на эту таблицу
Выход в окно настройки интерфейсов микроконтроллера
Смотрим что нам необходимо для того чтобы включить выключить светодиод на плате.
Схема (часть) платы
Светодиоды (самое главное) и подключение кварцевого резонатора 8 МГц (8 000 000 Гц)
Определились .. идем в STM32CubeMX
С левой стороны во Вкладке System Core выбираем пункт RCC. В появившемся окне (по середине ниже приложенного фото) открывается окно RCC MODE and Configuration. Выбираем мышкой
В окне
Автоматически программа выберет эти ножки на микросхеме в правом окне
Далее спускаемся по окнам ниже к окну выбора частоты кварцевого резонатора
Изменяем на частоту с 16 (16 000 000) на частоту установленного на плате кварцевого резонатора установленного на плате 8 (8 000 000).
Идем в настройки выходов микроконтроллера. Будем включать выключать светодиоды. Для этого выбираем слева GPIO. При выборе откроется (по середине экрана) таблица уже настроенных нами ножек для кварцевого резонатора. Давайте добавим ножки для светодиодов. PA6 и PA7.
Для этого перемещаем мышку к графическому виду микросхемы, находим ножку с нужным нам названием и тыкаем на нее указателем мышки. В ответ должно появиться окно в котором можно назначить, что эта ножка микроконтроллера может.
Перемещаясь мышкой по списку
выбираем пункт GPIO_Output для PA6. Также проделываем с ножной PA7.
В итого после выбора получим на графическом изображении
Далее спускаемся вниз окна ( по середине) и меняем для каждого выбранного порта уровень выходного сигнала с LOW на High.
В итоге должно быть ..
Все дальше идем во вкладку конфигурации проекта
Выбираем папку для проекта
Выбираем Путь проекта, Имя проекта
Среду разработки
И финальная часть работы с STM32CubeMX
Далее должен быть сгенерирован проект.
НО скорее всего программа предложит загрузить необходимые файлы. Первый раз скачивается весь пакет. Он достаточно большой!!!
Если все прошло нормально то после генерации кода появиться окно см. ниже
Все на этом часть работы с STM32CubeMX мы заканчиваем. И переходим уже в Keil uVision5.
Нажимаем Open Project и автоматически происходит запуск среды разработки.
После открытия IDE Keil uVision5 появляется окно в котором мы видим подготовленную среду для начала программирования.
Файл main.c создан и все, что необходимо подключено.
Работу начинаем с настройки параметров проекта.
Идем в настройки нашего проекта.
И настраиваем частоту нашего кварцевого резонатора с 16.0 (16 000 0000) на 8.0 (8 000 000)
После изменения
Вкладка Output - все установлено автоматически
Вкладка Debug
В этой вкладке я для эксперимента попробую новый программатор.
Он очень удобно подключается к плате. Но ниже опишу подключение и ST-Link.
Я немного поправил внутри этого программатора, так чтобы он мог подавать напряжение и на плату. ПОЭТОМУ Я НЕ подключаю внешнего питания. ПЛАТА питается от программатора. Преобразователь напряжения который стоит в программаторе аналогичен тому, что стоит на плате. Об этом отдельно напишу когда буду рассматривать программатор отдельно.
Поэтому для этого программатора настройки следующие
Выбираем Settings
И видим окно см. ниже. если все нормально то в окне JTAG Device - должна отображаться наша плата
Если все нормально переходим на вкладку Flash Download.
Нажимаем 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
Нажимаем F7 или
Первый раз ждем немного дольше обычного. И должны получить следующее сообщение. Главное - 0 Error(s)!!
Дальше самое интересное ...
Т.к. в микроконтроллер при получении из Китая стояла программа которая моргала светодиодами то лучше ее стереть и потом запрограммировать уже созданной нами программой.
Поэтому сначала
1. Erase
2. Download
И в итоге:
И результат на плате где включаются и выключаются одновременно два светодиода.
Поближе
Ура !!!
Все заработало с первого раза!!
Далее... как писал выше добавляю для ST-Link2
Приступим :
Смотрим схему платы, а конкретно разъема JTAG/SWD
и номера нужных контактов на самом программаторе
Соединяем плату и программатор
Начинаем с питания платы (напряжение берем с программатора
8 ножка разъема программатора (3.3V) - соединяем с 2 ножкой разъема платы,
4 ножка разъема программатора (GND) - соединяем с 4 ножкой разъема платы.
2 ножка разъема программатора (SWDIO) - соединяем с 7 ножкой разъема на плате
6 ножка разъема программатора (SWCLK) - соединяем с 9 ножкой разъема на плате
И получается такая собранная схема
Всего четыре провода!!!
Переключаемся наKeil uVision5 и идем в настройки программатора
Меняем тип программатора
С
На
Идем в Settings
Убеждаемся, что плата определилась по SW
Выходим нажав OK.
Нажимаем F7 и еще раз собираем проект.
Далее все как с предыдущем программатором.
Стираем память микроконтроллера. Светодиоды должны погаснуть.
Ниже окна после стирания чипа - две последние строчки
Причем процесс идет гораздо дольше чем на предыдущем программаторе. Я успел снять скрин экрана при процессе очищения микроконтроллера.
И записываем его с помощью ST-Link
И соответственно светодиоды на плате начнут дружно моргать.
В этой статье мы убедились как достаточно быстро и не имея достаточных знаний можно с помощью мощного программного обеспечения создавать программы.
На этом пока все!!!
- Войдите или зарегистрируйтесь, чтобы оставлять комментарии