Программирование МК STM32. УРОК 7. HAL. LCD 20x4. 4-битный режим. Выводим информацию

  Рет қаралды 18,504

narod stream

narod stream

Күн бұрын

Программирование на СИ в среде Keil μVision.
Пишем код под микроконтроллер STM32F407VG на плате STM32F4DISCOVERY.
Сегдня мы продолжаем работать с библиотекой HAL и с дисплеем ЖКИ 20х4 в 4х-битном режиме подключения к микроконтроллеру. Мы "научим" его выводить какую-то информацию.
Исходный код здесь narodstream.ru/...
Купить отладочную плату STM32F4-DISCOVERY можно здесь alii.pub/7261r...
Дисплей LCD 20x4 можно приобрести тут alii.pub/71zie...
Рекомендуется также перед просмотром данного урока просмотреть данное видео:
УРОК 4. Библиотека HAL. STM32 CUBE MX. Светодиоды и кнопка • Программирование МК ST...
УРОК 5. Библиотека HAL. STM32 CUBE MX. Таймеры • Программирование МК ST...
УРОК 6. Библиотека HAL. LCD 20x4. 4-битный режим • Программирование МК ST...
Группа в контакте club1166...
Группа в Одноклассниках ok.ru/group/529...
Группа в Facebook / 236905359999556
Мой сайт "Программирование МК" narodstream.ru
Форум narodstream.ru/...
Вы можете помочь проекту:
ЮMoney
yoomoney.ru/to...
Webmoney
Z341906933112
Карта Сбербанка (МИР)
2202201799288929
Можно в USDT
1) Сеть:TRC20
Адрес: TBBPFk5Widf1CYvF7Xk5ssKXeiPJHwtMgS
2) Сеть: BSC BNB Smart Chain (BEP20) (комиссия намного меньше)
Адрес: 0x2e38754DF1e54649Bf0D5CD6fD6D8c96a9f22f17
3) Сеть: Huobi ECO Chain (HECO) (комиссия еще меньше)
Адрес: 0x2e38754DF1e54649Bf0D5CD6fD6D8c96a9f22f17

Пікірлер: 61
@Vadym.Ostapchuk
@Vadym.Ostapchuk 8 жыл бұрын
Шикарные уроки, продолжайте дальше видео уроки на HAL, интересно случать и смотреть
@milaleks1
@milaleks1 4 жыл бұрын
мог бы поставить больше одного лайка, накликал бы с десяток. :) Получается в этом и предыдущем уроке писали библиотеку по работе с внешним устройством. А это значит библиотеку можно легко переносить в другие проекты. До этого совсем не догонял физику процесса :) Теперь знаю куда копать :) УРА товарищи :)
@DrargonsM
@DrargonsM 8 жыл бұрын
Лайк за видео! очень интересно!
@Jensiru
@Jensiru 8 жыл бұрын
Ну да, было бы интересно сделать хоть малейшее меню через которое, допустим, выбирать мигание какого-либо светодиода. Лайк!
@narodstream552
@narodstream552 8 жыл бұрын
+Сергей Аксенов Меню можно сделать, просто цель данного занятия именно в специфике работы дисплея. А меню немного из другого раздела. Это больше по режимам. С режимами у меня много работы, когда собирали часы со светодиодным индикатором в занятии по AVR. Если есть желание и время, обязательно посмотрите. А вообще по режимам и здесь обязательно пройдемся. Без этого никак не обойтись.
@МихаилЖуравель-в2к
@МихаилЖуравель-в2к 7 жыл бұрын
Вот есть неплохое меню cloud.mail.ru/public/24aP/RsbkM6kc9 переделать его несложно под HAL . Кроме экранов и с информацией можно вводить данные для переменных
@НиколайИсайкин-п9в
@НиколайИсайкин-п9в Жыл бұрын
Спасибо!
@СергейГрибовский-б7щ
@СергейГрибовский-б7щ 5 жыл бұрын
Очень интересно! Спасибо!
@ВикторК-ц1м
@ВикторК-ц1м 5 жыл бұрын
взял stm32f103 +lcd 1602, собрал на макетке, блин! все работает! конечно не так красиво, но уже цифры какие-то по экрану бегают! вчера только за stm взялся!
@Coooooolgirl
@Coooooolgirl 5 жыл бұрын
Можете скинуть ваш проект?
@ВикторК-ц1м
@ВикторК-ц1м 5 жыл бұрын
@@Coooooolgirl отправил
@ВикторК-ц1м
@ВикторК-ц1м 5 жыл бұрын
@@Coooooolgirl чет не отправляется. куда скинуть?
@Coooooolgirl
@Coooooolgirl 5 жыл бұрын
@@ВикторК-ц1м vbalinec@yandex.ru Спасибо!
@deniskharitesku4580
@deniskharitesku4580 5 жыл бұрын
Виктор, поделитесь и со мной, пожалуйста.
@muratgortekin66
@muratgortekin66 6 жыл бұрын
Я смотрел ваши видео. Действительно полезно. Но можете ли вы взять видео для 128x64 графики lcd?
@narodstream552
@narodstream552 6 жыл бұрын
Спасибо! Думаю, что это стоящее предложение. Я уже размышлял над таким дисплеем. Пока у меня его нет, но возможно, если будет я подумаю. Взял на заметку.
@muratgortekin66
@muratgortekin66 6 жыл бұрын
@@narodstream552 Спасибо, что ответили. Я аспирант. Мне нужен проект для моего выпускного проекта, но я все еще не мог решить эту связь и последние 1,5 месяца.
@МихаилЖуравель-в2к
@МихаилЖуравель-в2к 7 жыл бұрын
Коллеги. Функция LCD_SendChar(); будет полезна при выводе информации более одного знака. Например если делаете вывод какой то переменной которая может занимать 1 или 2 знака т.е значение может быть 3 а может 55. Когда число знаков уменьшиться ( было 55 а стало 3) то дисплей не удалит не нужный символ в итоге вы увидите 35. Чтоб этого не было добавьте в конце вывода кода LCD_SendChar(' '); Просто пустой символ или два, в зависимости от ваших возможных чисел.. Для примера for( uint16_t i = 0; i
@СергейГрибовский-б7щ
@СергейГрибовский-б7щ 5 жыл бұрын
Ставь пробел после числа когда оно уменьшается!
@ДенисКоваль-ц4ф
@ДенисКоваль-ц4ф 7 жыл бұрын
мигает красный светодиод возле microUSB, это вроде бы превышение тока, может лучше ставить токоограничивающий резистор на лапке 5V ?
@aronszlavik4660
@aronszlavik4660 8 жыл бұрын
Здравствуйте! Самые хорошие уроки по теме STM32 ! Помогите пожалуйста почему я получаю следующие ошибки во время build? Такие же ошибки получаю в 8 уроке… • ..\Src\lcd.h(32): error: #20: identifier "uint8_t" is undefined • void LCD_SetPos( uint8_t x, uint8_t y); • ..\Src\lcd.h(32): error: #20: identifier "uint8_t" is undefined • void LCD_SetPos( uint8_t x, uint8_t y); • ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c: 0 warnings, 2 errors • compiling system_stm32f4xx.c... • "LCD1604\LCD1604.axf" - 36 Error(s), 0 Warning(s). Я все сделал так как на видео, и до функции LCD_SetPos все работает отлично. Заранее спасибо!
@narodstream552
@narodstream552 8 жыл бұрын
#include "stdint.h"
@aronszlavik4660
@aronszlavik4660 8 жыл бұрын
Заработал. Спасибо!
@onurdemir42
@onurdemir42 7 жыл бұрын
Thank you. My problem solved.but I dont know write #include "stdint.h". Why did you write #include "stdint.h" ??
@markblond5360
@markblond5360 8 жыл бұрын
А как инициализировать OLED дисплей типа Winstar WEH001602?
@MIFrus
@MIFrus 8 жыл бұрын
Уважаемый, не подскажите, как выводить значение 16-ричной переменной на экран?Вывожу данные с Энкодера 0,1,2,3,4,5,6,7,8,9,a,b,c,d итп, добавляю +0x30, показывает только до 9, остальное различные символы идут. Ещё не могу понять, по какой причине - дисплей не всегда инициализируется,первый раз поработает и не инициализируется потом, потом подожду достаточно времени - опять заработает нормально. Не понятно, тайминги как у вас стоят. Может то что фильтрующие конденсаторы от мусора на всех лапках у меня маленькие висят? Хотя с атмегой такой проблемы небыло Спасибо за уроки, полезные.
@narodstream552
@narodstream552 8 жыл бұрын
1. И правильно делает. Смотрите таблицу ASCII. буквы идут не подряд, в случае букв уже другую цифру надо прибавлять. 2. С таймингами играться надо. Могут быть разные дисплеи.
@MayaKazarina
@MayaKazarina 8 жыл бұрын
Не могу понять почему видна только первая строка и то не вся. Бегут цифры в первых трех сегментах, и видна буква "s". Остальных строк нет. А еще, что странно, при нажатии на кнопку джойстика (черного), счетчик сбрасывается, появляется надпись "STM32F407VG", во втором ряду появляется буква "t" , пропадает надпись и побежал счетчик.
@narodstream552
@narodstream552 8 жыл бұрын
Попробуйте собрать мой проект, приложенный в описании, может с частотами что-то не то, или пропустили что-то.
@MayaKazarina
@MayaKazarina 8 жыл бұрын
Результат тот же. Может в индикаторе проблема? Попробую найти еще такой же чтобы попробовать.
@narodstream552
@narodstream552 8 жыл бұрын
Возможно, немного другой индикатор. Хотя все равно не должно быть ошибок, т.к. контроллер дисплея один и тот же.
@MayaKazarina
@MayaKazarina 8 жыл бұрын
Я в Контакте написал Вам сообщение в группу "Программирование МК STM32", посмотрите пожалуйста.
@vasyazukerman8005
@vasyazukerman8005 8 жыл бұрын
У меня тоже возникла проблема при отображении символов, и ещё я заметил проблему в функции delay, когда она основана на инкрементирование числа, мне показалось что эта функция не работает. Тогда я реализовал функцию delay с помощью декрементирования ( как в 3тьем уроке) и символы стали отображаться.
@markblond5360
@markblond5360 8 жыл бұрын
а когда будем делать меню?
@narodstream552
@narodstream552 8 жыл бұрын
Ну меню как то в планы не входило, но вообще режимы будут. Пока нужно будет по различным шинам и интерфейсам пройтись. Как то мало этого в интернете, имеется в виду в разрезе HAL
@CanchezAK
@CanchezAK 4 жыл бұрын
Автор, подскажи пожалуйста, мозг уже закипел, не могу понять, что не так делаю: пытаюсь реализовать простенькие часы с таким дисплеем. Столкнулся с трудностями в лице: запустил таймер, отсчитывающий секунды и превращающий эти самые секунды в нормальное время. Но вывести картинку на дисплей не могу - при попытке использовать этот код в прерывании контроллер наглухо виснет, while так же использовать не могу по причине отвала прерывания. Как можно всё-таки использовать таймер и дисплей 16х2 одновременно? Мозг уже вскипел.
@CanchezAK
@CanchezAK 4 жыл бұрын
HAL_Delay уже заменил на самопальную функцию задержки, так что с SysTick не пересекаюсь.
@CanchezAK
@CanchezAK 4 жыл бұрын
Ага, вопрос снят. Разобрался, у кого возникнет такая же проблема (невозможность использовать таймер совместно с этим дисплеем) - вот решение: while всё же можно использовать, но не в виде проверки флага или счета тиков, а в виде обычного бесконечного цикла, в теле которого стоит if, уже проверяющий флаг или что-там-у-вас. При этом результат работы таймера надо перенести в файл, где исполняется основной код, используя extern тип_переменной имя_переменной;
@ОлегШалагин-ц9щ
@ОлегШалагин-ц9щ 8 жыл бұрын
Здравствуйте! Подскажите пожалуйста, почему отображается только первый символ в первой строке, курсор переключается на следующий символ и так и мигает, пробовал подставлять вашу библиотеку и все равно так же отображает, то есть не пишет полный текст а только первый символ. Причем без разницы как выводить посимвольно или строкой.
@Jensiru
@Jensiru 8 жыл бұрын
А если яркость регулировать, что происходит? Все квадраты появляются? Видел подобное на али, вернули человеку деньги за брак.
@ОлегШалагин-ц9щ
@ОлегШалагин-ц9щ 8 жыл бұрын
квадраты начинают чуть виднеться, но преимущественно видно букву и курсор.
@Jensiru
@Jensiru 8 жыл бұрын
Олег Шалагин значит брак, должны хорошо быть видны. Питание 5 вольт же?
@ОлегШалагин-ц9щ
@ОлегШалагин-ц9щ 8 жыл бұрын
да 5 вольт питание, попробую ещё инициализировать как 8 битный интерфейс и что нибудь передать. Но с AVR контроллера он нормально выводит информацию... Странно, может где то в тактировании косяк?
@Jensiru
@Jensiru 8 жыл бұрын
Олег Шалагин скинь свой проект мне я гляну на своём дисплее.
@savyariva
@savyariva 8 жыл бұрын
Выложите, пожалуйста, готовый проект. У меня на экране выводится всякий мусор. Не могу понять в чем причина.
@narodstream552
@narodstream552 8 жыл бұрын
+savyariva drive.google.com/file/d/0B8UKRQCz2TihbXdKeC13QW1rc0k/view?usp=sharing
@МаксимКозорез-ж3в
@МаксимКозорез-ж3в 8 жыл бұрын
нашли в чем проблема? У меня тоже выводится на дисплей не то что надо.
@МаксимКозорез-ж3в
@МаксимКозорез-ж3в 8 жыл бұрын
пора бы уже научится GitHub-ом пользоваться
@narodstream552
@narodstream552 8 жыл бұрын
Здравствуйте! Это мне совет?
@narodstream552
@narodstream552 8 жыл бұрын
Вообще-то я сразу был против выкладывания проектов исходного кода. Всё это показано в видеоуроках. И знал что получится та же ситуация, что у Пушкина в "Сказке о рыбаке и рыбке"
Сестра обхитрила!
00:17
Victoria Portfolio
Рет қаралды 958 М.
She made herself an ear of corn from his marmalade candies🌽🌽🌽
00:38
Valja & Maxim Family
Рет қаралды 18 МЛН
Уроки Ардуино. ПИД регулятор
28:57
Заметки Ардуинщика
Рет қаралды 491 М.