А у Вас есть "новые" детали т. е. не распаянные, не смонтированные в другом месте устройства? Даже на бредборде, просто для пробы. (STM32 модуль, PCF-конвертор и LCD)
Есть новые вообще не распаянные blue pills. А конвертор из I2C в параллельные данные и LCD я покупал вместе, уже спаянные.
blue pill-s проверял 3 по крайней мере. Сейчас дисплей поменяю и проверю.
Думаю что все же проблема программная. Например, в каких-то объектных модулях, в которых устанавливается тактирование. У нас разные версии ардуино IDE. У меня 1.8.6 под ХР.
*** Поменял дисплей вместе с конвертором I2C. Не помогло - такие же глюки.
Так попробовал файл из Вашего архива. Загрузил ST Link- ом из утилиты STLink Utility без Arduino IDE. Он вообще ничего на дисплей не выводит!
По большому счету может быть и стоит поставить версию Arduino IDE поновее. Есть например stm32f070c6t6 есть ESP32 какие-то. Все это вообще-то поддерживается Arduino IDE но только последними. А у меня под железо выделен ноутбук с ХР и туда нельзя ставить Windows 7 и более...
Если бы хотя бы посмотреть листинг всех инклюдов одним текстом - мой и Ваш. И сравнить. Но я не знаю как.
veso74, пишу не ради снобизма, а в качестве доброго совета: бросайте ардуину, переходите на нормальные среды разработки. Если стоят такие задачи, которые сложно решить в ардуине, то вы переросли эту платформу. Изучайте актуальную для железа разработку и всё будет хорошо (нет, но лучше).
Blue Pill с МК STM32F103C8T6? Мой такой. https://stm32-base.org/assets/img/board ... Pill-4.jpg --- >TEHb<, Спасибо. Не хочу. Я портирую код, написанный время назад за Arduino в PIC, в чистом AVR и в STM8/32. Мне нравится способ. Не хочу уже третью среду разработки учится (пока) и писать новые способы для собственный и проверенный код для всего. Ето хобби. Больше внимания уделяю на алгоритмам в устройствах, чем тому, как я собираюсь перевести их в код МК.
Последний раз редактировалось veso74 Сб мар 04, 2023 23:44:46, всего редактировалось 3 раз(а).
Спасибо! Это во многом разумно. Писал немного под EmBlitz и под QtCreator под Windows и Kubuntu. Так что технические моменты по силам. Но вот эстетика.
Я не могу принять, что в строке пишется GPIO двадцать раз. Когда все родительские классы входят в название переменной, а маска из одного сдвинутого бита называется длиннющим сложным именем.
Даже если я напишу свои макросы и библиотеки для digitalRead() и.т.п. то все равно попаду под прессинг такого вот стиля.
С определённой границы становится так пофиг, что аж смеяться хочется. Си, луа, ассемблер, микропитон, вообще пофигу! Просто берёшь и делаешь. Хоть в машинных кодах. Не существует птицы свободной настолько, как программист, которому пофигу на чём писать. Это сначала больно, а потом нравится.
Важно/и интересно для хобби/ какой у нас будет алгоритм, хотя бы на 2-3 видах МК мы найдем выражение для решения. Нет ни цели, ни направления. А в Arduino IDE и AVR пишем, и RP2040, и ESP8266, и ESP32, и Teensy, и STM8/32 ... --- Loyso Pondohva, запустить на виртуалке win7 . Если PC есть память, то работает.
Да вот с компа, с которого сейчас пишу - на нем Win7. Если есть Portable Arduino IDE под Win7 установленными пакетами под stm32 (а лучше бы и ESP32) - то выложите пожалуйста. Может быть и сам приготовлю, но не сегодня. Все же другие дела...
Чисто технически заявленная проблема (ошибочные символы на дисплее) решена. Пишу lcd.begin() в цикле - и не глючит. Но - некрасиво и неуважительно к контроллеру
--- В lcd.begin() есть "медленные строки", полно delay для lcd. Oпределенно так "замедляете" MK. --- bool LiquidCrystal_I2C::begin ... можно проверит ... а если надо, снова запустить функцию. Но это не выход. Лучше понять, почему это происходит.
Ну что... Скачал arduino IDE 1.8.19 поставил под Win7. Сделал portable. Вставил ссылки на депозитории для плат с stm32. Откомпилировал код. Все работает, не глючит. Для чистоты эксперимента - на том же компе, arduino IDE 1.8.6 portable (как раньше на ХР). Код глючит! Те же библиотеки, но другая версия среды.
Выводы. 1. КЗ по питанию, заявленное в заголовке, видимо объяснялось плохим контактом обмотки трансформатора с ИБП c последующим выносом blue pills. Сейчас БП на линейном стабилизаторе. 2. Некорректные символы на дисплее... Ох, долго я с ними долбался. Видимо, это глюки модулей начальных установок arduino IDE 1.8.6 (всякое тактирование, конфигурирование регистров состояния). Т.е. проблема - программная. В arduino IDE 1.8.19 таких глюков нет.
3. Чтобы не скучно было, в arduino IDE 1.8.19 убрали работу sprintf() от форматированного вывода float. И об этом в инете написано. А в ранних версиях - sprintf() работает как положено. Но это мелочь, поправил код и все. Дробные температуры и давления все равно в пределах погрешности...
Метеостанция работает нормально, уже вторые сутки.
Кот выжил, из несущего (not pissing) превратился в вездесущего (pissing everywhere). Но смайлика такого нет. Что поделать - весна...
К сожалению, код и его выполнение зависят так или иначе от версии компилятора. Старый код/библиотека не работает/работает некорректно в новой IDE или наоборот. Иногда из-за этого приходится переписывать целые участки кода "по-другому". Поэтому хотя бы по собственному коду, чтобы сократить время на анализ, почему он не работает в будущем, пишу информацию про себя. Полезно. А вот с чужим кодом - никак. Ето требует много времени для анализа.
напр. в заголовке: комментарий
Код:
// EEPROM 24C02, 256 x 8 (2K) // 30.06.2017, Arduino IDE v1.8.3
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения