Урок 3. Установка программного обеспечения. Первый опыт в конфигурации микроконтроллера, создании проекта, компиляции, прошивке.

Уроки STM32

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

Предыдущий урок     Список уроков     Следующий урок

Один из самых важных вопросов при освоении сложных микроконтроллеров подобно STM32  – выбор среды разработки (IDE).

 

Существует большое количество интегрированных средств разработки для микроконтроллеров STM32.

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

Но вряд ли кто-то из моих читателей согласится выложить 8000 евро за среду разработки. Хотя в платных IDE, как правило, есть бесплатные варианты с ограничением по размеру кода. Но не хочется подобно Дамоклу ждать, когда оборвется волос, на котором подвешен меч над твоей головой. Т.е. в самый неподходящий момент получить сообщение, о том, что остальная часть памяти недоступна.

Но есть приятное исключение. Платная интегрированная среда Atollic TrueStudio с прошлого года стала бесплатной. Производитель STM32 компания STMicroelectronics в 2018 году купила фирму Atollic и сделала эту IDE бесплатной.

От добра добра не ищут. Я выбрал в качестве среды разработки IDE Atollic TrueStudio. Она:

  • бесплатная;
  • нет ограничений;
  • разработчик поддерживает ее и обещает поддерживать в будущем;
  • устанавливается ”из коробки”;
  • прекрасно работает.

Итак. Нам необходимо установить следующее программное обеспечение:

  • Интегрированная среда разработки Atollic TrueStudio.
  • Пакет STM32CubeMX – программа создания проекта, визуальной конфигурации микроконтроллера.
  • Flash Loader Demonstrator - программа для прошивки микроконтроллеров через системный загрузчик.
  • Программа – терминал COM-порта компьютера, аналог Монитора последовательного порта Arduino IDE. Необходима для отладки программной и аппаратной частей системы. Я выбрал CoolTerm, но подобных программ очень много. Если не нравится мой выбор, используйте другую.

Давайте все это последовательно установим.

 

Atollic TrueStudio.

Переходим по ссылке https://atollic.com/resources/download/.

Установка Atollic TrueStudio

Выбираем ОС. Заполняем поля.

Установка Atollic TrueStudio

Загружаем последнюю версию по ссылке.

Установка Atollic TrueStudio

Запускаем полученный файл-инсталлятор:
Atollic_TrueSTUDIO_for_STM32_windows_x86_v9.2.0_20181203-0921.exe

Дальше следуем подсказкам инсталлятора.

Установка Atollic TrueStudio

 

STM32CubeMX

Идем по ссылке www.st.com/en/development-tools/stm32cubemx.html.

Регистрируемся, подтверждаем регистрацию по электронной почте.

В самом низу страницы загружаем архивный файл по ссылке Get Software.

STM32CubeMX

Разархивируем скачанный файл во временную папку. Запускаем файл SetupSTM32CubeMX-5.0.1.exe.

STM32CubeMX

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

STM32CubeMX

После загрузки и установки Java надо опять запустить SetupSTM32CubeMX-5.0.1.exe и довести установку до конца.

 

Flash Loader Demonstrator

Ссылка на страницу загрузки www.st.com/en/development-tools/flasher-stm32.html.

Ссылка для самой загрузки (Get Software ) внизу страницы.

Flash Loader Demonstrator

Разархивируем во временную папку, запускаем flash_loader_demo_v2.8.0.exe.

Следуем подсказкам инсталлятора

Flash Loader Demonstrator

 

CoolTerm.

Можно загрузить по ссылке http://freeware.the-meiers.org.

Устанавливать не надо. Разархивировать в рабочую папку.  Запускается исполняемый файл CoolTerm.exe.

Терминал CoolTerm

В итоге у нас 4 программы – 4 ярлыка на рабочем столе.

Программы для работы с STM32

 

Проверка работы программного обеспечения в комплексе с отладочной платой.

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

Прошивка STM32

Давайте проверим, как это все работает. Не будем особенно вдумываться, разбираться, что делаем. Просто формально выполним определенные действия.

Хотя работа с конфигуратором  STM32CubeMX настолько проста и интуитивно понятна, что мы сразу научимся работать с его интерфейсом, а в регистрах и схемах микроконтроллера будем разбираться потом.

Цель – проверить, что:

  • STM32CubeMX создает проект и задает правильную конфигурацию ресурсов микроконтроллера.
  • IDE Atollic TrueStudio открывает проект, позволяет его редактировать и создает загрузочный файл.
  • Flash Loader Demonstrator – загружает программу в микроконтроллер.
  • Мы правильно припаяли к отладочной плате преобразователь интерфейсов и кнопки.
  • Работает сама отладочная плата.

Разработаем и проверим программу, которая мигает светодиодом платы на 13 выводе с частотой 2 раза в секунду.

 

Конфигурация и создание проекта.

Создаем папку для наших проектов. У меня это d:\STM32\Projects\Lessons\Lesson3.

Запускаем STM32CubeMX.

Работа с STM32CubeMX

Ниже надписи New Project выбираем ACCESS TO MCU SELECTOR, что означает выбор типа контроллера.

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

Выберем STM32F103C8.

Работа с STM32CubeMX

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

Нажимаем кнопку Start Project в правом верхнем углу.

Появляется окно конфигуратора.

Работа с STM32CubeMX

Все интуитивно понятно. Справа изображение микроконтроллера с интерактивными выводами. Слева – регистры микроконтроллера, состояние которых мы собственно и хотим установить.

Желтым цветом показаны выводы питания, остальные пока серые. Зеленеть они будут по мере конфигурации портов.

Настраиваем систему тактирования микроконтроллера.

Открываем закладку System Core. Выбираем RCC.

Работа с STM32CubeMX

Источником тактирования задаем высокоскоростной генератор на кварцевом резонаторе High Speed  Clock (HSE) -> Crystal/Ceramic Resonator .

Работа с STM32CubeMX

Два вывода на микросхеме стали зелеными. Мы их заняли под выводы для кварцевого резонатора.

Выбираем в верхнем горизонтальном меню Clock Configuration (Конфигурация тактирования).

Работа с STM32CubeMX

Здесь интерактивная схема системы тактирования, в которой можно управлять коммутаторами, задавать делители частоты. При этом нет необходимости искать в технической документации назначение регистров, их форматы и т.п.

Коммутаторы PLL Source Mux и System Clock Mux устанавливаем на нижние входы.

Умножитель *PLL Mul задаем равным 9.

Работа с STM32CubeMX

В результате на схеме видно, что основная частота тактирования 72 мГц (окошко  HCLK).

С такой же частотой работает ядро микроконтроллера (окно FCLK).

Красным цветом отмечено, что какое-то устройство (APB1 Prescaler) работает на недопустимо высокой частоте. Есть предупреждение, что максимальная частота 36 мГц.

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

Работа с STM32CubeMX

Остается настроить режим порта для вывода 13. К нему подключен светодиод, которым мы собираемся мигать.

Возвращаемся в Pinout & Configuration. Справа появляется изображение микроконтроллера.

Правой кнопкой мыши нажимаем на вывод 13, назначаем его на выход (GPIO_Output).

Работа с STM32CubeMX

Вывод стал зеленым.

В закладках слева выбираем GPIO (порты общего назначения).

Правее появляется строчка с режимом вывода 13.

Работа с STM32CubeMX

Выбираем ее правой кнопкой мыши. В нижней строчке режимов вывода User Label пишем LED13. Это мы задали имя переменной для вывода. Через него в программе будет происходить обращение к выводу 13.

Работа с STM32CubeMX

На этом конфигурация закончена. Не заглядывая в техническую документацию, мы за минуту выставили нужные нам режимы тактирования и вывода порта.

Заполняем данные для сохранения проекта. В верхнем меню выбираем Project Manager.

Указываем:

  • Имя проекта.
  • Папку сохранения проекта.
  • Обязательно выбираем TrueSTUDIO в поле Toolchain IDE.

Проект STM32

Нажимаем GENERATE CODE.

При первом запуске STM32CubeMX загружает из Интернета необходимые файлы. Разрешаем загрузку.

Проект STM32

Закрываем программу.

Создание проекта STM32

В указанной папке появился проект Lesson3_1.

Проект STM32

 

Разработка программы, компиляция.

Запускаем Atollic TrueStudio. Везде пустые поля.

Открываем наш проект File -> Open Projects from File System…

Указываем путь к проекту.

Atollic TrueStudio

Нажимаем Finish.

В поле Project Explorer появился наш проект.

 Atollic TrueStudio

Разворачиваем.

Atollic TrueStudio

Файлы с которыми мы будем сейчас работать в папке Scr.

Два раза кликаем правой кнопкой мыши по main.c и наш основной файл с исходным текстом появляется в среднем окне IDE.

Atollic TrueStudio

 

Попробуем компилировать проект.

Нажимаем Project -> Build Project или молоточек в панели инструментов.

Панель инструментов Atollic TrueStudio

Смотрим на поле Problems (Проблемы) внизу экрана.

Проблемы Atollic TrueStudio

У меня сообщений об ошибках нет, значит, проект компилировался нормально.

 

Исходный текст программы.

В отличие от Ардуино структура программы STM32 типичная для языка C. Всегда есть функция main() – функция, которая вызывается при запуске программы. Часто внутри этой функции расположена вся программа, за исключением тел других функций.

Просматриваем программу.

#include "main.h" – заголовочный файл.

void SystemClock_Config(void);
static void MX_GPIO_Init(void);

Прототипы функций. В отличие от Ардуино в классическом я зыке C каждая функция, в том числе, которую объявляет программист, должна иметь прототип. Т.е. должна быть объявлена, как переменная. Прототип содержит имя функции, возвращаемое значение и аргументы. Должен быть объявлен до первого вызова функции.

int main(void) {

Функция main - начало выполнения программы.

HAL_Init();
SystemClock_Config();
MX_GPIO_Init();

Функции инициализации регистров микроконтроллера. В них трансформировались наши действия по заданию конфигурации в программе STM32CubeMX.

И дальше нам в проекте конфигуратор подставил бесконечный цикл - аналог функции loop() в системе Ардуино.

while (1)
{

}

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

Текст программы изобилует блоками комментариев подобно этому.

/* USER CODE BEGIN WHILE */

/* USER CODE END WHILE */

Дело в том, что исходный текст создала программа STM32CubeMX. Если захочется что-либо изменить в конфигурации микроконтроллера с помощью STM32CubeMX, то конфигуратор может испортить текст, внесенный программистом на этапе разработки. Поэтому STM32CubeMX выделяет блоки, которые он не будет изменять при повторных конфигурациях. Эти блоки он отмечает строками комментариев:

/* USER CODE … */

/* USER CODE … */

Свой текст надо размещать только в таких блоках.

Сейчас нас интересует блок:

/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{

/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */

Перед

/* USER CODE END WHILE */

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

/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
  HAL_GPIO_TogglePin(LED13_GPIO_Port,LED13_Pin);
  HAL_Delay(250);

/* USER CODE END WHILE */

Заметьте, что мы указали при конфигурации название вывода для светодиода LED13. Теперь в программе мы обращаемся к нему через имена LED13_GPIO_Port, LED13_Pin.

Компилируем проект.

Ошибок нет.

Компиляция проекта Atollic TrueStudio

Можно закрыть проект.

Скачать архив проекта можно по ссылке:

 

Зарегистрируйтесь и оплатитеВсего 60 руб. в месяц за доступ ко всем ресурсам сайта!
 

Теперь надо загрузить исполняемый код во FLASH микроконтроллера.

 

Прошивка FLASH микроконтроллера.

Результат компиляции оказался в HEX-файле в папке Debug. В моем случае:

d:\STM32\Projects\Lessons\Lesson3\Lesson3_1\Debug\Lesson3_1.hex

Загрузочный HEX-файл STM32

Именно этот файл будем прошивать в микроконтроллер.

Подключаем к компьютеру мост USB-UART. Перед этим должен быть установлен драйвер моста. Как это сделать, можно посмотреть по ссылкам PL2303 и CH340.

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

Запускаем Flash loader demonstrator.

Программатор Flash loader demonstrator

Устанавливаем номер порта.

Нажимаем и удерживаем кнопку ПРОШИВКА.

Кратковременно нажимаем кнопку СБРОС.

Давим Next.

Программатор для STM32 Flash loader demonstrator

Если на светофоре горит зеленый - еще раз Next.

Flash loader demonstrator

Можно посмотреть информацию о микроконтроллере и размере его FLASH.

Опять давим Next.

Выбираем Download to device.

Задаем путь к нашему HEX-файлу.

Flash loader demonstrator

Опять Next.

Происходит загрузка FLASH микроконтроллера. Выводится сообщение о результате.

Программатор Flash loader demonstrator

У меня успешно.

Теперь можно отпустить кнопку ПРОШИВКА,  и закрыть программу.

Остается нажать кнопку СБРОС и светодиод на отладочной плате начинает мигать с частотой 2 раза в секунду.

Если так, то все было сделано правильно.

 

В следующем уроке научимся работать с регистрами микроконтроллера, узнаем о библиотеках CMSIS  и HAL.

Предыдущий урок     Список уроков     Следующий урок

3

Автор публикации

не в сети 9 часов

Эдуард

285
Комментарии: 1946Публикации: 199Регистрация: 13-12-2015

100 комментариев на «Урок 3. Установка программного обеспечения. Первый опыт в конфигурации микроконтроллера, создании проекта, компиляции, прошивке.»

  1. Эдуард спасибо.
    Но по сравнению с Ардуино — это день и ночь. Все слишком сложно и геморно.
    Для себя открыл Teensy контроллеры от PJRC.com
    Такие же удобные и простые как Ардиуновские.
    Есть 8 ми битные и 32 битные.

    0
    • Дело не в контроллерах а в среде программирования. STM32 тоже можно ардуинить особенно легко это делать в Platformio. Там же есть и фреймворк STM32 CUBE и MBED. Можно пользоваться каким душе угодно.

      0
    • Teensy — обычные контроллеры по конским ценам.
      8-битные на атмел можно взять гораздо дешевле. stm32f103 — есть поддержка в ардуино. А уж если на крутизну тянет — возьмите плату на STM32F407VGT6, стоит в пределах 700р.
      https://www.ebay.com/itm/STM32F407VGT6-STM32F103C8T6-F407VET6-STM32-ARM-Minisystem-Development-CoreBoard/112987363710?hash=item1a4e92597e:m:meoMyQF8fiJYDIDnPMYBVcA

      0
      • Здравствуйте всем . очень рад что сразу всё заработало. перед этим 2 месяца изучал работу с регистрами и фьюзами. тема скажу честно очень трудная. пришлось попотеть. но зато теперь смогу собирать и программировать абсолютно всё начиная от капельного орошения и инкубаторов и заканчивая беспилотниками , умным домом с видеотрансляцией по интернету для клиента и платами скажем для холодильных компрессоров с регулировкой скорости оборотов двигателя. спасибо за информацию о Teensy контроллерах и о среде программирования Platformio. изучу обязательно. полученные от дражайшего Эдуарда знания применил на практике собрал и запрограммировал капельное орошение саженцев чтобы не бегать со шлангом и вёдрами по саду а также автомойку самообслуживания с передачей смс хозяину о поступивших суммах денег. пришлось исправлять и переделывать программы работы с платами GSM. так как у нас другой протокол сообщений чем за границей, в общем переделал обработку строк. в общем огромный + за уроки. теперь я могу создавать абсолютно всё без исключения и очень этим доволен. главное для счетчиков выставляйте условие чтобы он при <0(отрицательном значении) приравнивался нулю или указывайте его как unsigned . иначе программа будет зависать на час или больше пока счетчик будет выбираться из минуса куда он попадает после переполнения. всем желаю успехов в этом деле шаг за шагом.

        1
        • Привет. После Arduino и Си, откровенно завис на HAL, непривычно и непонятно. Что такое микроконтроллер знаю. Работал на i8080, ST6, MSP430 на Assembler, AVR на С. Как удалось себя перебороть?

          0
  2. Спасибо большое! Жду с нетерпением новых уроков, хороший курс, не бросайте его, очень понятный, современный. Хотелось бы урок по загрузки прошивки через st-link.

    0
  3. А если я прошил контроллер ст-линком
    а потом попробовал аналогично прошить в него хекс из урока
    и теперь ст-линк отказывается коннектиться к контроллеру
    (может всвязи с настройками кварца?)
    его можно как-нибудь оживить?

    0
    • Это бывает, например, если прошивка использует ножки, которые нужны для swd. Тогда можно прошить через st-link утилиту, если установить режим «коннектиться при перезагрузке». Потом нажимаем кнопочку коннект в утилите и быстро делаем ресет кнопкой на плате. Плата перезагрузится (прошивка в этот момент не работает и swd свободен) и должно подключиться. Если не вышло с первого раза, пробуйте ещё

      0
    • Во-первых, когда генерите код в CUBE, то надо установить в PINOUT CONFIGURATION —> System Core —> SYS —> Debug —> Serial Wire. Иначе по инструкции как в этом уроке сгенеренная прошивка не дает доступ к дальнейшим перепрошиваниям через ST-LINK V2 («китайский свисток»). Во-вторых, если удалось заблокировать микроконтроллер, то действуйте через прогу от производителя ST Link Utility, зажимаете RESET и жмёте законнесктиться в утилите и отпускаете RESET. Утилита получает доступ к памяти МК и теперь можете делать, что хотите. Я бы стёр эту неудачную прошивку 🙂
      Проверено на опыте, ибо сам заблокировал таким образом свой CSK32F103C8T6. Автору просьба добавить этот пункт про SWD, а то люди могут забросить играться в микроконтроллером ибо он больше «не работает».

      0
      • Именно, так и есть). Спасибо, автору внимательнее нужно подходить к урокам, блин).

        0
      • Проблема на одном из STM32 blue-pill.
        В CUBEIDE (и в Atolic Studio) при дебаге возникает ошибка «Error in initializing ST-LINK device.
        Reason: ST-LINK: Could not verify ST device! Abort connection.»
        В st-link соединение проходит, hex файл пишется. Но встроенная лампочка PC13 не моргает (проект как в теме выше). На другом контакте (PB12) все работает.
        Где копать?

        0
  4. спасибо, но
    проблема в том что это самое не так
    абсолютно тоже самое что ранее работало

    контроллер работает, даже мигает, как и договаривались
    вот только ст-линк к нему не коннектится

    это не может быть связано с тем что мы там частоты настраивали(множители?)

    вот лог ст-линк утилити

    20:18:24 : ST-LINK SN : 57FF67064884525035382387
    20:18:24 : V2J17S4
    20:18:24 : Connected via SWD.
    20:18:24 : Connection mode : Normal.
    20:18:24 : Debug in Low Power mode enabled.
    20:18:24 : Device ID:0x410
    20:18:24 : Device flash Size : 64KBytes
    20:18:24 : Device family :STM32F10xx Medium-density
    20:19:22 : Flash memory erased.
    20:20:45 : [Example_GPIO.bin] opened successfully.
    20:20:45 : [Example_GPIO.bin] checksum : 0x00010870
    20:21:21 : Memory programmed in 0s and 936ms.
    20:21:21 : Verification…OK
    20:21:21 : Programmed memory Checksum: 0x00010870
    21:43:33 : [Lesson3_1.hex] opened successfully.
    21:43:33 : [Lesson3_1.hex] checksum : 0x00046B51
    21:43:55 : Memory programmed in 1s and 264ms.
    21:43:55 : Verification…OK
    21:43:55 : Programmed memory Checksum: 0x00046B51
    21:43:56 : Disconnected from device.
    21:43:56 : Connection to device is lost: check power supply and debug connection.
    21:43:56 : If the target is in low power mode, please enable «Debug in Low Power mode» option from Target->settings menu.
    21:44:45 : [Example_GPIO.bin] opened successfully.
    21:44:45 : [Example_GPIO.bin] checksum : 0x00010870
    21:44:50 : Can not connect to target!
    Please select «Connect Under Reset» mode from Target->Settings menu and try again.
    If you’re trying to connect to a low frequency application , please select a lower SWD Frequency mode from Target->Settings menu.
    21:44:53 : No target connected

    0
    • Посмотрите на форумах. Кто-то пишет, что надо укоротить кабель USB, исключить все потенциальные наводки. Пишут, что необходимо соединить выводы 1 и 19 разъема STLink.

      0
    • По умолчанию в Cube SWD отключен
      https://bravikov.wordpress.com/2016/11/13/stm32cubemx-%D0%BF%D0%BE-%D1%83%D0%BC%D0%BE%D0%BB%D1%87%D0%B0%D0%BD%D0%B8%D1%8E-%D0%BE%D1%82%D0%BA%D0%BB%D1%8E%D1%87%D0%B0%D0%B5%D1%82-swd-%D0%B4%D0%BB%D1%8F-f1/

      0
  5. помогла попытка перепрошить меняя BOOT1 и сбрасывая как полагается для usb-uart
    простите если замусорил комментарии
    могу за собой убрать)

    0
  6. Расскажите пожалуйста, как сделать, чтоб проект заливался через ST-link? Как описал sergpu, прошивка Вашего проекта (через ST-link) делает так, что для последующих прошивок надо переставлять перемычку Boot0, а отладка через ST-link вообще не работает. Т.к. плата ST-link стоит копейки и дает возможность прошивать без шаманств — это упростит вход для начинающих. А потратить на стартовый комплект 170 или 300 рублей — думаю, не большая разница…

    1
    • Здравствуйте!
      По St-link полно информации в интернете.
      Тот вариант, который использую я удобен тем, что связь с компьютером необходима еще для отладки, работы программы в системе и т.п.

      0
      • Нашел самостоятельно. Тут: https://istarik.ru/blog/stm32/107.html инструкция, как сделать себе бесплатный ST-link, и как настроить STM32CubeMX, чтобы TrueStudio отлаживал сгенеренный код. Прошивку можно обновлять и отлаживать, не дергая никакие перемычки и не соединяя провода на соплях.
        Всем советую.
        Здешние уроки вполне себе совместимы с ST-link, с учетом изменения одной настройки, описанной в статье по ссылке выше. Надеюсь, автор снизойдет до холопов и включит в описание вариант с ST-Link…

        0
      • Много, но хотелось бы услышать именно от Вас. По всем остальным темам информации тоже много, но как неоднократно замечено — Ваши уроки — лучшие. Может сделаете урок по заливке через ST-Link

        0
  7. Приветствую Эдуард.

    Новый интерфейс STM32CubeMX 5 ой версии взрывает мозг.

    Какие Ваши ощущения при переходе с 4 на 5?

    0
  8. Во — первых, спасибо за прекрасные уроки. Я много чего читал в жизни, но такой хорошей подачи материала редко где встретишь. Очень здорово, продолжайте в том же духе.
    По делу. По поводу поддержки Atollic. Скачал обновления для CubeMX (поставил версию 5.1, firmware 1.9 для stm32f0). После этого вдруг перестали генериться проекты. Файлы библиотек копируются в папку проекта, а файл проекта не создаётся (. Покопался и что вижу?

    STM32CubeF0 Firmware Package V1.9.0 / 25-August-2017 Main Changes
    Maintenance release.
    Fix known defects and several enhancements implementation.
    Remove support of Atollic TrueSTUDIO STM32 (TrueSTUDIO) toolchain.
    General updates to be compliant with Linux platforms.

    Т.е. поддержка Atollic для stm32f0 удалена! Во дела… Зачем это сделано, непонятно. И где гарантия, что она не будет удалена для других МК? Пришлось откатить всё назад. А интерфейс куба 5 мне лично совсем не понравился (. Так что, осторожно с обновлениями

    0
  9. Всем привет. Скажите пожалуйста возможно вопрос не по теме. Как можно увеличить шрифт в atollic truestudio. Когда пишешь код хочется видеть его гораздо крупнее как например в arduino там можно увеличивать шрифт кода. Подскажите пожалуйста как в atollic truestudio можно увеличить шрифт?

    0
    • Всё нашёл, как увеличить размер шрифта в atollic truestudio. Очень здорово стало. Часами смотрел на мелкий шрифт.

      0
        • Ага, написали и все, нет ответа, как боты какие-то:) Как шрифт увеличить? Кто знает

          0
          • В Keil’е можно зажать и колесом мыши увеличивать или уменьшать масштаб (размер текста).

            0
          • Window -> Preferences -> General -> Editors -> Text Editors = See ‘Colors and Fonts’ to configure the font -> C/C++ -> Editor
            Двойной клик на Editor Text Font.

            Window -> Preferences -> General -> Appearance -> Color Theme
            Black Pastel — хороша
            Wombat — тож не плохо

            0
        • В редакторе ПКМ — Preferences.
          C/C++ — Editor — типа веб ссылки в правом верхнем углу TexEditor .
          Откроется следующее окно. — Найти ссылку «Colors and Fonts».В открывшейся — Edit . А там природа поможет.

          0
  10. Кто нибудь знает как в atollic truestudio отслеживать переменные в реал тайме. Скиньте пожалуйста ссылку, где это хорошо описывают.

    0
  11. Здравствуй,в папке Debug HEX файл не появляется,с чем может быть связано?

    0
    • Здравствуйте!
      То же нет ни elf hex map файлов, одни .su
      Решили проблему?
      Ставил разнве версии и всё без толку….

      0
  12. Здравствуйте!
    Застрял на стадии генерации проекта в КубМХ. Приложение спрашивает про скачивание пакета, соглашаюсь и потом выскакивает ошибка. Вручную скачиваю этот файл — не помогает. Какие есть варианты выхода из этой ситуации? До этого при первом включении программа скачивала файлы, значит со связью все в порядке.

    0
    • У меня тоже так было.
      Если не получается автоматом, надо файл надо не только скачать, но и разархивировать, и потом разархивированную папку указать в настройках проекта.

      0
  13. Я на эти грабли тоже влетел пока запихивал бинарники с git habov . Пытался сделать отладочный программатор из blue pill .
    Да , у меня и com port получился из пилюли и с другой bin определяло пилюлю как st-link dungle.
    Потом , сложилось впечатление , что бинарник прошил и пилюлю и программатор . Чтой тось там вроде докачало автоматом на win 7 .
    Keil and st-link util взбунтовались .
    Потом как то реанимировал . Сносил виртуал алкоголя ,тыркал кнопки и читал молитвы.
    Заказал ещё 2 на амазоне и тут мой ST-link v 2 ожил .
    Но он стал другим . Без подключенной turget ( целевое устройство ) программатор не принимает.

    0
  14. Добрый день. Столкнулся с проблемой. При нажатии кнопки GENERATE CODE и начале загрузки архива выбивает ошибку.

    Error downloading the following files:
    stm32cube_fw_f1_v170.zip (Not available)

    For unavailable files, you can load them manually with the ‘From Local’ button

    Я так понимаю, что доступа к указанному архиву у программы нет и на форуме ST она частенько всплывает. Возможно у кого-то есть необходимый архив? Буду благодарен

    0
    • Сам отвечу на свой-же вопрос. Похоже что, старую версию убрали, а в программе забыли прописать.

      Скачал архив с версией 180
      https://my.st.com/content/ccc/resource/technical/software/firmware/40/db/b8/d5/bd/a7/41/b1/stm32cubef1.zip/files/stm32cubef1.zip/jcr:content/translations/en.stm32cubef1.zip

      0
      • привет, сам вот столкнулся с такой же проблемой. не подскажете куда нужно распаковать архив?

        0
        • Теоретически можно распаковать куда угодно, но потом эту папку надо указать в свойствах проекта, в самом низу директорию.

          0
  15. Добрый день!
    Столкнулся с непреодолимой проблемой, помогите, пожалуста!
    У меня есть F401RE NUCLEO со встроенным программатором и, собственно, F103C8T6. Насколько мне известно uart в программаторе уже «из коробки»
    Но, используя программатор от NUCLEO никак не получается подключить по COM F103 к компу

    0
    • Проблему решил путем подключения F103 через SWD и прошивки ее через ST-LINK utility и то, F103 определяется, если правильно подобрать момент между нажатием кнопки Reset на F103 и нажатием Connect в утилите

      0
  16. у меня вопрос.cmsis чем лучше хал или ЛЛ?.И как в Atollic TrueStudio программировать в данной библиотеке?Ведь на стм32 столько регистров что можно голову потерять.Как включить cmsis?

    0
    • Здравствуйте!
      Это решает разработчик программы в каждом конкретном случае. Если программа критична по времени выполнения, то CMSIS. В последующих уроках вы сможете сравнить эти способы.

      0
  17. я имею виду как лучше включить CMSIS в проект масса вариантов с чистого листа.Какой способ лучше.При изначальном настройке проекта cmsis в Atollic TrueStudio есть эта библиотека.Какие инклуды включать?.

    0
  18. Здравствуйте. После генерации проекта в CubeMX и при открытии его в True Studio, TrueStudio не видит некоторые заголовочные файлы, хотя в файловой системе они присутствуют.
    Подозреваю, что структура проекта, генерируемая CubeMX не совпадает со структурой проекта TrueStudio.
    Как это можно исправить? Где прописать зависимости?

    0
      • Я так и сделал. Может быть в новой версии или CubeMX или TrueStudio изменены структуры каталогов? Может быть можно прописать путь к папке проектов в системной переменной PATH? Поможет ли это? Я не совсем понимаю, как компилятор встроенный в TRUEstudio ищет файлы/ То ли он обращается к системным средствам поиска каталогов, то ли использует свои средства…

        0
        • Попробуйте поиграться с Advanced settings в настройках проекта. После того как я поставил галочку напротив настройки типа параллельно «.с», «.h», дело у меня пошло.
          Вообще с путями, директориями лично у меня самый главный головняк в любой системе программирования. Часто не столько чисто программируешь, сколько разбираешься как правильно подключить библиотеки.

          0
  19. Подскажите пожалуйста, почему может не работать подгрузка файлов при первом(и последующих) запуске? Ни в начале при попытке обновиться, ни при запуске «Generate Code», ни при нажатии «From Local»? Вроде как конектиться с сервером, а потом «not avialable», «can load them manually with the «From Local» button.» , но и там ошибка в загрузке :(((
    ОС W10, java8 x32 и java8 x64 есть, с интернетом все в порядке, вторые сутки бьюсь, ничего понять не могу. Там вначале окно какое-то с предложения прокси-серверов, так я выбрал самый верхний пункт. без них.
    И ещё: работу в STM32CubeMX(5.4.0) можно производить без подключения платы и ST-Link-2 ?

    0
  20. Здравствуйте! На моей плате nucleo F446RE нет внешнего кварцевого резонатора, подскажите пожалуйста как его подобрать и как к нему подобрать емкости и резисторы. В инструкции к МК не нашел

    0
  21. в тексте «правая кнопка мыши», наверное, надо заменить на «левая» ? или у меня мыша праворукая

    0
    • Тоже споткнулся о такое, видимо в разных версиях по разному. Там ещё можно внизу принудительно свойства задать.

      0
  22. Недавно просмотрел видео по отладке TrueSTUDIO https://youtu.be/mnskQnHj68Q с применением SWV (serial wire viewer). Какой для этого необходим программатор, я так понимаю, китайский ST-Link для этого не подходит? И где можно найти больше информации по отладке?

    0
    • Здравствуйте!
      Про отладку через ST-Link я буду рассказывать позже. А отладка через SWV доступна начиная с начиная с Cortex-M3.

      0
  23. Здравствуйте. Как описано в уроке загрузил Atolic TrueSTUDIO 9.3.0 и Cube MX 5.6.0. При компелировании проекта в TrueSTUDIO ругается что не видит #include «main.h» потом ругался что не видит «Description Resource Path Location Type
    fatal error: stm32f1xx_hal.h: No such file or directory stm32f1xx_hal_gpio_ex.c /Lesson3/Lesson3_1/Drivers/STM32F1xx_HAL_Driver/Src line 40 C/C++ Problem» В чем проблемы? Куда копать?

    0
    • Здравствуйте!
      Вы в Cube MX проект создали?
      Попробуйте мой проект. Посмотрите в моем проекте установки
      Project -> C/C++ Build -> Paths and Symbols
      Но они должны быть сделаны автоматически в Cube MX.

      0
    • Спускаемся ниже, под вкладка Code Generator.

      Здесь обязательно отмечаем опцию Generate peripheral initialization as pair…

      Таким образом получим более структурированный проект, в котором для каждого типа периферии имеется своя пара C и H файлов.

      0
  24. Спасибо за урок, Эдуард!
    Все получилось с первого раза. давно хотел начать с СТМ, но ни времени небыло, ни толкового урока.
    Использую плату OPEN103R STM32F103RCT6

    0
  25. А почему автор использовал еще и Atollic, хотя все необходимое (и редактор, и компилятор) есть в STM32CUBE?

    0
    • Сам даю ответ.
      Среда STM32CubeMX предназначена для подготовки конфигурационных параметров (команды настройки регистров), но не содержит IDE.
      Среда STM#@CebeIDE содержит и конфигурационную часть, и IDE.
      Эдуарт в STM32CubeMX «готовит» конфигурационную часть, а в Atollic пишет код программы.
      Вот такая связка программ, не очень понятная при первом прочтении.

      0
  26. Спасибо большое за хорошее объяснение! Скажите пожалуйста, где нажимать: «Нажимаем GENERATE CODE.»
    И почему-то в ToolChain/IDE только STM32 CubeIDE и неактивный
    Соответственно «нех» не видно

    0
      • Спасибо!
        В верхнем меню Project Manager не вижу…

        Вижу за Project Manager идёт Tools.

        Не добавляется Атолик, как у Вас написано
        Расширенные настройки Code Generator ?
        Там все неактивно

        0
  27. так и не смог установить консольную загрузку сразу из программы Atollic tru studio. нет информации . но зато есть другой выход для прошивки контроллера программатором китайским ST-LINK V2 . скачиваем программу STM32CubeProgrammer оттуда же откуда всё и скачивали . устанавливаем . и еще конечно надо установить программу ST-LINK Utility в этой проге есть драйвера для ST-LINK v2 . подключаем
    SWDIO(st-link v2) —DIO(на плате stm32)
    SWCLK(st-link v2) —CLK(на нашей плате)
    при создании проекта в STM32CubeMX желательно поставить галочку напротив Debug Serial Wire в разделе Pinout & Configuration далее в окне SYS . в STM32CubeProgrammer (там сразу видно) нажать на Connekt для связи . Открыть Open File прошивку то есть в формате .hex или .bin или .elf .жмем Download . Ok . Обязательно надо разъединить соединение нажимая Disconect . и нажать кнопку сброса на плате . отладка программы простая . вносим изменения в Atollic True Studio затем компилируем молоточком Build Project и они моментально автоматически сами без нашего участия вносятся в файл в загрузчике STM32CubeProgrammer . нам остается только нажимать Connect затем Download затем OK затем Disconnect и кнопку сброса Reset на плате. можете по ходу и это изучить . тем более что наши прошивки типа .hex прошиваются на ура . само собой надо соединить GND ; +3.3V (или 5V) ;SWDIO; SWCLK при подключении .

    0
  28. да . и главное , на китайском программаторе ST-LINK V2 , были перепутаны контакты SWDIO и SWCLK . сначала ноутбук не видел его . после того как я поменял местами провода идущие на эти 2 контакта сразу всё заработало . снял крышку с него и точно на плате они показаны правильно а на крышке перепутаны . учтите этот момент .мне показалось что с ST-LINK V2 даже быстрее и удобнее прошивать чем с USB-TTL-UART . но с другой стороны с помощью USB-TTL-UART можно прошивать почти любые микросхемы . ну а с ST-LINK V2 можно прошить только платы имеющие выводы SWDIO и SWCLK . хотя конечно можно допаять и нарастить схему этими самодельными выводами но это уже будет акт садомазохизма .

    0
  29. Сегодня лучше использовать STM32CubeIDE,
    Та же TrueStudio (судя по всему, работает та же команда), но с добавлениями. Встроенный кубик. Некоторые дополнительные возможности. Проекты TrueStudio импортируются без проблем.

    0
  30. Всем привет. Не могу никак связаться через ардуино с стм32 (сейчас другого ничего нет под рукой). Соединил ресет с землей на ардуино, соединил Tx c Tx, Rx c Rx.
    Потом попробовал залить через библиотеку SoftwareSerial, настройки СОМ-порта 115200. Устройства теперь соединяю через Tx c Rx.
    В обоих случаях у меня выскакивает сообщения — «Unrecognized device…please, reset your device then try again».
    Кто-нибудь сталкивался с подобным?

    0
    • Здравствуйте!
      Я так понял, что вы собираетесь использовать плату Ардуино как конвертер USB-UART.
      Соедините Tx с Tx, Rx с Rx. Зафиксируйте нажатой кнопку сброс Ардуино. И попробуйте.
      Еще может быть проблема — резистор 1 кОм, включенный между Tx ATmega и CH340. Точно будет работать, если подключиться непосредственно к CH340. Только относительно нее Tx к Rx и Rx к Tx.

      0
      • Абсолютно правильно Вы мне подсказали. Изначально, использовалась Arduino Uno, у которой как раз стоял этот резистор. Покопавшись в запасах, нашел Nano, у нее чип ftdi и нет резистора. В се прошло удачно.
        Дааа, титанический труд, конечно у Вас, Эдуард, огромные благодарности за подробный материал

        0
  31. Нашел такую платку решил попрбовать ее.
    Настроил куб как у вас, тактирование от внеш кварца, настроил кейл для работы с St-link (китайский) подключил. Залил код
    HAL_GPIO_TogglePin(LED13_GPIO_Port,LED13_Pin);
    HAL_Delay(1000);
    в надежде что будет мигать раз в 1 сек. В результате тишина, изменил на HAL_Delay(500); Тишина
    Снова изменил HAL_Delay(350) — стало моргать.
    Вроде как имею небольшой опыт работы с stm32 но вот чего-то не пойму почему при задержках более 350 светодиод на 13 лапе не хочет работать)))

    0
  32. Приветствую всех!
    Сделал все, четко как описано, компиляция без ошибок, но hex-файл не формируется. Не помогло и Properties->C/C++ Build->Settings->Tool Settings->Output Format->Convert build output-> Intel Hex.

    В Post-build steps строка вроде правильная: arm-atollic-eabi-objcopy.exe -O ihex «${BuildArtifactFileBaseName}.elf» «${BuildArtifactFileBaseName}.hex»

    Может кто ответит, в чем причина?

    0
  33. Добрый день. Не удается прошить через STMFlashLoader. Сообщение: «No response from the target, the Boot loader can not be started. Please, verify the boot mode configuration and the flash protection status, Reset your device then try again…» Где искать проблему? И нет ли возможности добавлять картинки к коментариям?

    0
  34. не нашел ни одного ответа автора на комментарии

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

    0
    • У меня было подобное, когда я с помощью NOD32 запретил трафик программе. Пока не удалил это правило из NOD32, выпадала ошибка при попытке скачивания.

      0
  35. Всё, нашёл. Всё дело в настройках Project -> Properties -> C/C++ Build -> Settings -> Tools Settings -> MCU Post build outputs -> Convert to Intel Hex file (-O ihex)

    0
  36. Здравствуйте, делаю всё как в уроке, но при переходе в project manager в пункте Toolchain/IDE не могу выбрать True Studio, он там отсутствует среди вариантов.

    0
  37. Здравствуйте, на сегодняшний день загрузка TrueSTUDIO невозможна. Кто знает в чем может быть причина.? Смогу ли я дальше проходить уроки, если буду использовать Cube?

    0
      • Сегодня мне порекомендовали Платформио. Не пробовали? А cubeIDE похоже всё…Заблокировали для нашей страны.

        0
        • В сети всё есть. При установке в пути к файлу не должно быть кириллицы. Лучше вообще скопировать установочный файл прямо на диск С. После установки удалить.

          0
  38. Здравствуйте!
    Не работает ссылка на скачивание архива проекта. Как можно получить доступ?

    0
    • Здравствуйте!
      Разница времени значительна в случае преобразования типов данных за счет указателей. Например, вы объявили массив типа float, и необходимо передать данные из него через UART, который передает тип byte. Вы преобразуете указатель на массив float в указатель byte и считываете его
      по байтам.
      Да, ссылки существуют.

      0

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Нажимая кнопку "Отправить" Вы даёте свое согласие на обработку введенной персональной информации в соответствии с Федеральным Законом №152-ФЗ от 27.07.2006 "О персональных данных".