Страница 1 из 1

Плата Nucleo-F103RB. Пользовательское описание

Добавлено: 28 сен 2025, 12:23
PavelKrd
Помогите разобраться, в чём проблема - почему программа, сделанная в FLprog не работает, если в настройках Arduino IDE выбрать ту плату (Nucleo), для которой я сделал пользовательское описание.

Как проверял:
Сделал описание платы STM Nucleo-F103RB (MB1136 C-04) на основе стандартного
На плате нет кварца, тактирование по умолчанию от ST-Link
В FLProg (v9.4.1) сделал тестовую программу: вход на кнопку пользователя (PC13) и выход на LED (PA05):
► Показать
Компилирую, в настройках IDE:
► Показать
Загружаю – при нажатии на кнопку ничего не происходит.
Меняю в FLProg кнопку на генератор сигналов.
► Показать
Загружаю с теми же настройками IDE - Не работает.
Меняю настройки в IDE, как будто у меня плата «BluePill»
► Показать
LED мигает как положено. Т.е. вроде норм.
Меняю в FLProg генератор назад на кнопку – не работает. Вроде логично – на голубой таблетке на PC13 висит светодиод, а не кнопка.
Во всех вариантах в FLProg использовал пользовательское описание контроллера для Nucleo64.

Re: Плата Nucleo-F103RB. Пользовательское описание

Добавлено: 28 сен 2025, 12:56
ecoins
PavelKrd писал(а): 28 сен 2025, 12:23 Помогите разобраться, в чём проблема - почему программа, сделанная в FLprog не работает, если в настройках Arduino IDE выбрать ту плату (Nucleo), для которой я сделал пользовательское описание.

Как проверял:
Сделал описание платы STM Nucleo-F103RB (MB1136 C-04) на основе стандартного
На плате нет кварца, тактирование по умолчанию от ST-Link
В FLProg (v9.4.1) сделал тестовую программу: вход на кнопку пользователя (PC13) и выход на LED (PA05):
► Показать
Компилирую, в настройках IDE:
► Показать
Загружаю – при нажатии на кнопку ничего не происходит.
Меняю в FLProg кнопку на генератор сигналов.
► Показать
Загружаю с теми же настройками IDE - Не работает.
Меняю настройки в IDE, как будто у меня плата «BluePill»
► Показать
LED мигает как положено. Т.е. вроде норм.
Меняю в FLProg генератор назад на кнопку – не работает. Вроде логично – на голубой таблетке на PC13 висит светодиод, а не кнопка.
Во всех вариантах в FLProg использовал пользовательское описание контроллера для Nucleo64.
Добавить свое пользовательское описание не сложно, но есть нюансы.
Посмотрите тему viewtopic.php?t=9446 - там обсуждалась аналогичная тема.
Обратите внимание на папку RT_HW_00_BASE->src->API_0361_BOARD_STM32F1 - привязать можно контроллеры из этой папки. Или добавить свою.
И вполне в Вашем описании можете сослаться на STM32F103C.
Хорошую работу делаете, успехов.
С уважением, ecoins.

Re: Плата Nucleo-F103RB. Пользовательское описание

Добавлено: 28 сен 2025, 14:38
PavelKrd
ecoins писал(а): 28 сен 2025, 12:56
Посмотрите тему viewtopic.php?t=9446 - там обсуждалась аналогичная тема.
Обратите внимание на папку RT_HW_00_BASE->src->API_0361_BOARD_STM32F1 - привязать можно контроллеры из этой папки. Или добавить свою.
И вполне в Вашем описании можете сослаться на STM32F103C.
Хорошую работу делаете, успехов.
С уважением, ecoins.
Прочитал, но если честно, мало что понял.
После компиляции в ардуино IDE можно выбрать именно ту плату, что у меня:
► Показать
Я правильно понял, что этого недостаточно и нужно внести изменения в RT_HW_BASE.h ?
Нашёл его у себя: C:\Users\Павел\AppData\Local\arduino\sketches
открыл блокнотом:
► Показать
и там есть плата STM32F103Rx
Я не программист. Можете пошагово объяснить алгоритм внесения изменений?

Re: Плата Nucleo-F103RB. Пользовательское описание

Добавлено: 28 сен 2025, 14:54
PavelKrd
ПыСы
Я делал описание по этой инструкции: https://flprog.ru/?s=%D0%BE%D0%BF%D0%B8 ... 1%80%D0%B0
там есть пункт: "Переходим на ветку преднастройки Arduino IDE. Эта ветка служит для задания параметров необходимых для того, чтобы Arduino IDE запускалась с настройками на необходимый контроллер."
Этого не сделал. Это может быть причиной?

Re: Плата Nucleo-F103RB. Пользовательское описание

Добавлено: 28 сен 2025, 17:32
ecoins
PavelKrd писал(а): 28 сен 2025, 14:54 ПыСы
Я делал описание по этой инструкции: https://flprog.ru/?s=%D0%BE%D0%BF%D0%B8 ... 1%80%D0%B0
там есть пункт: "Переходим на ветку преднастройки Arduino IDE. Эта ветка служит для задания параметров необходимых для того, чтобы Arduino IDE запускалась с настройками на необходимый контроллер."
Этого не сделал. Это может быть причиной?
1.Только сейчас обратил внимание, что у Вас чип серии STM32F1R. И соответственно Вам действительно в Arduino IDE нужно выбирать контролер STM32F103R.
2.В штатных контроллерах FLProg не оказалось STM32F103Rx - как-то не было востребовано.
При некоторой настойчивости его не сложно добавить(как недавно добавили STM32L1).
3.Прямо сейчас Вы можете в FLProg выбирать STM32F103V, в проекте не использовать лишние пины, в Arduino IDE выбирать STM32F103R - и должно работать.
4.Посмотрите приложенный файл - там указаны доступные пины по группам использования(DOT- дискретный вывод, DIN - дискретный ввод и т.д.). Если для Вашей платы все устраивает, возможно контроллер STM32F103R появиться в новой версии FLProg.
5.Очень здорово, что Вы воспользовались инструкцией по созданию пользовательских контроллеров. В 9-ой версии нужно выбирать контроллеры не любые из тех , которые доступны в Arduino IDE, а которые с пометкой, например FLProg STM32F103Rxx. Наверное в новой версии такой контроллер появится.
6.В помощь опция создание описания на основе существующего контроллера - поймете нюансы.
7.Еще опция - попробуйте обратиться к Ander - он правда сейчас очень перегружен - недавно он консультировал пользователя про этой теме и дорабатывал описание для одного из популярных контроллеров серии ESP32.
С уважением, ecoins.

Re: Плата Nucleo-F103RB. Пользовательское описание

Добавлено: 28 сен 2025, 19:54
PavelKrd
ecoins писал(а): 28 сен 2025, 17:32
4.Посмотрите приложенный файл - там указаны доступные пины по группам использования(DOT- дискретный вывод, DIN - дискретный ввод и т.д.). Если для Вашей платы все устраивает, возможно контроллер STM32F103R появиться в новой версии FLProg.

С уважением, ecoins.
Посмотрел, распиновка с моей платой сильно не совпадает. И почему то 6 UARTов, хотя должно быть вроде 3.
Я свел в таблицу распиновку на свою плату из даташитов на чип и на плату. У меня на PC13 кнопка, а там светодиод.
Может кому пригодится.
Попробую самостоятельно разобраться. Мне хотя бы основные шаги знать что надо сделать.

Правильно я понимаю, что чтобы добавить в FLProg поддержку платы с STM нужно сначала собрать файл *.hpp а потом это добавить в библиотеку RT_HW_00_BASE ?

Re: Плата Nucleo-F103RB. Пользовательское описание

Добавлено: 28 сен 2025, 21:58
ecoins
Посмотрел внимательно и кое-что попробовал.
К сожалею сразу не получилось - всплыли не вполне понятные нюансы.
Мне нужно будет вытащить контроллер с STM32F103Rx и потестировать на железе.
Но быстро переключиться не получится. Потребуется время.
Насколько Вам задержка критична?
По UART - их действительно 6, и мы с ними работаем на STM32F103Vx, и давно тестировали на STM32F103Rx.
С уважением, ecoins.

Re: Плата Nucleo-F103RB. Пользовательское описание

Добавлено: 28 сен 2025, 22:24
PavelKrd
ecoins писал(а): 28 сен 2025, 21:58 Посмотрел внимательно и кое-что попробовал.
К сожалею сразу не получилось - всплыли не вполне понятные нюансы.
Мне нужно будет вытащить контроллер с STM32F103Rx и потестировать на железе.
Но быстро переключиться не получится. Потребуется время.
Насколько Вам задержка критична?
По UART - их действительно 6, и мы с ними работаем на STM32F103Vx, и давно тестировали на STM32F103Rx.
С уважением, ecoins.
не срочно и не критично.
я раньше работал только с атмегами, решил перейти на STM. Лежит пара плат Nucleo. Одна из них STM32F753ZI
Боюсь представить какие там будут сложности ). Nucleo хороши тем, что доступны все пины и периферия для экспериментов.
Я уже говорил, если есть описание алгоритма по добавлению поддержки плат в FLProg, я бы это сделал и потестил платы. Или скажите, что нужно подготовить, чтоб это сделать.
Спасибо, что уделяете столько времени.

Re: Плата Nucleo-F103RB. Пользовательское описание

Добавлено: 29 сен 2025, 01:03
ecoins
PavelKrd писал(а): 28 сен 2025, 22:24 не срочно и не критично.
я раньше работал только с атмегами, решил перейти на STM. Лежит пара плат Nucleo. Одна из них STM32F753ZI
Боюсь представить какие там будут сложности ). Nucleo хороши тем, что доступны все пины и периферия для экспериментов.
Я уже говорил, если есть описание алгоритма по добавлению поддержки плат в FLProg, я бы это сделал и потестил платы. Или скажите, что нужно подготовить, чтоб это сделать.
Спасибо, что уделяете столько времени.
Мы используем концепцию собственных стендов - уже достаточно много лет.
По всем контроллерам, по которым идет активная работа.
На фото STM32F103, STM32F411,STM32F407V, STM32H743VI.
Еще есть стенды на RP2040.
В планах изготовить еще стендов. Обычно мы изготавливаем в кол-ве 10-15шт как для собственных нужд, так и для команды FLProg.
Если Вам как-то будет интересно поплотнее поработать с последними разработками FLProg - напишите Ander, он выйдет с Вами на связь и в любом случае думаю это будем полезно всем заинтересованным лицам.
С уважением, ecoins.
Стенды.jpeg