q-dex q-dex

STM32 с чего начать?

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

Изначально были попытки разобраться, используя следующий источник:STM32. Уроки. Материал довольно сложен, и предложенный метод оказывается далеко непростым для новичков. Постоянно возникали проблемы с компиляцией кода и прошивкой микроконтроллера.

Выбор остановился на компиляторе MikroPascal for ARM. Основные преимущества: монолитная структура, не требующая дополнительных библиотек, широкий спектр поддерживаемых моделей, приличная документация, хороший набор вспомогательных инструментов.

В нашем случае нам понадобятся следующие ресурсы:

  1. mikroPascal PRO for ARM – на нем мы будем писать код.
  2. Flash Loader Demonstrator for STM electronics – утилита для заливки кода на чип.
  3. STM32 Cube MX – вспомогательная утилита для выставления нужной частоты на чип.
  4. Сам чип STM32, в нашем случае STM32F407VET6.
  5. USB to TTL переходник для подключения STM к компьютеру.

Прежде всего, нам следует выставить необходимую нам частоту, для чего воспользуемся STM32Cube. Откроем его и выберем создание нового проекта. Программа предложит нам выбрать модель нужного нам чипа. После чего, во вкладке пины (pinout), добавим HSE. Для этого в списке отыщем RCC и изменим значение High Speed Clock (HSE) на Crystal/Ceramic Resonator.

После чего перейдем на вкладку Clock Configuration для выставления нужной нам частоты. Здесь нам необходимо, прежде всего, поставить входную частоту. В нашем случае она равна 8, это частота резонатора, установленного вместе с микроконтроллером на плате. Далее выбираем режим HSE. Первый делитель мы ставим равным 4, чтобы получить единицу, из которой намного удобнее будет получить желаемую частоту. Множитель выставляем равным желаемой частоте, в нашем случае 160 и делитель равным 2, в итоге получаем 8/4*160/2 = 160. Также нужно выставить делители APB1 и APB2 равными 4 и 2 соответственно, для того чтобы частота периферии не превышала допустимые пределы.

По итогу получаем настройки, соответствующие желаемой частоте.

Теперь откроем MikroPascal и создадим там новый проект. Здесь, в свойствах проекта (Edit project) необходимо будет указать параметры, полученные в STM32Cube, чтобы выставить частоты контроллера. Данную процедуру необходимо выполнять каждый раз при создании нового проекта. Значения при этом меняться не будут (за исключением случаев, когда нам понадобятся другие частоты микроконтроллера).


Менять оставшиеся значения нет необходимости. После этого напишем простейшую программу мигания светодиода:

Компилируя проект, программа сгенерирует бинарный файл в формате *.hex, которым прошьем чип, используя утилиту Flash Loader Demo. Чип подключаем 4-х полосным шлейфом к UART: красный – 5V, белый – TX, зеленый – RX, черный – GND (RX от UART к TX STM, TX от UART к RX STM). После чего, возможно, понадобится установить драйверы на компьютере к новому устройству. Микроконтроллер необходимо будет перевести в режим программирования, для этого BOOT0 нужно перевести в состояние 1, а BOOT1 в состояние 0. Итак, запускаем Flash Loader, выбираем нужный COM-порт, не меняя остальные настройки. Перед прошивкой обычно нужно перезагрузить микроконтроллер.

После прошивки, переключаем чип в режим работы и перезапускаем. Лампочка подключена одной ножкой к питанию, другой к нулевому пину порта А.


1169

Регистрационная форма

логин
фамилия
имя
отчество
e-mail
пароль
еще раз
пол

Сколько углов у фигуры?

Q-DEX, авторы: Кураев С.В. Саруханян С.К. © 2016г.-2019г.