Страница 59 из 82

Re: Stm32 с чего начать изучение...

Добавлено: Чт мар 12, 2026 23:29:25
linux_rulezz
[uquote="Rapra",url="/forum/viewtopic.php?p=4797198#p4797198"]Вообще-то, хорошая IDE - это всегда лучше, чем "блокнот".[/uquote]
Мне-то это объяснять не надо, я qt-creator использую.
Но если надо что-то мелкое наколотить, строк до ста, то просто в mcedit пишу код. И мелкие правки делаю там же — в mcedit (особенно если по ssh, когда лень монтировать по sshfs удаленный ресурс и открывать qt-creator'ом).

Re: Stm32 с чего начать изучение...

Добавлено: Вт мар 17, 2026 08:01:19
ARV
я тут внезапно увидел, что мои сообщения с просьбами о помощи отмечены минусами... оказывается, спрашивать на форуме, по мнению некоторых, надо в какой-то особой форме, чтобы, не дай бог, не оскорбить чувства верующих в vim и консольный gdb...

собственно, эти минусы подтверждают моё же утверждение (так же заминусованное - видимо, правда глаза колет):
ARV писал(а):форум из места, где можно получить помощь, превратился в место, где можно получить ведро помоев на голову
а для других, которые на работе страшно заняты, чтобы отвлекаться на помощь, сообщу, что рабочее время никому не мешает флеймить и флудить в других темах. тут не в занятости дело, как я думаю, а в "принципиальности". то же самой, что заставляет "поучать", как надо испрашивать помощь...

Re: Stm32 с чего начать изучение...

Добавлено: Ср мар 18, 2026 20:09:37
Adrift
Втихаря зарелизили CubeMX2, пока только STM32C5 поддерживает и все более новые серии будут только в нем. HAL заменили на основательно переработанный и более оптимизированный HAL2 который полагается на LL. CMSIS до 6.3 обновили. Выглядит вроде как получше:
СпойлерИзображение
ps. Касательно STM32С5, таки есть там PLL, но ради простоты(у STM32C0 PLL не было), ST старательно об этом умалчивает, только в одном стороннем документе упоминание нашел. PLL представили как PSI генератор, на вход подается частоты кратная 8MHz или 32768, на выходе 120/144/160MHz.

Re: Stm32 с чего начать изучение...

Добавлено: Чт мар 19, 2026 04:50:27
Rapra
Да нуна! Не прошло и 7 лет! А с момента рождения HAL прошло уже... ээээ... более 10 лет, по-моему.

Re: Stm32 с чего начать изучение...

Добавлено: Пн мар 23, 2026 09:55:28
ARV
если МК ненадежно стартует при подаче питания, порог BOR лучше увеличить или снизить? мне кажется, лучше увеличить, но сторонние мнения расходятся, некоторые рекомендуют вообще отключиь BOR...

Re: Stm32 с чего начать изучение...

Добавлено: Пн мар 23, 2026 12:14:57
tonyk
[uquote="ARV",url="/forum/viewtopic.php?p=4800341#p4800341"]порог BOR лучше увеличить или снизить?[/uquote]
Лучше разобраться с питанием, почему оно не успевает стабилизироваться к моменту старта МК. Или поставить внешний монитор питания с настраиваемой задержкой, чтобы стартовать МК при нормальном питании.
Однозначно ответить на вопрос нельзя. Например, не известно, на какой частоте стартует МК, сколько периферии включается. Ещё пример. У меня в стартапе сначала задаётся максимальная тактовая частота, потом вызывается стандартный код инициализации С и С++, а ХАЛ от СТМ наоборот сначала медленно и печально выполняет инициализацию, а потом только код пользователя настраивает частоту тактирования. Ессно, что потребление МК при работе на 16МГц и 160МГц заметно отличается, поэтому и настройка BOR будет отличаться. Повторюсь, разбирайтесь с питанием МК, оно в вашей схеме не в порядке.

Re: Stm32 с чего начать изучение...

Добавлено: Пн мар 23, 2026 13:02:29
veso74
В большинстве случаев помогает RC-цепь в NRST: 10k/100nF.
При первой подобной нестабильность установил RC, затем устанавливаю там "по инерции".
С тех пор еффект не повторялось, многих типов STM32, и не только.

Да, еще один эффект был с использованием кварца с низкой активностью. Увеличение времени помогло.
Автоматически (через MX) или вручную.
#if !defined (HSE_STARTUP_TIMEOUT)
#define HSE_STARTUP_TIMEOUT 100U /*!< Time out for HSE start up, in ms */
Изображение

Если в CMSIS: сделайте паузу при старта и проанализируйте, запустился ли он.
При желании, если HSE не сработает, можете вернуть управление к HSI.

Код: Выделить всё

  uint32_t timeout = 1000000;
  while (!(RCC->CR & RCC_CR_HSERDY) && --timeout);
  if (timeout == 0) {
    // error: HSE not start
    return;
  }

Код: Выделить всё

  timeout = 100000;
  while (!(RCC->CR & RCC_CR_PLLRDY) && --timeout);  // wait for PLL to go active
  if (timeout == 0) {
    // handle PLL stop error
  }

Re: Stm32 с чего начать изучение...

Добавлено: Пн мар 23, 2026 14:04:57
Rapra
[uquote="ARV",url="/forum/viewtopic.php?p=4800341#p4800341"]если МК ненадежно стартует при подаче питания, ...[/uquote]
Внешняя цепь сброса, с задержкой NRST на RC-цепи.
А еще лучше посмотреть осциллографом переходные процессы при нарастании питания. Возможно, оно проваливается где-то в середине нарастания.
Принцип работы BOR: если напряжение VDD/VDDA ниже установленного порога BOR, микроконтроллер находится в состоянии reset. Если VDD падает ниже порога BOR, микроконьроллер так же сбрасывается.
Однозначно ответить о выборе порога BOR можно только посмотрев осциллограмму момента подачи напряжения.

Re: Stm32 с чего начать изучение...

Добавлено: Пн мар 23, 2026 16:43:07
ARV
спасибо за советы, но никаких измерений в плате пока сделать невозможно, т.к. доступ к ней сильно затруднен. МК тактируется от встроенного RC, как он там... HSI? цепь сброса как раз 10К-0,1 мкФ, 10 лет работало, теперь начало вот так странно стартовать... но меня эти 10 лет не было, это наследство. пока думаю просто BOR включить, если не включен.

Re: Stm32 с чего начать изучение...

Добавлено: Пн мар 23, 2026 16:48:02
Rapra
"Странно" - это как?
Возможно, за 10 лет подсохли конденсаторы в питании и его качество ухудшилось.

Re: Stm32 с чего начать изучение...

Добавлено: Пн мар 23, 2026 16:53:13
ARV
странно - это так, как описал: то стартует, то нет. но если питание после неудачного старта быстро передернуть - стартует почти всегда. вроде говорят, что все эти 10 лет так и запускали станок - передергиванием питания... но это не точно

все электролити в источнике питания поменяли без меня

Re: Stm32 с чего начать изучение...

Добавлено: Пн мар 23, 2026 17:10:22
Rapra
Ну, тут без натурных изменений можно сколько угодно гадать. Надо убедиться, что именно микроконтроллер за запускается, а не что-либо на плате или в окружении.
Если на плате стоят какие-либо еще микросхемы, с которыми общается микроконтроллер (например, дисплей), то медленное нарастание питания и разное время готовности к работе может приводить к такому эффекту. Например (из своей практики) - микроконтроллер запускается быстро и начинает передавать команды в дисплей, а дисплей еще не готов их принять из-за того, что у него другие тайминги готовности после подачи питания. И после повторного быстрого передергивания питания дисплей оказывается уже готов к приему команд.
В самом начале эта ошибка могла быть незамеченной, поскольку проходило "на тоненького". А со временем чуть изменились показатели и срабатывать уже перестало. При такой причине стоит в прошивке перед отправкой команд дисплею либо ввести запрос состояния его готовности (если такое предусмотрено), либо ввести дополнительную задержку передачи команд на гарантированное время.

Добавлено after 2 minutes 37 seconds:
[uquote="ARV",url="/forum/viewtopic.php?p=4800473#p4800473"]все эти 10 лет так и запускали станок - передергиванием питания.[/uquote]
Значит, вероятна типичная ошибка разработчика - на столе у него работало, а на месте - не работает. По вышеописанной проблеме, скорее всего.

Добавлено after 3 minutes 25 seconds:
Если вышеописанное подходит к этому случаю, то возможно может помочь включение BOR с максимально высоким уровнем, с целью замедлить запуск микроконтроллера в процессе нарастания питания.

Re: Stm32 с чего начать изучение...

Добавлено: Пн мар 23, 2026 20:04:14
ARV
Просто в качестве пояснения: это кусок блока управления ЧПУ-станка, никаких там дисплеев нет

Re: Stm32 с чего начать изучение...

Добавлено: Вт мар 24, 2026 07:12:16
Rapra
Тут надо действительно смотреть, что происходит на плате. Если проблема имелась все 10 лет, значит, там была ошибка разработчика.
Запуск после быстрого передергивания питания скорее всего связан с неодинаковым временем готовности микроконтроллера и окружения на плате, когда запустившийся микроконтроллер пытается слать команды "в пустоту", в еще не готовые к приему микросхемы окружения.

В общем, на плате смотрим осциллографом нарастание питания и сигнал сброса NRST, а так же смотрим активность микроконтроллера на его выходах.

Re: Stm32 с чего начать изучение...

Добавлено: Ср май 27, 2026 08:42:07
ARV
Решился написать страшное в теме... Но, надеюсь, полезное тем, кто только начинает осваивать STM32, как я.

Микро-гайд: используйте CubeMX+FreeRTOS, а вопросы задавайте ИИ (я использую Qwen 3.6). Не смотря на то, что ИИ частенько несет пургу, по большинству вопросов он даёт вполне верное направление, сужая круг собственных поисков и раздумий до минимума. Во всяком случае, никогда не хамит в ответ на глупые вопросы.
Для 99% задач начинающих упомянутый микро-гайд будет отличным решением.
FreeRTOS позволит не ломать голову над всякими задержками и т.п. вещами, которые начинающих ставят в ступор. Да и вообще принцип FreeRTOS - полезная практика, т.к. событийная модель программирования это, по сути, основа всего эмбеддед-программирования.
CubeMX решает 99% проблем настройки периферии. Заплатить за это придется дурацким исходником с миллионом комментов и автоматическим удалением написанного "не в том месте" собственного кода... Решается это просто: все задачи FreeRTOS делать
Weak или Extern и реализовывать в собственном сишнике, полностью не трогая то, что нагенерировал CubeMX. Для начала это приемлемо.
ИИ позволит не портить зрение чтением английских даташитов, и, тем паче, ковыряться в HAL-е. Но, повторяю: часто он лажает в элементарных вещах: факты излагает правильные, а код пишет кривой. Однако, это только на пользу, т.к. решение задачек - основа обучения, и задачки, подкидываемые ИИ - самое то.

Re: Stm32 с чего начать изучение...

Добавлено: Ср май 27, 2026 11:12:33
sdn_
Во всяком случае, никогда не хамит в ответ на глупые вопросы.
По умолчания он поддакивает. Настройте его под себя: если хотите, чтобы хамил. Шутка.
Настройте так, чтобы он критиковал ваши решения, будет больше пользы для вас.
Но, повторяю: часто он лажает в элементарных вещах: факты излагает правильные, а код пишет кривой.
Качество ответов нейросети зависит от качества вашего запроса. Нейросеть не может мыслить, она лишь предугадывает наиболее вероятный набор слов (текстовая модель) под ваш запрос.
Лично мне CubeMX не нравиться: слишком перегруженный и малоповоротливый. Использую segger.

Re: Stm32 с чего начать изучение...

Добавлено: Ср май 27, 2026 11:47:19
sunjob
> Использую segger.
поделитесь оптом, расскажете в 10ти предложениия чЁ-коГо-Как?
чпасибо

Re: Stm32 с чего начать изучение...

Добавлено: Ср май 27, 2026 16:25:45
Rapra
Настоящие джедаи не идут таким неправедным путём.
В целом, для тех, кто боится сложностей и не уверен в своих способностях, вполне подходящий путь. Ну а чо. Не все ж одаренные. Тем более, чем старше становимся, тем хуже шестеренки в голове крутятся.

А нейросеть способна водить джедая по кругу :) Задаешь вопрос, она отвечает, ты проверяешь - не работает. Пишешь ей, что предложенный вариант не работает. Она пишет: "Да, вы совершенно правы, это нерабочий вариант. Вот другой вариант". И тут происходит зацикливание. Причем, когда я уже сам разобрался в проблеме и отвечаю ей, что надо вот так делать, нейронка на чистом глазу отвечает "Вы совершенно правы, я ошиблась, ваш вариант правильный и рабочий, потому что.... (перечисляет, почему)". И ты такой думаешь - а хера ли толку от нейронки, если она тупо признала свои ошибки и мою правоту? Вот нахера эти качели на пять экранов текста то были?
ARV писал(а): Ср май 27, 2026 08:42:07 не портить зрение чтением английских даташитов,
Правильно! Ваапще, нафига ваще чето делать то? Че суетиться, забей! Все эти микроконтроллеры и программирование - они только зрение портят, да ну ихнахер, лучше бухни пивка и расслабься. Это всё суета.

Re: Stm32 с чего начать изучение...

Добавлено: Ср май 27, 2026 17:31:00
smacorp
Rapra писал(а): Ср май 27, 2026 16:25:45Это всё суета
Вот-вот.

Восточный мудрец встречает через 10 лет своего ученика.
- "Расскажи, ученик, чем ты занимался эти 10 лет?"
- "Я созерцал как растёт дерево, учитель."
- "Ясно... Всё суетишься."

Re: Stm32 с чего начать изучение...

Добавлено: Ср май 27, 2026 18:39:26
ARV
Я так и думал, что, кроме критики, ничего не будет в ответ... А я за время с моего последнего вопроса в теме продвинулся до DMA, вычисления RMS параллельно с однократным АЦП других каналов... При этом ни разу не слышал советов попить пивка.