Непривычно слышать слово "Дисплей" именно через "е". А вообще большое спасибо за уроки! Именно по Вашим урокам хаотически витающие мысли начали оседать по полочкам на свое место. Становится все просто и легко. Спасибо за уроки.
@narodstream5527 жыл бұрын
А вот это и есть основная цель занятий, чтобы мысли в кучу собрать. И Вам спасибо за оценку ресурса!
@ЕкатеринаЛоктина-э6к3 жыл бұрын
@@narodstream552 ещё бы код ваш работал , было бы вообще хорошо
@ЕкатеринаЛоктина-э6к3 жыл бұрын
Теоретически люди говорящие дисплей через Е , так же говорят слово секс через Е , интересно как дела с этим у автора .
@user_fgk_135jx3 жыл бұрын
Спасибо огромное. Отличные уроки для постепенного входжения. Повторил на stm32f103c8n6 - все работает! Конечно надо немного поработать мозгами, многие ответы нашел в комментариях. Продолжайте в том же духе.
@vahtang-testers3 жыл бұрын
Пытаюсь повторить Ваш подвиг, пока безуспешно.
@kulonkul32773 жыл бұрын
Огромное Спасибо!!! Уроки очень полезны
@Sanchogus8 жыл бұрын
О да, создание своей библиотеки/подключение чужой - это хорошая тема. Не делали такое видео? С удовольствием бы посмотрел, что, как и почему. :) Кстати, можно обозвать пины прямо в кубе, в итоге будут созданы дефайны для пина и порта с этим именем. Таким образом, можно в кубе назвать линии для данных, например D7, D6, D5, D4 и обращаться к ним, как к D7_GPIO_Port, D7_Pin в функциях. Т.е. даже после переноса пинов на другие места код вообще не надо трогать и править порты/пины, т.к. они привязаны к тому, как обозвали пины в кубе.
@polbelou7434 жыл бұрын
Благодарю за уроки, все очень толково и по делу, с помощью полученных знаний подключил немного другой дисплей - WH0802A NGG CT, а это как раз самое оно! Посмотрел, осмыслил и вперед, к поиску новых тупиков))) Шутка.
@Ironziz7 жыл бұрын
Огромное Спасибо!!! Уроки очень полезны ! Очень интересно, буду продолжать заниматься, Зарядили энтузиазмом )
@nwood45868 жыл бұрын
Привет всем! Автору за видео большой респект! lcd.h без проблем подцепился к main.h после того как стер из lcd.h все инклюды кроме include "main.h". Сам файл lcd.h в папку Inc, а lcd.c в папку Src, как в видео.
@narodstream5528 жыл бұрын
Спасибо!
@ЕкатеринаЛоктина-э6к3 жыл бұрын
Говорю за автором надо постоянно доделывать . Уроки не рабочие половина
@lazarocamargo7 жыл бұрын
Excellent tutorial. Thanks.
@СергейГрибовский-б7щ5 жыл бұрын
Спасибо! Очень познавательно!
@ruslanbei21126 жыл бұрын
Почему в LCD_WriteData сдвиг на 3 бита вправо, я голову уже сломал - объясните пожалуйста.
@vitalyoleynikov92686 жыл бұрын
убил вечер с инициализацией на STM32F103C8. все очень просто. не верные задержки при инициализации дисплея. По даташиту самая долгая > 500нс. В тиках проца на 72МГц составит 13.8нс на тик. делим 500нс на 13.8, получаем 36.2 тика (округлим до 40). В void delay(void) меняем 1000 на 40 - for(i=0;i
@kuandykbaikenov99164 жыл бұрын
Спасибо друг. Уменшил до 40 заработало👍
@DrargonsM8 жыл бұрын
лайк за видео!
@vahtang-testers3 жыл бұрын
Мужики, я разобрался, почему может не работать дисплей с LCD и контроллере STM32L103C8T6! В моем случае проблемой оказался не столько код, сколько питание, т.к. платка с контроллером запитывалась через ST-Link по 4 проводам и я долго подключался к пятивольтовому выводу, не вспоминая, что им там неоткуда взяться. Проблема решилась с запитыванием платки от USB. И в функции delay() нужно ставить i
@keycimag33166 жыл бұрын
Мне не понятно, при реализации функции инициализации 39:30 параметром передается число 3 и устно обьясняется, что это 11 (видимо 00000011) в восьмеричной системе. Но откуда функция узнала, что здесь восьмеричная система? Ведь в остальных случая передается 16 и 10 чные! Спасибо за оперативное обьяснение:)
@fisher74524 жыл бұрын
Число 3, что в восмиричной, что в десятичной, что в шестнадцатиричной выглядит одинаково и в двоичную переводится как 00000011. Но, конечно, привычка не указывать систему счисления - это повод когда-нибудь долго искать ошибку.
@spindle8534 жыл бұрын
потому что функция void LCD_WriteData(uint8_t dt) принимает параметр восьмибитное число ...вот то что в скобках
@YuriyIY8 жыл бұрын
Владимир Александрович, я один заметил, что + подсветки дисплея вместо VCC в схеме подключен к RS? Чет раньше не обращал внимания на схему. Слушал на автомате. :-)
@narodstream5528 жыл бұрын
Я знаю, потом в других уроках уже исправленная схема. Невнимательность, что поделаешь.
@99percents5 жыл бұрын
Я тоже сразу заметил, когда ещё про RS рассказывал! Удачи, уроки класс!
@dev_zloi8 жыл бұрын
а ещё можно использовать FCMS для более быстрой работы дисплея + можно даже подключить DMA что полностью освободить процессор от вывода символов
@narodstream5528 жыл бұрын
+Дмитрий Попов Ну DMA с дисплеем, это уж перебор. не такие уж великие пакеты передаем. Ну хотя пробуйте, может и будет какой то выигрыш. Отпишитесь, что у Вас получится только обязательно.
@dev_zloi8 жыл бұрын
+narod stream проверил только что время заливки TFT экрана 480х272 16 битным цветом. С DMA - 4.76, без(только FCMS) - 11.67. Как видим результат примерно в 2.5 раз лучше. Без FCMS будет ещё хуже.
@dev_zloi8 жыл бұрын
+narod stream без FCMS можно ускорить передачу байт если повесить все выводы на один порт.
@dev_zloi8 жыл бұрын
+narod stream да кстати, забыл добавить что частота моего контроллера 168мгц.
@dev_zloi8 жыл бұрын
+narod stream да кстати, забыл добавить что частота моего контроллера 168мгц.
@vursalov7 жыл бұрын
4битный режим для stm32f1 для экрана на этом же контроллере только 1602 (16 символов и две строки) нужно чуть по другому проинициализировать, вместо 0x28 пишем 0x08 А также там где задаем курсор, режимы 0x0F / 0x0E / 0x0C - при инициализации нужно в самом конце прописывать. Иначе не получится убрать курсор. Если кому нужно.
@МихаилЖуравель-в2к7 жыл бұрын
Виталий почему именно так? Если смотреть по даташиту то выходит все как в уроке. Как вы до этого добрались?
@РусланХаннанов-ш8ж6 жыл бұрын
А у вас заработало с этой подсказкой?
@ОлегАсмолов-й5н3 жыл бұрын
Добрый день! Есть такой урок только для 8 битной шины ?
@СергейМолочников-ы1ъ3 жыл бұрын
Мы с вами общались в данный момент
@Ma_X646 жыл бұрын
Так дефайнить куски кода не рекомендуется. Поглядите, как сделано в библиотеках. Обычно заключают в какой-нибудь блок вроде do{ }while(0U); Это для того, чтобы гарантировать в коде изолированность дефайна от каких-то других выражений.
@narodstream5526 жыл бұрын
Спасибо! Учту на будущее. Хотя, признаться, я чаще вижу мой вариант.
@ВладимирГрачев-в4к7 жыл бұрын
Здравствуйте, дошел до ЛСД и тут у меня загвоздка, дисплей у меня QAPAS 1602А, не получается инициализировать, после прошивки горят обе линии всеми пикселями, до прошивки горела только нижняя линия, подскажите в чем может быть причина?
@viktorpiasta61326 жыл бұрын
Та же проблема.
@spindle8534 жыл бұрын
во первых вместо LCD_Command(0x28); в void LCD_ini(void) отправляй LCD_Command(0x20); , во вторых запитай анод подсветки через резистор на 330, например
@ДмитрийМихеев-д5р3 жыл бұрын
У меня на Bluepill не заработало, оказалось 4 вывод не работает на с8т6.Переделал на другой вывод и все получилось.Может поможет кому
@_._._._._4 жыл бұрын
Хотел поделился на вашем форуме по этой теме результатами своих изысканий, но увы не проходит проверка примера для подтверждения "человечности"😀. Информации в инете мало на самом деле, многие просто копипастят, конечно это проще . Но если что не стандартное или нечасто встречаемые то караул.
@dazzershell4 жыл бұрын
Я не понимаю, когда люди выкладывают свои ценные наработки в народ, даже автора канала не понимаю. Это советское воспитание, у нас про таких говорят "хороший человек". Только потом эти люди не могут найти работу в нашей нефтегазоядерной сверхдержаве. У меня на глазах двоих спецов так отбрили, отца моего динамили и обманывали.
@vladimirrogovoj99495 жыл бұрын
Когда то неплохо изучил Турбо Паскаль, писал свои программки. Решил изучить язык Джава и запутался в библиотеках. Корифеи просветите, сколько времени уходит на изучение библиотек. В каждом ролике говорят - эта функция находится в этой библиотеке здесь. Откуда вы это знаете?
@dazzershell4 жыл бұрын
Мне с ХАЛ было намного сложнее, чем работать напрямую с регистрами. Описание на нее есть, сгенерированный роботом файл: просто список функций и аргументов. Обзорного знакомства с контроллером не достаточно, все равно надо лазить под капот, изучать их код, изучать мануалы. В основе та же работа с регистрами, короче двойную работу делать приходится и код разбухает неприлично. Моргалка светодиодом весит как целый проект)
@АлександрДаскаль-е6т4 жыл бұрын
@@dazzershell Я пока только вникаю в STM32, вчера смотрел ролик, там автор провел эксперимент, простой ногодрыг с HAL в восемь раз медленней чем с CMSIS. Так, что сделал вывод - HAL только для инициализации, ну или по быстрому чего нибудь.
@LinArt7 жыл бұрын
Владимир А откуда взяли библиотеку LCD.c ? я как топ рассмотрел что ли откуда она взялась или вы ее на прошлых уроках создавали ?
@narodstream5527 жыл бұрын
Если Вы полностью все прошлые мои видео смотрели (включая другие контроллеры), то знаете, откуда. Ну конечно же, ни у кого не украл.
@LinArt7 жыл бұрын
)) хорошо бы сослаться на материал откуда он берется, Спасибо за ответ
@narodstream5527 жыл бұрын
Да я вроде стараюсь всегда и ссылку на урок даю, возможно этот урок был сделан до того, как у меня был сайт. Поэтому сейчас старайтесь также смотреть текстовые версии на сайте и там уже будут кликабельные ссылки на уроки. Спасибо за интерес к ресурсу. А я постараюсь следовать Вашим подсказкам и рекомендациям.
@ЕвгенийАлександров-и9я7 жыл бұрын
Спасибо за уроки. Пытаюсь учить как программирование МК так и саму радиоэлектронику. Вопрос такой: В конце вашего видео видно, что питание индикатора идет от ножки 5 вольт, а на схеме питание указано с ножки Vdd. А там ведь 3 вольта? Подключать все равно как, или я чего то путаю?
@narodstream5527 жыл бұрын
От 5 вольт подключать, иначе работать не будет.
@ЕвгенийАлександров-и9я7 жыл бұрын
Ясно. Спасибо.
@eagleheart27516 жыл бұрын
Здравствуйте! Делаю все как описано в уроке, только под контроллер stm32f103c8t6. Вместо портов d4-d7 использую b4-b7. Мигающий курсор выводится. а когда пытаюсь выводить символы вместо одного символа выводится два иероглифа. Уже два дня бьюсь. ничего не получается! Подскажите в чем может быть причина. Файлы lcd.h и lcd.c беру уже с уроков вместо мною набранных. Результат тот же. Help!!!
Было так при ресете МК во время передачи команд. Повторная инициализация не спасает, внутренняя память символов похоже заполняется говном, лечилось только сбросом питания, команд на сброс самого контроллера дисплея я не нашел.
@vahtang-testers3 жыл бұрын
@@dazzershell Делаю по уроку и тоже с контроллером STM32F103C8T6 использую d4-d7 использую b4-b7. Вообще не запускается, даже с учетом всех рекомендаций, коих немало собралось в комментариях к данному видео. Могли бы Вы поделиться файлом lcd.c для STM32F103C8T6?
@dazzershell3 жыл бұрын
@@vahtang-testers я городил свой велосипед, без сторонних библиотек, и для экрана сразу использовал и2с расширитель, вам этот код не подойдет. С помощью hal рецепт описан в каком-то из следующих уроков. Экран заводится указанным заклинанием (набором инструкций), проверьте все передачи данных побитно, важно не только данные, но и паузы между передачами. Заклинание не выполняет сброс экрана, если он завис в непонятном состоянии или не стартует - сбросьте питание. Крайне рекомендую применять логический анализатор, ускорит работу и поиск подобных ошибок на порядки, самый дешёвый китайский клон saleae, софт к нему бесплатный.
@vahtang-testers3 жыл бұрын
@@dazzershell В итоге у меня всё запустилось и проблема была вообще не в коде, а в питании дисплея - я подавал на него 3,3., а не 5В. Анализатор логических сигналов у меня сеть (LA1010), но при подключении соответствующим пинам контроллера/дисплея он показывает нечто не соотносящееся с временными диаграммами инициализации из даташита на дисплей. Странно. Тем не менее - всё работает.
@TheDenwww5 жыл бұрын
У меня LCD на контроллере KS0066U, для перехода на 4 битный режим надо на DB5 отправить два раза 1, как учесть это в программе не понимаю, это мой первый проект, помогите пожалуйста.
@lvladislav967 жыл бұрын
Почему каждый урок нельзя писать с начала? а то чтоб понять что откуда взялось приходится выискивать это в других уроках...
@narodstream5527 жыл бұрын
А потому что так проще. Я тоже могу спросить "А почему нельзя смотреть уроки подряд?". Но я же не спрашиваю. А вот если их смотреть подряд, то не возникнет таких вопросов. И занятия скомпонованы так, что смотреть нужно все рубрики сначала. Да и вообще, зачем мы пишем проекты, если мы не можем ими в дальнейшем воспользоваться. И вообще, я уже 100 раз отвечал на этот вопрос. Да и ладно, если Вы такой вопрос задали где-то в 100-м уроке, но досмотреть до 6-го если тяжело, то, видимо, и смотреть тогда уроки не зачем. P S. Школьник идёт в школу сначала в 1 класс и затем в других классах он использует накопленный опыт.
@onurdemir426 жыл бұрын
Hi narod,is this code useable to stm32f103c8t ?
@viktorpiasta61326 жыл бұрын
Yes.But read the commentary of Vitaly Oleynikov who is above.
@vitalyoleynikov92686 жыл бұрын
при 40 глючит, остановился на 220
@prizhimin7 жыл бұрын
вместо (dt>>3)&0x01 лучше бы писать dt & (1
@АлександрДаскаль-е6т4 жыл бұрын
Учите битовую арифметику, это вообще не одно и тоже. 15 >> 3 = 1 & 1 =1 ваш вариант с этими же числами 1
@АлександрДаскаль-е6т4 жыл бұрын
@@engineerBrick Да что -ж такое, для того, чтоб узнать true/false, пойдет и так.
@obuhovmi7 жыл бұрын
Как можно сделать задержку в микросекундах в отдельную библиотеку(файл), чтобы можно его было использовать во всем проекте... у меня не получается вынести в отдельный файл delay.c Идут ошибки __STATIC_INLINE
@doskhanziyadabek82404 жыл бұрын
ничего не понятно личные движение много
@znakomiy_422 жыл бұрын
Очень сложные уроки в плане восприятия. Создавать новый проект руками, когда в 2 клика можно создать проект без "мусора". Но нет, мы полезем искать разный мусор, удалять его ручками, а между этими поисками полезная инфа и вот приходится слушать, смотреть и перематывать... А вот если начать смотреть с самого первого урока, а не то что интересует и делать все как автар, то все встает на свои места... но мне предыдущие не нужны...
@YuriyIY8 жыл бұрын
Бред какой-то. Вот не могу проинициализировать дисплей. Ни QC1602A, ни МЭЛТовский 20х4. Поначалу как-то делал вывод библиотекой, которую нашел в инете, малость переписал ее под себя. На 1602 работало. Теперь создал новый проект, и не работает ни моя, ни ваша библиотека. Вот засада. Жду прихода логического анализатора. Будем смотреть диаграммы на ногах. Кстати, а можете снять анализатором диаграммы при инициализации дисплея? Был бы признателен. Не понятно, где засада. То ли ST что-то поменяли при обновлении библиотек, то ли у меня уже глаз замылился. Хоть бросай всё и начинай играться с RFID метками, пришла мне платка такая. Сервопривод с ШИМ уже освоил. А вот с надежным выводом на дисплей засада.
@narodstream5528 жыл бұрын
Ну вообще-то мог бы, как будет время сниму конечно и отскриншочу. Не проблема. Вон какой дисплей завели, а это ерунда.
@narodstream5528 жыл бұрын
Вот логи анализатора savepic.su/7365194.jpg Не знаю, что они дадут. По ним точно все равно тайминги не отследить, но общая картина в принципе видна. Здесь инициализация дисплея, очистка экрана, переход на позицию 0,0 и вывод символа 'n'
@YuriyIY8 жыл бұрын
Ок, пасиба. Придет мой ЛА, сравню. Делал ЛА из своей дискавери, но он пишет всего 24мс, что есть очень мало. Видимо, заполняет свой какой-то буфер и выкидывает через Com порт. Исходников нет, только прошивка. Было два дисплея на HD44780, спалил отдел электроники. :-) Остался один, мы его распаяли на шлейф, макетировать неудобно очень стало с ним.
@narodstream5528 жыл бұрын
У меня тоже 24 мс
@YuriyIY8 жыл бұрын
Вот. Но там неудобная программа. При включении питания, по всем шинам возникает импульс. Программа начинает запись, и пишет только 24мс, а там ожидание стоит в начале инициализации. Получается, программа записывает только фронт установки 3 на шине данных и все. :)
@alex-petrov8 жыл бұрын
Жесть, минимальное количество полезной информации за максимальное время...
@narodstream5528 жыл бұрын
Это бесплатные уроки. Мне кажется, Вы выдвигаете требования не имеющие под собой почвы. Почва - образец бесплатного видео. в котором очень много информации за максимально-короткое время. Вообщем, ведёте Вы себя так, как будто Вы заплатили очень дорого за услугу, а она не была предоставлена должным образом. Тем более этому видео уже много времени, и замечания уже не актуальны.
@МихаилЖуравель-в2к7 жыл бұрын
Алекс, я вас понимаю, когда знаешь 90% по теме то такие уроки только для здорового сна полезны. Но когда знаешь только 10% по теме, то есть шанс узнать все до конца, при этом в сон клонить не будет. Спокойная подача материала способствует его усвоению. Вот я них не знаю и 10%)) сначала изучаю урок на сайте, точнее распечатывая его чтоб все было перед глазами, изучаю так чтоб были вопросы и потом в видео я получаю на них ответы.
@CTO_Mechanik7 жыл бұрын
Вы хотите сказать, что у вас на видео нет рекламы и вы бесплатно тут все выложили? Ну да ладно... По мне кажется что вы просто передрали урок ничего своего не добавили, я бы добавил регулировку контрастности программно в место переменного резистора. Ничего личного спасибо вам за то что есть, могу накидать тем по которым нужно делать уроки их нет в инете. 1-Работа с CD картой чтение и запись в файл. 2-Работа с дисплеем Nextion 3-Весы 4-Часы и вывод даты на дисплей итд можно долго перечислять потому как на stm32 очень мало инфо. Конечно любой труд должен быть оценен ставлю лайк.
@dazzershell6 жыл бұрын
При наличии всяких неочевидных глюков и подстав в самом Кале, надо повторять все буква в букву, чтоб хоть что-то заработало, такие видео очень нужны. Например, когда программатор не определялся, я весь лоб расшиб. На наших форумах предлагают "переустановить Кайл, пререзагрузить винду, почистить реестр итд" Кто-то даже советовал винду переставить))). И только на буржуйском форуме среди всяких бытовых вопросов написал добрый человек, что надо зайти туда-то и ткнуть туда-то, и тогда она падла заработает.
@Mozobretenie2 ай бұрын
Добрый день, никак не могу проинициализировать в 4 битном режиме, в 8 битном все хорошо. Пробовал и свой код писать и дебажил 1000 раз с осцилографом - все сигналы правильные и ваш код копировал - все равно не идет инициализация.
@televizorlol Жыл бұрын
А я решил проблему с lcd.h просто переместив файл к папке Inc, к другим файлам h
@Владимир_Великий_Русь3 ай бұрын
все делал как вы писали. Ошибок куча. Даже на HAL_Delay() ругается. GPIO_PIN_SET - тоже ругается. Зачем поазывать так где есть заведомо ошибки. Несколько раз перепроверил все что писал за вами. Не хорошо уважаемый
@Владимир_Великий_Русь3 ай бұрын
вы даже на сайте своем делаете специально чтобы люди не смогли собрать все это - называете в файле main.h вместо main.c - то есть специально вводите людей в заблуждение чтобы ничего не получилось. видимо взяли чью то библиотеку, запустили код , показали фото экранчика - а на самом деле это не ваше. Если у вас даже в начале видео кейл ошибки показывает а вы не знаете как их устранить. Это говорит о том что все что вы выложили работать не будет. Фейк ! Простите. Время зря потерял с вами
@Mozobretenie2 ай бұрын
иди голову лечи
@Владимир_Великий_Русь3 ай бұрын
../Core/Src/main.c(53): error: type specifier missing, defaults to 'int'; ISO C99 and later do not support implicit int [-Wimplicit-int] 53 | LCD_ini(); | ^ | int ../Core/Src/main.c(53): error: conflicting types for 'LCD_ini' ../Core/Src\lcd.h(27): note: previous declaration is here 27 | void LCD_ini(void); | ^ 2 errors generated.