8-разрядный модуль дисплея на MAX7219. Подключаем к STM32. Изучаем SPI.

Поделиться
HTML-код
  • Опубликовано: 16 сен 2024

Комментарии • 50

  • @hanavarolin
    @hanavarolin 5 месяцев назад

    Зашёл посмотреть, как подключить дисплей, а до кучи разобрался, как в СПИ отправлять, однозначно лайк

  • @vitalikzoom7741
    @vitalikzoom7741 4 года назад

    Спасибо за уроки. С УВАЖЕНИЕМ!

  • @djoonkdjoonk7431
    @djoonkdjoonk7431 2 года назад

    Отличный урок, спасибо!

  • @ДаниилВласов-н2б
    @ДаниилВласов-н2б 3 года назад

    Спасибо, помогли быстро разобраться

  • @АлександрАксенов-т9и

    Спасибо помог. (первая строчка в таблице с нулями нужна что бы отправить данные на вторую микросхему)

    • @Solderingironspb
      @Solderingironspb  3 года назад

      т.е. No-Op тоже стоит отправить при инициализации?

  • @СергейНиконоров-в5м

    Ждём урок про i2c)

  • @konstantingolinskiy4944
    @konstantingolinskiy4944 4 года назад +1

    15:32 зачем делать массив на 1 элемент? uint8_t tx_buffer = adress; а в функцию передачи SPI пишем адрес нашей переменной &tx_buffer, или раз отправляете 2 байта то можно было сделать массив на 2 элемента записать туда данные и одним вызовом функции передачи отправит туда сразу 2 байта.
    Библиотеки лучше подключать ( даже сказать правильнее ) делать в корне проекта папку и в нее кидать все файлы относящиеся к данной библиотеке и в проекте подключать эту папку. Тогда если много библиотек все структурировано и нет бардака =)

    • @Solderingironspb
      @Solderingironspb  4 года назад

      Тут вы правы. Надо попробовать)

    • @serhii3436
      @serhii3436 3 года назад +1

      Вы бы не могли пример здесь написать?

  • @pavelsan1954
    @pavelsan1954 3 года назад

    Пример рабочий. Автору салют! Не нашел вывод точки в любую позицию.
    Может кому-нибудь пригодиться.
    //вывод цифры в произвольную позицию с установкой точки или без
    void max7219_SendInt_point(int pos, int a, _Bool b){
    char mass[9] = { 0x7E, 0x30, 0x6D, 0x79, 0x33, 0x5B, 0x5F, 0x70, 0x7F, 0x7B}; ////массив чисел для 7-сегментного индикатора
    if (b == 1) {
    max7219_Transmit(pos, mass[a]|0x80); //установка точки
    }
    else max7219_Transmit(pos, mass[a]);
    }
    вызов
    max7219_Display_Clean();
    max7219_SendInt_point(1,2,1);
    max7219_SendInt_point(5,3,0);
    max7219_SendInt_point(8,7,1);
    max7219_Send_int32_t(12345678); //вывод числа
    max7219_Transmit(0x01, 0x80); //вывод цифры в позицию 1
    max7219_Intensity(3); //яркость

  • @АлександрАксенов-т9и

    Можно существенно облегчить получение кода символа используя "декодер" pro-diod.ru/programms/max7219-dekoder.html

  • @user-us5er1jt3n
    @user-us5er1jt3n Год назад

    Доброго вам и спасибо за уроки! Скажите пожалуйста как вывести 2 переменные в разные сегменты? например температура в 0 сегмент, а время в 4 сегмент?

    • @Solderingironspb
      @Solderingironspb  Год назад

      добрый день! Тут только переделывать/дописывать библиотеку.По сути дела надо 2 числа переделать в текст и вывести это на дисплей. Может потом сделаю эту функцию. Вы уже не первый, кто спрашивает про это)

    • @user-us5er1jt3n
      @user-us5er1jt3n Год назад

      @@Solderingironspb тогда будем ждать примеров! Спасибо!

  • @vitalikzoom7741
    @vitalikzoom7741 4 года назад +1

    ЖДЁМ урок на TM1638.

    • @Solderingironspb
      @Solderingironspb  4 года назад

      А в чем его преимущество перед данной микросхемой?) Загуглил. Там такие платы здоровые. Туда и кнопки напихали и диодов куча...

    • @vitalikzoom7741
      @vitalikzoom7741 4 года назад

      @@Solderingironspb на MAX7219 больше используют модуль точечной матрицы 8x8 светодиодов. а на TM1638 как раз 8-разрядный модуль дисплея ну и + там кнопки.
      преимущество? да в принципе нет. Ну все ровно Спасибо за видио и пояснения.

  • @motoday3580
    @motoday3580 4 года назад

    Привет! спасибо за урок ! Вот бы урок конкретно по языку C приминительно к stm32. Низнаю с чего начать изучение языка ...

    • @Solderingironspb
      @Solderingironspb  4 года назад +1

      Добрый вечер. Здесь сложно даже чего-то Вам посоветовать. Я начинал с ардуино. Чего-то делал. Смотрел различные уроки. Сама суть - это начать что-то делать свое, а не повторять за кем-то проекты. Начнете делать свое - тут же пойдет рост знания языка в гору. Вы будете спотыкаться на каждом шагу, НО Вы сами же будете находить ответы на свои вопросы. Так шаг за шагом и изучите. Теория без практики - ничто. Сразу начинать изучать Stm32 без знания Си - это похвально конечно? но сложно. Можете посмотреть мой урок#00. Я там рассказывал про книги, которые я читаю. И вот курс "штурмуем stm32" как раз нацелен на то, чтоб человек вник в Си на примере МК STM32F103C8T6 (книга "Си для встраиваемых систем").

    • @motoday3580
      @motoday3580 4 года назад

      @@Solderingironspb Спасибо ✋🏻

  • @Sergey_Bobrov
    @Sergey_Bobrov 4 года назад

    Хорошо бы сделать крупнее шрифт при демонстрации текста

    • @Solderingironspb
      @Solderingironspb  4 года назад

      Я думал на счет этого, т.к. многие видео с телефона смотрят. Но меня пока останавливают две вещи: 1) Программировать становится жутко неудобно. 2) Если на монтаже увеличивать картинку, то дисплей постоянно будет прыгать туда-сюда, т.к. скачу из окна в окно. Да и времени на обработку, которого у меня итак, к сожалению, совсем нет, уйдет в разы больше(

  • @user-dg4vq6ye6r
    @user-dg4vq6ye6r 3 месяца назад

    А как микросхема работает от 3.3 вольта (на видео красный провод) если в даташите на max7219 4-5.5v o_0 ?

    • @Solderingironspb
      @Solderingironspb  3 месяца назад

      Не знаю) работала и работала хорошо)

    • @user-dg4vq6ye6r
      @user-dg4vq6ye6r 3 месяца назад

      @@Solderingironspb Я тоже запустил ( CS только через HAL и на макетке ) ... магия)) спасибо за содержательное видео.

  • @slavaglow6933
    @slavaglow6933 2 года назад

    Как тут выполняется согласование уровней?
    Я на сколько понимаю про согласование уровней, у STM32 напряжение логической единицы 3,3 В, а у драйвера MAX7219 логическая единица начинается индикации с 4,5 В. Поэтому включается в микроконтроллере для выходных логических сигналов режим "с открытым стоком" которые толерантны к 5 В и установливается внешние подтягивающие резисторы 1 - 5 кОм к +5 В.

    • @Solderingironspb
      @Solderingironspb  2 года назад +2

      Добрый день!
      Данный модуль просто питал от 3.3В.
      Работает идеально. Не сбоит.

    • @slavaglow6933
      @slavaglow6933 2 года назад

      Спасибо, возьму на заметку

    • @dainiusjaraminas6412
      @dainiusjaraminas6412 Год назад

      @@Solderingironspb да, MAX7219 стабильно валит от внешнего 3,3V, и это очень актуально кто подключают SPI от ST_LINK клона, иначе глючет

  • @олегспирин-р4р
    @олегспирин-р4р 3 года назад

    Спасибо!!! P.S. а что значит: поднять ножку, опустить ножку?

    • @Solderingironspb
      @Solderingironspb  3 года назад

      Высокий и низкий логический уровень. Вкл и выкл, если совсем уж просто)

    • @олегспирин-р4р
      @олегспирин-р4р 3 года назад

      @@Solderingironspb спасибо

  • @Dmitriy_KIPiA
    @Dmitriy_KIPiA 3 года назад

    Вроде все так сделал, несколько раз перепроверил, файл main вручную вводил, но этап инициализации не работает (дисплей не светится). Может на китайской плате SPI не работает?

    • @Solderingironspb
      @Solderingironspb  3 года назад

      А плата какая? Тоже blue pill?

    • @Dmitriy_KIPiA
      @Dmitriy_KIPiA 3 года назад

      @@Solderingironspb , Да тоже Blue pill. 407VET6 пробовал такая же ситуация (не работает) . Осцциллографом становился на шину MOSI и ничего там не увидел. Буду разбираться.....

    • @Solderingironspb
      @Solderingironspb  3 года назад

      по поводу осциллографа. Там частота же большая. Мой домашний осциллограф(FNIRSI DSO PRO) ничего не может зафиксировать. Поэтому, для этих целей, я пользуюсь логическим анализатором Saleae Logic 16.

    • @Dmitriy_KIPiA
      @Dmitriy_KIPiA 3 года назад

      @@Solderingironspb я пробовал логически анализатор KINGST VIS. Он какую то билибербу видит, я таких символов не отправляю. Отправка идёт, но как - то через ж.....

    • @Dmitriy_KIPiA
      @Dmitriy_KIPiA 3 года назад

      @@Solderingironspb допустим вот один из вариантов работы: если в цикл while вписать очистку дисплея, то дисплей потухший. Если очистка не вписана в основном цикле while, а перед ним то на дисплее горят все символы и сегменты (типа тест) . Провода в пределах 20-ти сантиметров. Я уже и частоту снижал через предделитель до 200 -та ( окрукленно) килоГерц. Все равно работает все не адекватно.

  • @andrejzav5690
    @andrejzav5690 3 года назад

    Спасибо за труд . У меня такая проблема переход из единиц в десятки происходит на цифре 9 а должен на 0 . В библиотеке не могу найти где это исправить . Глянь пожалуйста когда время будет . Зарание блогодарен.

    • @Solderingironspb
      @Solderingironspb  3 года назад

      Добрый день! Напишите мне вконтакте, я так хоть со скринами смогу ответить. Ссылка на главной странице канала или на github. На крайний случай на почту olegdizzvolkov@yandex.ru

    • @andrejzav5690
      @andrejzav5690 3 года назад

      @@Solderingironspb u.pcloud.link/publink/show?code=kZ1RjFXZiKkV1RIISPbyyhcB2t4fWjYAV0JV Посмотри проблему .

    • @Solderingironspb
      @Solderingironspb  3 года назад

      ничего себе...А мою библиотеку подключали без каких либо изменений? #define никакие не удаляли? При инициализации ставили дилей 100 мс, а потом max7219_Init()? Отправку значений делаете через max7219_Send_int32_t(int32_t value)? И еще. При отладке, попробуйте отправляемые значения на дисплей, вывести в отладку. Что он шлет...Можете мне проект скинуть на почту. Я гляну.

    • @andrejzav5690
      @andrejzav5690 3 года назад

      @@Solderingironspb u.pcloud.link/publink/show?code=kZ1RjFXZiKkV1RIISPbyyhcB2t4fWjYAV0JV Проект лови .

    • @Solderingironspb
      @Solderingironspb  3 года назад

      Пробуйте сейчас yadi.sk/d/_uwOUY5BVAmqpA
      P.S. Проверить полноценно не могу, т.к. F411мк ко мне только едет еще.