Code программирование stm32

Если вам это нравится. Поделитесь этим

Введение Для создания нового проекта для STM32 сначала установите STM32CubeIDE, а также вам нужно иметь плату STM32 eval. Мы предлагаем использовать платы NUCLEO 64pins. Которые не стоят дорого и можно купить в Интернете.

Официальная документация по STM32CubeIDE: UM2609 – Руководство пользователя STM32CubeIDE

См. Здесь информацию о том, как установить STM32CubeIDE.


Библиотека STM32

Также необходимо загрузить пакет библиотеки STM для семейств STM32, которые вы решите использовать. (G0, F0, L4, F4…H7).
Библиотека содержит:
Примеры (I/O, USART, I2C, ADC, DAC, SPI, CAN, DMA и т. Д.)
Компоненты промежуточного
программного обеспечения (USB, TCP/IP, графика. Файловая система FAT и т. Д.)
Функции HAL и LL

Hardware Abstraction Layer (HAL) обеспечивает переносимость между различными устройствами STM32 с помощью стандартизированных вызовов API
Low Layer (LL) API-интерфейсы-это легкий. Оптимизированный. Ориентированный на экспертов набор API-интерфейсов. Предназначенных как для повышения производительности, так и для повышения эффективности выполнения

Как HAL, так и LL API готовы к производству и были разработаны в соответствии с руководящими принципами MISRA-C®:2004 с некоторыми документированными исключениями (отчеты доступны по запросу) и ISO/TS 16949.
Кроме того, специфичные для ST процессы валидации добавляют квалификацию более глубокого уровня.

В нашем случае мы решаем использовать STM32F401RE и NUCLEO-F401RE и поэтому загружаем библиотеку F4.
ПРИМЕЧАНИЕ:
В любом случае, не стесняйтесь выбирать оценочные платы STM32, которые вы предпочитаете.
Концепции, представленные на этой странице, одинаковы для всех семейств STM32.

Чтобы узнать функции, доступные для привода MCU . Необходимо скачать Руководство пользователя. Описывающее функции HAL и LL. Это большое руководство и находится в разделе , см. Ниже.:

В нашем случае инструкция такова: UM1725 – Описание драйвера для STM32F4 HAL и LL


Руководства по STM32

Как мы уже упоминали выше, для этого первого примера мы используем NUCLEO-F401RE, но вы должны использовать любую плату STM32 eval.
На плате есть STM32F401RE (LQFP64), важно помнить. Что для любого STM32 есть 3 основных руководства. Которые являются:
Data sheets (DS)
Reference manual (RM)
Errata sheets (ES)

Как правило, сведения листов (ДС) крышка много похожих МК, на которые знаете периферия. Сколько операций ввода-вывода. Flash, и т. д.. То есть в вашем конкретном микроконтроллеров. Откройте ДС и перейти на страницу с названием Описание и смотрим столбец по вертикали имя MCU и упаковки. См. ниже пример. Желтые коробки.

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

Ниже приведена карта памяти 512KFlash STM32F401RE.

Обратите внимание, что адрес вспышки является непрерывным (линейный адрес). Но разделен на 8 секторов. Вспышка начинается с адреса 0x0800 0000 и заканчивается по адресу 0x0807 FFFF.
Первая инструкция вашей программы хранится по адресу 0x0800 0000.
Конечно, с помощью STM32CubeIDE можно увидеть содержимое FLASH, RAM, REGISTERи т. Д. , см. ниже

ПРИМЕЧАНИЕ:
Системная память является ПЗУ и записывается STM для загрузчика магазина и другой процедуры самотестирования..

Руководство Errata sheets важно знать, в конечном счете, проблемы, найденные в mcu. И обходное решение. Которое предлагает STM.


Начните писать код STM32

Теперь пришло время написать какой-нибудь фрагмент кода для STM32.

Наша цель-мигание зеленого светодиода (он подключен к PA5), который присутствует на NUCLEO-F401RE. И отправка данных через USB (virtual COM) на ПК.
На ПК мы используем для Windows Tera-Term, а для Linux мы используем Minicom или GtkTerm, для просмотра результатов.

Примечание

:
В любом случае, не стесняйтесь, чтобы выбрать оценочные платы STM32, которые вы предпочитаете.
Концепции, представленные на этой странице, одинаковы для всех семейств STM32.


Сначала установите на свой компьютер STM32CubeIDE и эмулятор терминала (на ПК мы используем. Для Windows 10-Tera-Term, а для Linux-Minicom или GtkTerm).
В нашем примере мы используем ПК с Linux, но то же самое происходит и с ПК с Windows 10.

После установки STM32CubeIDE запустите его.


Start STM32CubeIDE

Официальная документация по STM32CubeIDE: UM2609 – Руководство пользователя STM32CubeIDE

При запуске STM32CubeIDE попросит вас указать рабочий каталог для вашего проекта. Выбрать (кнопка ОБЗОРА) один из них и нажать обед, см. ниже.

Теперь вы должны увидеть окно, как показано ниже, выберите: ЗАПУСТИТЬ НОВЫЙ ПРОЕКТ STM32

Теперь сравним коробку, где STM32CubeIDE скачивает обновление из Интернета. Наберитесь терпения.

В появившемся окне у вас есть возможность выбрать STM32 (MCU/MPU Selector) или оценочную плату (Board Selector), мы выбираем Board Selector, см. изображение ниже.

В появившемся окне напишите NUCLEO-F4101RE (или название вашей платы STM eval) в поле поиска (1), затем выберите плату (2) и нажмите кнопку ДАЛЕЕ (3), см.

В окне ниже у вас есть возможность выбрать выпуск используемой библиотеки.

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

В окне ниже выберите ДА, чтобы открыть также вкладку MX для настройки ввода-вывода. Периферийных устройств и т. Д.

При первом использовании нового STM32 STM32CubeIDE загрузит соответствующую библиотеку с веб-сайта STM. Будьте терпеливы.
В конце загрузки вы должны увидеть окно, подобное приведенному ниже.

ПРИМЕЧАНИЕ:
Мы подчеркиваем вам. Что:
* Зеленый светодиод выделен PA5
* Синяя кнопка выделена PC13
* Usart TX и Usart Rx выделены PA2 и PA3.
Чтобы узнать, что такое Usart, нажмите кнопку CONNECTIVITY, и вы обнаружите, что это USART2.
USART2 подключен к STLINK-v2 (помните. Что этот эмулятор встроен во все оценочные платы STM) и можно отправлять/получать символы через USB, используемый эмулятором (virtual COM).

Цветные булавки-это выделенныебулавки , серые булавкисвободные


Конфигурация Часов

Если вы нажмете на вкладку КОНФИГУРАЦИЯ ЧАСОВ, перспектива изменится. И вы увидите дерево часов, см. Ниже.

Часы 8 МГц поступают от STLINK-v2.
В случае ниже часы HCLK (это основные часы MCU) генерируются. Начиная с внутреннего генератора HSI RC. См. красную линию.

ПРИМЕЧАНИЕ:
Все STM32 имеют 2 или более внутренних источника синхронизации. Обратитесь к относительному DS.
Также точность этих внутренних часов зависит от STM32, который вы используете.

84 МГц (HCLK) — это максимальная частота STM32F401RE.
Если вам нужно уменьшить эту частоту, просто выберите 84 и вставьте новое целое число. Попробуйте использовать 16 и 100.


Связать с булавкой функцию

Если вам нужно связать с булавкой функцию, нажмите на булавку и в появившемся окне выбора выберите функциональность. Которую можно связать с относительным булавкой.
Этот способ работы рекомендуется для выделения булавок ввода-вывода. Но не рекомендуется для выделения булавок периферийных устройств.
Для выделения периферийных контактов рекомендуется выбрать:
Системные основные
аналоговые
таймеры
и т.

Д. См. Ниже.

Предположим , что вам нужно использовать также

I2C, выполните следующие шаги.
Сначала выберите вкладку ПОДКЛЮЧЕНИЯ(1), затем выберите доступный I2C (2)(красные периферийные устройства означают. Что они недоступны. Потому что некоторые другие периферийные устройства используют те же контакты). Затем настройте его (3 и 4).


Изменение положения контактов периферийных устройств

ПРИМЕЧАНИЕ:
Большинство основных периферийных штифтов можно перемещать на другие штифты, см.


Параметры ввода-вывода

Интересна возможность настройки выводов ввода-вывода, см. ниже.


МЕНЕДЖЕР ПРОЕКТА

Теперь выберите вкладку МЕНЕДЖЕР ПРОЕКТОВ, вы должны увидеть следующее окно.
На вкладке ПРОЕКТ вы можете выбрать размер КУЧИ и СТЕКА, а также заданное значение. Если у вас нет особой необходимости.
КУЧА и СТЕК также могут быть изменены позже в вашем SW.

На вкладке Генерация кода установите флаги, как показано ниже.

В РАСШИРЕННЫХ НАСТРОЙКАХ есть возможность для любой периферии выбрать функции HAL или LL.
Другими словами, если вы решите использовать UART1
в режиме LL, не используйте функции HAL на USAT1, чтобы избежать фатальной неисправности на mcu

В общем случае для применения батареи мы предлагаем использовать LL, а в другом случае-HAL.

Для нашей необходимости все периферийные устройства и I/O теперь настроены. Теперь можно генерировать проект.

ПРИМЕЧАНИЕ:
Проект создан для GCC, потому что STM приобрела ATOLLIC и интегрировала его в STM32CubeIDE.

На этом сайте в разделе:

вы можете найти много примеров, советов и трюков для Atollic. Которые совместимы с STM32CubeIDE.


Сгенерируйте проект

Для создания проекта выполните следующие действия (1, 2 и 3).
Возможно, вы заметили, что в меню ПРОЕКТА вы также можете сгенерировать ОТЧЕТ (

Generate Report), попробовать использовать его и посмотреть на относительный PDF-файл.


Вставьте код пользователя в проект

На рисунке ниже для выделения. Что является хорошей практикой вставить код в специальные разделы , которые начинаются с
/* код пользователя начать ХХХ *
и завершился С
/* код пользователя конце ХХХ *
если вы уважаете это. Вы можете вернуться к конфигурации устройства инструмент для изменения. Восстановления кода и сохранить свой код.

Откройте main.c

Теперь начните вставлять строки C и, если вы точно не помните синтаксис. После написания некоторых букв команды нажмите:

CTRL + ПРОБЕЛ
и сравните всплывающие окна, см. ниже


Хорошо, две строки для вставки для мигания зеленого светодиода. Присутствующего на NUCLEO-F401RE: HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5);
HAL_Delay(250);


Компилировать

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


Отлаживать

Теперь подключите STM eval board к компьютеру и нажмите на значок отладки.
См.ниже.

В появившемся окне выберите: Приложение STM32 Cortex-M C/C++
и нажмите OK, см. Ниже

При первом вводе в debug появится окно ниже, на вкладке DEBUGGER убедитесь , что выбран SWD, далее нажмите OK, см. ниже.

В этот момент появится окно ниже, установите флаг:

Запомните мое решение
и далее нажмите на кнопку: переключатель

Теперь появится окно отладки, см.

В перспективе отладки доступно много команд/значков. На данный момент нажмите на значок запуска и посмотрите свой NUCLEO-F401RE, вы должны увидеть зеленый светодиод. Который мигает.

Для остановки запуска программы нажмите значок ПАУЗЫ.
Для выхода из перспективы отладки нажмите значок ВЫХОДА.
Для продолжения выполнения программы нажмите еще раз значок ВЫПОЛНИТЬ.
См.ниже.


printf через USB (Serial COM)

Отлично, первый шаг нашей программы запущен, теперь мы покажем вам , как вставить

printf, который использует эмулятор для отправки данных через virtual COM, см. изображение ниже.

Для реализации printf через USB-порт необходимо перенаправить PUTCHAR на USART2.

Вставьте из:
/* КОДА ПОЛЬЗОВАТЕЛЯ BEGIN PV */
и
/* КОДА ПОЛЬЗОВАТЕЛЯ END PV */
код ниже.

int nLoop=0;

Вставьте из:
/* КОД ПОЛЬЗОВАТЕЛЯ BEGIN 4 */
и
/* КОД ПОЛЬЗОВАТЕЛЯ END 4 */
код ниже.

инт __Ио_putchar(внутр ч) 
{
uint8_t с[1];
с[0] = ч & 0x00FF;
HAL_UART_Transmit(&huart2, &*с, 1, 10);
вернуться ч;
}

и int _write(int в файл,типа char *ПТР инт лен)


{
инт DataIdx;
для(DataIdx= 0;
DataIdx

ВНИМАНИЕ
Из приведенного выше кода, sw относится к huart2, который является обработчиком USART2, который подключен к эмулятору ST-LINK для выхода. Как виртуальный com.
Обычно на 64-контактном НУКЛЕО используется USART2 (huart2), но на 144-контактном НУКЛЕО USART-это USART3, поэтому обработчик для использования-huart3.


Вставить из:
/* КОД ПОЛЬЗОВАТЕЛЯ BEGIN Включает в себя */
и
/* КОД ПОЛЬЗОВАТЕЛЯ END Включает в себя */
код ниже.



Вставьте из:
/* КОД ПОЛЬЗОВАТЕЛЯ BEGIN 3 */
и
/* КОД ПОЛЬЗОВАТЕЛЯ END 3 */
код ниже.

 nLoop++; 
printf(

Вот и все, скомпилируйте и протестируйте свой код. Не забудьте запустить MINICOM (или GtkTerm) или Tera-Term, чтобы увидеть результаты.

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

Пожалуйста , отправьте нам электронное письмо и спросите пароль для (Ref.Cod.):
Printf-NUF401RE
Пожалуйста, укажите также вашу страну и ваш город, это только для нашей личной статистики.
Получите SW , нажав здесь, но не забудьте спросить у нас пароль для его открытия.


Наблюдайте за переменными

Последнее, что мы покажем вам. — это способ наблюдения за вашими переменными в окне наблюдения.
В ОТЛАДКЕ выберите переменную:

nLoop, а затем щелкните правойкнопкой мыши .
В появившемся окне выберите: Добавить выражение наблюдения
и в появившемся окне выберите: OK
см. Ниже.

Теперь попробуйте ЗАПУСТИТЬ, ОСТАНОВИТЬ. ЗАПУСТИТЬ и ОСТАНОВИТЬ вашу программу и увидеть переменную.

Спасибо нашему другу профу. Анджело Пьетро Пенниси теперь есть соответствующее видео.



Дополнительная Информация

Как установить STM32CubeIDE

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

STM32CubeIDE.
Краткое описание данных STM32CubeIDE находится здесь.
Документация STM32CubeIDE находится здесь.

Особенности STM32CubeIDE приведены ниже.
Для нас одной из лучших особенностей является то, что это мультиплатформенный инструмент, потому что мы используем LINUX (Ubuntu).
Также STLINK-v2 (is STM32 low coast emulator) на 100% совместим с Ubuntu.
ПРИМЕЧАНИЕ: STLINK-v2 встроен во все платы STM32 eval.

  • Интеграция STM32CubeMX, который предоставляет услуги для:
    • Выбор микроконтроллера и микропроцессора STM32
    • Конфигурация Pinout, clock, периферийногои промежуточного ПО
    • Создание проекта и генерация кода инициализации
  • На основе ECLIPSE™/CDT, с поддержкой дополнений ECLIPSE™,

    GNU C/C++ for Arm® toolchain и отладчика GDB

  • Дополнительные расширенные функции отладки, включая:
    • Представления ядра процессора, периферийного регистраи памяти
    • Просмотр живых переменных часов в режиме реального времени
    • Системный анализ и трассировка в реальном времени (SWV)
    • Инструмент анализа неисправностей процессора
  • Поддержка отладочных зондов ST-LINK (STMicroelectronics) и J-Link (SEGGER)
  • Импорт проекта из Atollic®TrueSTUDIO® и AC6 System Workbench для STM32 (SW4STM32)

  • Поддержка нескольких ОС: Windows®, Linux®и macOS®, только 64-разрядные версии

Мы используем UBUNTU 18.04.3 LTS (версию Linux).
Если вы используете Linux Ubuntu , скачайте STM32CubeIDE, распакуйте его. Измените разрешение файла:
st-stm32cubeide_1.1.0_4551_20191014_1140_amd64.deb_bundle.sh
а в терминале выполните следующие команды:
sudo su
chmod +x st-stm32cubeide_1.1.0_4551_20191014_1140_amd64.deb_bundle.sh
далее установите его:
./st-stm32cubeide_1.1.0_4551_20191014_1140_amd64.deb_bundle.sh

ПРИМЕЧАНИЕ:
На вашем ПК (хосте) можно добавить дополнительные компиляторы. Например для Linux или для Windows, и использовать его внутри STM32CubeIDE.
Для установки компилятора для Linux выполните следующие команды:

  • sudo su
  • обновление apt
  • apt install build-essentia

После вышеприведенных команд на вашем Linux есть компилятор GCC для вашего ПК.
Теперь можно использовать STM32CubeIDE также для написания кода C для вашего ПК (хоста).
Подробнее смотрите здесь.

Для получения информации о версии установленного GCC используйте следующую команду:
gcc –version
Вы должны увидеть ответ. Как показано ниже:
gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
Copyright (C) 2017 Free Software Foundation, Inc.
Это свободное программное обеспечение; см. Источник для условий копирования. Нет НИКАКОЙ
гарантии; даже для КОММЕРЧЕСКОЙ ПРИГОДНОСТИ или ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ.


Импорт проекта в рабочую область (с помощью STM32CubeIDE)

Предположим, что вы получаете проект .zip от вашего друга для STM32CubeIDE. Для импорта его в рабочую область сделайте это:

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

В появившемся окне выберите:

см. Ниже

Теперь в появившемся новом окне выполните шаги от 1 до 4.

Это все, автоматически STM32CubeIDE импортировать .ZIP-проект, который вы получили.

Ниже приведены шаги для компиляции и отладки.

Иногда возможно, что при первом вводе в отладку, появится ошибка ниже.

Нажмите OK и выберите конфигурацию отладки, см. Ниже.

Проблема заключается в небольшой ошибке, присутствующей в текущем выпуске STM32CubeIDE. Которую легко решить. Просто выполните следующие шаги. И отладка будет работать хорошо.

ТЕСТ – импорт проекта

Чтобы проверить, все ли вы поняли. Скачайте этот проект и импортируйте его в свой рабочий каталог STM32CubeMX.
Этот пример предназначен для NUCLEO-F401RE и не мигает зеленым светодиодом.
В конце вашего импорта и компиляции вы должны увидеть что-то вроде приведенного ниже.


Экспорт проекта STM32CubeIDE

Для экспорта проекта выполните следующие действия:
FILE -> EXPORT >
and в появившемся новом окне выберите:
GENERAL -> ARCHIVE FILE> затем нажмите NEXT
и в появившемся новом окне выберите:
SELECT ALL (4)
next выполните шаги 5, 6 и 7, см. Ниже.


STM32CubeIDEПереключение рабочего пространства

Для изменения вашего рабочего пространства у вас есть две возможности:
Закрыть STM32CubeIDE и снова открыть его. Выбрав новый каталог рабочего пространства или…
выберите: ФАЙЛ -> Переключить рабочее пространство ->> Другое…>>
выберите новое рабочее пространство и выберите ОБЕД.


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

Пожалуйста , отправьте нам электронное письмо и попросите пароль для: StartUpCubeIDEandF401RE
Пожалуйста, укажите также вашу страну и ваш город, это только для нашей личной статистики.
Получите SW , нажав здесь, но не забудьте спросить у нас пароль для его открытия.

Спасибо нашему другу профу. Анджело Пьетро Пенниси теперь есть соответствующее видео.


Что происходит с включением питания STM32 ?

При включении питания происходит последовательность инициализации. Которая стабилизирует часы микроконтроллера и копирует в оперативную память из ФЛЭШ-памяти переменные.
Этот код написан на ассемблере и выпущен производителем mcu
, а после этой части инициализации запускается написанный вами sw.


Отладка кода C или ASM

При первом входе в режим отладки по умолчанию выполняется отладка исходного кода языка Си.
Если вам нужно отладить код ASM, нажмите на значок qui sotto.


Защита от считывания проприетарного кода AN4701 – STM32F4

Последний, но не список очень важно защитить ваш код, для глубокого объяснения см. AN4701.

Принципиально есть 3 уровня защиты, которые являются:
Уровень 0– Уровень 0 является стандартным. Флэш-память полностью открыта и все операции с памятью возможны во всех конфигурациях загрузки (отладочные функции. Загрузка из оперативной памяти. Из загрузчика системной памяти или из флэш-памяти).
В этом режиме нет защиты (она в основном предназначена для разработки и отладки).
Уровень 1 – Когда активирован уровень защиты чтения 1, никакой доступ (чтение. Стирание и программирование) к флэш-памяти или резервному SRAM не может быть выполнен с помощью функций отладки. Таких как последовательный провод или JTAG. Даже при загрузке из SRAM или загрузчика системной памяти.Однако при загрузке с флэш-памяти разрешен доступ к этой памяти и резервному копированию SRAM из пользовательского кода.
Любой запрос на чтение защищенной флэш-памяти генерирует ошибку шины.
Отключение защиты RDP уровня 1 путем перепрограммирования байта опции RDP на уровень 0 приводит к массовому стиранию.
Уровень 2 – При активации RDP уровня 2 все средства защиты. Предусмотренные в Level1, активны. И чип полностью защищен.
Байт опции RDP и все остальные байты опции заморожены и больше не могут быть изменены.
JTAG, SWV (single-wire viewer), ETM и boundary scan отключены.При загрузке с флэш-памяти содержимое памяти доступно пользовательскому коду.
Однако загрузка из SRAM или из загрузчика системной памяти больше невозможна.
Эта защита необратима (предохранитель JTAG). Поэтому невозможно вернуться к уровням защиты 1 или 0.


Позаботьтесь также о проекте HW для создания хорошего продукта

До сих пор мы говорили о SW. Но не забывайте применять крайнюю осторожность и к проекту вашего HW.
помните. Что вашему SW нужен надежный HW. Чтобы работать правильно и наоборот.

Ваш конечный продукт представляет собой смесь из HW & SW.
Используйте все время, необходимое на этапе проекта HW, чтобы избежать будущих проблем. Помните. Что вы разрабатываете встроенный HW/SW. Который должен работать без присмотра человека. И выпускаете свой проект только тогда. Когда он вас устраивает.
Помните. Что люди будут видеть только конечный продукт, но не ваши усилия и время. Которое вы потратили на его создание.
Ваши усилия будут вознаграждены признательностью вашего конечного продукта.

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

  • Приведенные ниже инструкции находятся в WWW.ST.COM веб-сайт.
    • AN1709Руководство по проектированию ЭМС для STM8, STM32 и устаревших микроконтроллеров
    • AN3960ESD соображения для сенсорного зондирования приложений на микроконтроллерах
    • AN5036Руководство по тепловому управлению для приложений STM32
    • AN4299Повышение устойчивости к проводимому шуму для сенсорных приложений на микроконтроллерах
    • AN3307 – Руководство по получению сертификации IEC 60335 класса B для любого применения STM32
    • Начало разработки аппаратного обеспечения доступно для всего семейства STM32, найдите его на странице STM32xxx. Которую вам нужно использовать. AN4080 предназначен для семейства STM32F0.
    • Руководство по проектированию генераторов для микроконтроллеров STM8S, STM8A и STM32, AN2867 находится здесь
    • Калибровка внутренних RC-генераторов доступна для всего семейства STM32, найдите ее в своем STM32, который вам нужно использовать. AN4067 предназначен для семейства STM32F0.
    • AN4657 – STM32 in-application programming (IAP) с использованием USART
    • AN1181 – Измерение чувствительности к электростатическому разряду
    • AN4879 – Руководство по оборудованию USB и печатным платам с использованием микроконтроллеров STM32

Приложения

Оптимизация

Чтобы оптимизировать размер, созданный STM32CubeIDE, выберите -Os, см. Изображение ниже.

шестнадцатеричный файл

Для генерации шестнадцатеричного кода см. Приведенную ниже конфигурацию.


Питайте NUCLEO с помощью внешнего USB источника питания


Примечание по FIREFOX и CHROME:

Используйте FIREFOX или CHROME для четкого просмотра изображений. Присутствующих на этом веб-сайте
Для увеличения изображения нажмите: CTRL +
Для уменьшения изображения нажмите: CTRL –