STM32CubeIDE (вопросы и ответы)

G серия у стм вааще топчик.

А гамишь на чём? Кубик или чо другое?

Гамлю иногда в CS, только не понял причём тут STM.

1 лайк

“у нас” это у кого?

2ALL: Народ, давайте банить за сленг. Так, чтоб не обидно, но запоминалось. На 12 часов, к примеру… Мы же в “кодерах, клавах, кондёрах и резюках” утонем! Можно роботом банить, автоматом, через ИИ API - вылавливать использование, тогда жаловаться некому и если бан случайный, то 12 часов не страшно.
Ну правда?

6 лайков

Поддерживаю. В тему обратной связи надо написать. Заманал он слэнгом непонятным.

2 лайка

2 часа уж как, реакции ноль, видимо в разделе отвлеченные это нормально.

@NMi заморожен на неделю.

3 лайка

Спасибо. Может перевоспитается (не думаю).

Тебя роскомнадзор покусал? Это у них всё банить и блокировать.

Если что сарказм.

Я понимаю когда у молодёжи вся эта дурость лезет - агрится, крашится, рофлить. Большинство из них повзрослеет и поверьте этих слов через пять-шесть лет мы уже не услышим. Ну некоторые особо одаренные индивидумы конечно останутся.

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

Мы тоже в детстве помнится с друзьями свои языки придумывали, чтобы нас никто не понял. Кодировать шифровать пробовали, записки придуманными символами писали. Но это дети баловство, понятное дело.

1 лайк

Так в том то и дело, что судя по сообщениям - ему далеко не лет «как малолетке».

1 лайк

Дык куча народа, взрослых в том числе, которые тупо не могут… / не умеют выразить свои мысли, тупее население…

1 лайк

И при чем тут каверканье слов? Я не уловил…

А вот если по теме STM32CubeIDE (вопросы и ответы)

Есть 3 насоса, управление насосами будет как локальное (свой МК с программой управления) так и от котла. Котел тоже с самописанным управлением. Общение котел ↔ насосы через RS485, котел Master, насосы Slave.

Что лучше выбрать из протоколов к интерфейсу RS485?

  1. ModBus? тут понятно можно организовать некую совместимость с другим оборудованием modbus которая может и нафиг будет не нужна.
  2. Свой простенький протокол накидать?

По поводу данных. От насоса к котлу и назад, будет передаваться не содержание всех томов собраний сочинений В.И. Ленина, а минимум информации.
Котел может по RS485 передать команду включить/выключить насос, установить скорость 1-3.
Получить от насоса данные - температура на входе и выходе трубы теплого пола, скорость потока, текущий режим работы. Ну там может еще замер энергопотребления сделаю.
В общем не много данных. В общем вопрос именно в том стоит ли заморачиваться с реализацией Modbus? Каковы плюсы минусы своего простого протокола? Ну и самому писать? Или что то готовое есть? Я както особого разнообразия библиотек, как для ардуино, не нашел.

На вопрос зачем ответ такой -

P.S. нашел смотрю - https://www.youtube.com/playlist?list=PLfIJKC1ud8ggRvaEsMjSEDazoBAnY4MUv

Из собственного опыта. MODBUS одназначно. Для STM32 библиотека модбаса написана подробно со всеми плюшками, особенно востребованы для меня были контроль целостности пакетов и автоматическая повторная передача заданное число раз в случае прихода битых пакетов. В условиях помех линии передачи очень нужная вещь. При этом достаточно просто внедрить в свою программу.

1 лайк

Вот пришли такие модули - https://aliexpress.ru/item/1005004090978118.html
Решил прицепить из к STM. Нуачо? Там же I2C, а не как у TM1637! Должно быть не сложно.
Прицепил, отлично работает. Но я так понял, что под конкретную распайку дисплея 5241AS к VK16K33 и надо создавать таблицу символов. Главное понять какой бит в 2х байтах символа за какой сегмент отвечает.

Ну думаю че сложного, взял даташиты, схему, сделал таблицу символов, и вывел на дисплей слово СЧАСТЬЕ.
Но видимо гдето ошибся, пока на дисплее так, буду переделывать.

Если серьезно - модули очень понравились, прикуплю еще зеленых и желтых.
Из плюсов в отличии от ТМ1637 могу отметить более плавное изменение яркости - 16 градаций, может мигать сам, аппаратно, есть 3 частоты мигания, можно читабельно выводить почти все буквы русского алфавита, хотя может и все Ц, Щ не пробовал пока.

P.S. да к стати, от 3.3в работают нормально.

2 лайка

@Andrey12 , как с ST7789 “разберешься” - черкни тут, пожалуйста. :slight_smile:
ST7735S я запустил вот этой бибилиотекой: GitHub - afiskon/stm32-st7735: STM32 HAL-based library for ST7735 displays

Пока с дисплеем «тишина»?

Тогда вот такой код взгляните:


bool EE24_Init(EE24_HandleTypeDef *Handle, I2C_HandleTypeDef *HI2c, uint8_t I2CAddress)
{
  bool answer = false;
  do
  {
    if ((Handle == NULL) || (HI2c == NULL))
    {
      break;
    }
    Handle->HI2c = HI2c;
    Handle->Address = I2CAddress;
    if (HAL_I2C_IsDeviceReady(Handle->HI2c, Handle->Address, 2, 100) == HAL_OK)
    {
      answer = true;
    }
  }
  while (0);

  return answer;
}

Что делает 17 строка? Зачем она вообще нужна?

Помню, было дело, объяснял @ЕвгенийП , что это не зря так пишется, но, к сожалению, не запомнил, и не вспомню, кому он объяснял и в какой теме.(
Может, заглянет сюда, ответит, мне тоже интересно

1 лайк

Вместе со строками №№ 4, 5 и 16 формирует цикл, тело которого (строки №№ 6-15) исполняется строго один раз.

Ну, убирать её точно нельзя (даже аккуратно – вместе со строками №№ 4, 5 и 16), иначе строка №8 окажется вне цикла и обидится. А вот почему автор предпочёл написать так (с циклом), а не, например вот так:

bool EE24_Init(EE24_HandleTypeDef *Handle, I2C_HandleTypeDef *HI2c, uint8_t I2CAddress)
{
  bool answer = false;
  if (Handle != NULL && HI2c != NULL) {
    Handle->HI2c = HI2c;
    Handle->Address = I2CAddress;
    if (HAL_I2C_IsDeviceReady(Handle->HI2c, Handle->Address, 2, 100) == HAL_OK)
    {
      answer = true;
    }
  }

  return answer;
}

Это надо у него спрашивать. Думаю, это как-то связано с его субъективным чувством прекрасного.

Это было совсем в другом контексте. Там-то как раз понятно для чего нужен цикл и без него трудно. Вопрос был вот здесь, а мой ответ чуть ниже в сообщении №15.

1 лайк

Спасибо за ответ. Надеюсь, на этот раз, не забуду.

А разве оптимизатор подобные записи не выкидывает?