Можно ли программировать отладочные платы STM32 с помощью Arduino IDE? Да, ядро STM32DUINO обеспечит необходимые драйверы устройств для использования плат разработки на базе STM32, как если бы они были платами Arduino!
В этом руководстве мы рассмотрим программирование в Arduino IDE как способ начать работу с микроконтроллерами STM32. Этот подход позволит вам легко и быстро начать работу с STM32 с использованием известной и популярной среды разработки и ядра STM32DUINO, которое позволяет программировать микроконтроллеры STM32 на языке Arduino C++ и использовать множество библиотек и примеров кода, доступных для Arduino.
Данное руководство содержит всю необходимую информацию для программирования вашей платы разработки STM32 с использованием Arduino. Предоставленная информация применима к любой плате разработки STM32, поддерживаемой ядром STM32DUINO Arduino. Итак, давайте начнем!











15 комментариев. Оставить новый
Чет туфта местами. Написано должен обнаружиться как HID-usb, на скрине висит на СОМ11, в ардуино иде висит на СОМ3. “перемычку BOOT0 в положение “1”” – это для записи загрузчика а не пользовательского скетча))). У меня после зашивки hid_generic_pc13.bin появляется в диспетчере только HID-usb и то только с перемычкой BOOT1 в положение “1”. Вот только СОМ порта нет и ессно шить ардуина без него ничего не будет, как и мониторить сериал.
На blue_pill перемычка в 1, позволяет записывать пользовательский скетч, с последующим его исполнением, до презагрузки по питанию или reset. Если в нуле, загрузчик выдает ошибку. Так, что автор прав.
После загрузки подключаю STM32 через USB – в ответ получаю сообщение “USB устройство не опознано”. Проверял загрузку много раз на разных платах (китайских).
народ не парьтесь с прошивкой через USB. в платах stm32 эта функция не заложена по умолчанию… покупайте st link китайский и шейте через него.
если кто еще живой читает эту статью подскажите…
stm32 если программировать в cube mx(ide) можно и нужно настраивать частоты контроллера для быстрой его работы, включения внешних кварцевых резонаторов для более стабильной работы… а вот о такой возможности в arduino ide ни в одной статье не говорится. как быть?
Здравствуйте,
Прошивка STM32 через USB действительно не предусмотрена по умолчанию, однако такой метод может существенно упростить работу для начинающих и снизить порог вхождения. Что касается настройки частоты, то при программировании в Arduino IDE эти параметры по умолчанию берутся из файлов библиотеки STM32. Этот подход ограничивает гибкость настройки по сравнению с CubeMX, но значительно упрощает работу, делая STM32 более доступным для новичков и для тех, кто переходит на эту платформу с Arduino.
зачем вы пользуете STM32 Cube Programmer в то время как STM32 ST-LINK Utility быстрее меньше весит и позволяет зашить за 5 секунд любой бинарник.
ST-LINK Utility является устаревшей программой, которая больше не получает обновлений, по этой причине мы предпочитаем STM32CubeProg.
А если hex файл сформировать при помощи arduino ide и залить его при помощи st-link utility, то сработает?
Здравствуйте! Да, такой метод тоже будет работать, при условии, что STM32DUINO поддерживает вашу модель микроконтроллера.
Я больше скажу. Можно шить скетчи прямо из ардуино иде через st-link напямую, выбрав его в Upload Method
Нет, т.к. STM32 не у всех определяется как комппорт, а без этого определения ардуина не видит плату, посему и был вопрос про программу ST-Link Utility.
STM32F103C 128kB шью файлом hid_generic_pc13.bin из папки HIGH density
STM32F103C 64kB шью файлом hid_generic_pc13.bin из папки low medium density
HID в диспетчере устройство Виндоус 10 появляется, СОМ порта нет на обоих платах
Возможно нужен какой-либо драйвер?
Здравствуйте, с этой прошивкой драйверов для STM не требуется. Драйвера нужны только для первоначальной загрузки прошивки на микроконтроллер, они устанавливаются вместе с STM32CubeProgrammer.
Несколько раз пытался установить пакет поддержки аппаратных средств STM32DUINO с stm32l151, ничего не получается. При установке ардуино, загрузил старую версию средств с stm32F103, все работает. новая устанавливаться не хочет. Если есть опыт поделитесь, пожалуйста.
Проблемы с установкой STM32duino для STM32L151 в Arduino IDE часто связаны с несовместимостью версий пакета, IDE или загрузчика, а также с ограниченной поддержкой low-power чипов L1-серии по сравнению с популярными F1 вроде F103.
Возможные причины
Несовместимая версия Arduino IDE: Новые версии IDE 2.x могут конфликтовать; STM32duino лучше работает на стабильной 1.8.19.
Неправильный пакет: Старая поддержка STM32F103 (rogerclarkmelbourne) не покрывает L151 полноценно; новая от STMicroelectronics (STM32 Cores) требует точной установки.
Отсутствие загрузчика: L151-платы часто идут без bootloader’а для Arduino, в отличие от Blue Pill на F103.
Драйверы и ссылки: Не установлены драйверы Due/SAM или неверный JSON-URL для Board Manager.
Шаги по установке
Установите Arduino IDE 1.8.19 (не 2.x). В File > Preferences добавьте URL: https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stm_index.json .В Tools > Board > Boards Manager найдите “STM32 Cores by STMicroelectronics” (последняя версия, например 2.8.x) и установите. Перезапустите IDE.
Выберите плату: Tools > Board > STM32 Boards > STM32L1xx (L152RE, Nucleo или Generic, близкое к L151). Укажите Upload method: Serial (если bootloader) или STLink.
Если нет bootloader’а — прошейте его отдельно через ST-Link V2: скачайте с GitHub stm32duino-bootloader (файлы для L1), используйте STM32CubeProgrammer или ST-Link Utility .
Проверьте драйверы: установите Arduino Due SAM boards (1.6.x+), запустите install_drivers.bat из папки Arduino_STM32\drivers\win (если используете legacy-пакет).
Альтернативы для L151
Вернитесь к legacy STM32F1 core (rogerclarkmelbourne/Arduino_STM32 с GitHub), но вручную добавьте поддержку L1 в boards.txt (пины, частоты) — это работает, как у вас с F103.
Используйте STM32CubeIDE + HAL для L151 (лучшая поддержка от ST), сгенерируйте код в CubeMX и импортируйте в Arduino.
Проверьте плату на подделки (китайские клоны L151 с меньшей памятью) — они вызывают сбои
Если ошибка persists, поделитесь текстом ошибки из IDE — это поможет уточнить (USB not recognized, compile fail и т.д.) . Удачи с проектом!