Энкодер 🕹️ и STM32 подключение (на CMSIS и HAL)

Sdílet
Vložit
  • čas přidán 30. 11. 2020
  • 📝 Статья: cxemka.com/71-podklyuchenie-e...
    🏷️ KY-040 360 Degrees EC11 (0.71💲): ali.ski/H-gY0_
    🏷️ 360 Degrees Rotary Encoder (0.46💲): ali.ski/NrPIM
    🏷️ USB Logic Analyze 24M 8CH (4.69💲): ali.ski/RFBZY
    🏷️ Logic Analyzer 24M 8CH (5.30💲): ali.ski/pRABTt
    🏷️ STM32F030F4P6 Board (1.20💲): ali.ski/jiIOj2
    🏷️ 0.91 inch OLED (1.42💲): ali.ski/8JgXx
    🏷️ SG90 Servo 9g (0.77💲): ali.ski/Z3Qe_
    🛒 Мой мультиметр T21D RM113D (13.81💲): ali.ski/ED0syl
    ↪️ GitHub: github.com/Egoruch/Incrementa...
    #stm32 #cmsis #hal #stm32cubeide
    ✒️ Благодаря возможности работы некоторых таймеров с накопительным (инкрементальным) энкодером его можно подключать аппаратно. Таким образом после настройки и подключения изменения в счетчике будет происходить независимо. Но кроме обычной настройки рассмотрен способ определять вращение путем настройки прерывания по триггеру .
  • Věda a technologie

Komentáře • 55

  • @CanchezAK
    @CanchezAK Před 3 lety +19

    Внезапно, очень толково... Мужик, продолжай, прямо вот всё идеально показано и рассказано.

    • @sebastianangelo2054
      @sebastianangelo2054 Před 2 lety

      i guess it's kinda randomly asking but do anybody know a good site to watch new series online ?

    • @xavierkoda9531
      @xavierkoda9531 Před 2 lety

      @Sebastian Angelo i dunno atm I've been using Flixportal. just search on google after it :D -xavier

    • @sebastianangelo2054
      @sebastianangelo2054 Před 2 lety

      @Xavier Koda thank you, I went there and it seems to work :) I really appreciate it !

    • @xavierkoda9531
      @xavierkoda9531 Před 2 lety

      @Sebastian Angelo You are welcome :)

  • @LMTS100
    @LMTS100 Před 3 lety +12

    Давно ничего толкового по CMSIS не видел. Спасибо + Like

  • @sledleo
    @sledleo Před 3 lety +4

    Вот это заход по CMSIS, шикарно! Ждем еще!

  • @world_conspiracy
    @world_conspiracy Před 3 lety +1

    Хотел посмотреть пример работы с энкодером на CMSIS, но ещё и гуглить правильно научился))

  • @dobroliub1908
    @dobroliub1908 Před 3 lety +3

    Как же хорошо что о CMSISe с её регистрами не забываете, плюс еще и HALL ...Моё почтение!) и дальше так держать!! всё очень толково изложено. Всегда предпочитаю понимать что и где у меня в коде происходит, а не тонуть в куче библиотек..Возможно на HALL и перейду, но пока об этом рано говорить)) Спасибо Вам за моё сэкономленное время!

  • @andreiefimov9666
    @andreiefimov9666 Před 3 lety +5

    Спасибо за детальное пояснение. У Вас хорошо получается: по делу и коротко. Продолжайте в том же духе!

  • @IvanIvanov-ny4nz
    @IvanIvanov-ny4nz Před 3 lety +3

    Спасибо. Интересное видео. Продолжайте снимать про STM32.

  • @ivangolubov4931
    @ivangolubov4931 Před 7 měsíci

    Тоже начинал c CMSIS. Новичку конечно сложновато, но зато один раз разобравшись дальше всё идёт по накатанной.

  • @Diamond8822
    @Diamond8822 Před 3 lety +1

    Очень обстоятельно и без воды! лайк и подиписка

  • @MrSergej72
    @MrSergej72 Před 3 lety +1

    Такого ещё не видел на Ютубе, Лайк !!!

  • @TDMLab
    @TDMLab Před 3 lety +3

    Огонь👍

    • @cxemkacom3623
      @cxemkacom3623  Před 3 lety +2

      о, какие люди
      я подписан на вас)

    • @TDMLab
      @TDMLab Před 3 lety +2

      @@cxemkacom3623 а я на вас) сейчас смотрю про дребезг. Подача мне нравится, желаю успехов в развитии канала.

  • @OhrimenkoDI
    @OhrimenkoDI Před 3 lety +1

    Отличное видео! Без воды, все по делу!

  • @slavaglow6933
    @slavaglow6933 Před 3 lety +2

    Спасибо, очень полезно. Продолжайте, лайк и подписка.

  • @Chettuser
    @Chettuser Před 3 lety +1

    Благодарю! Особенно за CMSIS.

  • @user-si2kj5jk9y
    @user-si2kj5jk9y Před rokem

    Вот это ДА!!!
    Вот это подача!
    Никакого жевания соплей!
    Всё чётко , развёрнуто и информативно.
    Подписываюсь однозначно.

  • @statstopfinish
    @statstopfinish Před 3 lety

    Хорошо подана информация. Так держать.

  • @masterkit9517
    @masterkit9517 Před 3 lety +2

    Умница!

  • @ebjikkolu4757
    @ebjikkolu4757 Před 2 lety

    Когда речь зашла о сравнении занимаемой программой памяти я закрыл глаза и заткнул уши

  • @artvk8294
    @artvk8294 Před 3 lety

    Круто. Спасибо!

  • @SmNikolay
    @SmNikolay Před 3 lety

    Хорошее видео. Не подскажите как работать с энкодером(hal timer) который дает полный импульс за 2 щелчка?

  • @serggorod7916
    @serggorod7916 Před 3 lety +1

    Mustech MS8220R Лучший тестер! но и в описании совсем хорош,единственное что не УДОБНО КНОПКА ВКЛЮЧЕНИЯ.
    ТЕХНИЧЕСКИЕ ХАРАКТЕРИСТИКИ

    Выбор пределов измерений автоматический/ручной
    Максимальное значение индикатора 5999
    Диапазоны измерения постоянного напряжения 6/60/600В ±0.5%, 1000В ±0.8%
    Диапазоны измерения переменного напряжения 6/60/600В ±0.8%, 1000В ±1.0%
    Диапазоны измерения постоянного тока 600/6000 мкА/60/600 мА ±1.2%, 10A ±1.5%
    Диапазоны измерения переменного тока 600/6000 мкА/60/600 мА ±1.5%, 10A ±2.0%
    Диапазоны измерения частоты 6000Гц - 60Мгц
    Диапазоны измерения сопротивления 600 Ом/6/60/600 кОм/6 MОм ±1.0%,60Ом ±1.5%
    Диапазоны измерения температуры t°C -40°C ~ 1000°C±2.9%
    Диапазоны измерения емкости 6 нФ - 6000 мкФ
    Прозвонка цепей на проводимость есть
    Tест диодов, транзисторов есть
    Автоматическое отключение питания есть
    (Cо звуковым сигналом!)
    Удержание данных на дисплее (Data Hold) есть
    Источник питания 6F22(9В)
    Габариты 195 x 92 x 43 мм
    ИК КОМ ПОРТ.
    реальные значения (тру РМС)

  • @lsdlsd6036
    @lsdlsd6036 Před 2 lety

    Я обескуражен данным видео

  • @user-yu1bq5ic8r
    @user-yu1bq5ic8r Před měsícem

    почему у меня имя константы (тип uint8_t) подчеркивается красным? при наведении на имя отображается вот такое предупреждение warning: no previous extern declaration for non-static variable 'name'

  • @clora1136
    @clora1136 Před 3 lety

    Вроде как вы при подтяжке забыли отрицание маски сделать. Я на гите оставил задачу с пояснением.

  • @sskdll
    @sskdll Před 2 lety

    Спасибо за видео!
    Мне не понятно зачем нужна приставка UL. то что это unsigned long понятно, но вот в чем разница между ( 0x1

    • @dinvinchester3353
      @dinvinchester3353 Před rokem

      В том что ul ансигнед Лонг а 0x1 скорее всего инт или int8_t короче это уточнение для компилятора какого типа будет переменная

  • @masterkit9517
    @masterkit9517 Před 3 lety +1

    CDC_Transmit_FS((uint8_t*)"0x90",strlen("0x90")); передает как строку данные в ком порт, а как передать в виде HEX ? в ардуино было SERIAL.WRITE (0x90); отлично работало, а как в STM32, пишу вам вопрос, так как вы практически единственный кто может ответить, остальные пустое место

  • @masterkit9517
    @masterkit9517 Před 3 lety +1

    Хочу сделать отправку в USB через дескриптор из примера джойстика миди сообщение, подключил миди устройство отлично на STM32 103 определили fruity loops и любые муз. редакторы, а вот упаковать не могу сообщение и отправить, нашел потом пример джойстика очень хороший, там есть упаковка байта или двух, но все равно не сообразил, новичку трудно очень, вы явно разобрались бы, слушал ваше видео с открытым ртом, кому не задавал вопрос только мямлили что-то невнятное, даже самые крупные каналы оказывались мыльными пузырями. На вашем канале нашёл больше чем на самых "громких" каналах по STM32 где даже не ответят на комментарий, а тем более как миди 2 байта отправить уже известному дескриптору, подключенному в муз.редактор, никто не помог, отпинали ногами только всюду( у вас хоть приятно послушать уроки, нигде не было того что есть у вас. Ни по сдвиговым регистрам ни по serial. Уверен миди тема вам легко бы далась, я смеюсь с предыдущих "гуру" которые 2 байта даже не подсказали как послать и куда. А как реклама на их каналах, так профессоры все.

  • @ivanrusev2270
    @ivanrusev2270 Před 2 lety

    В режиме Энкодера прерывания не включают.И при включеня шим вывода также не включают

    • @micromaster4405
      @micromaster4405 Před rokem

      Почему же?

    • @ivanrusev2270
      @ivanrusev2270 Před rokem

      @@micromaster4405 Есть примеры.Но я их не прописывал.По крайне мере в AVR .Ну хоорошо а прерывание по таймеру и ДМА по таймеру совместимы?

    • @micromaster4405
      @micromaster4405 Před rokem

      @@ivanrusev2270 думаю да, так как по идее дма и прерывания разные блоки, и коллизий быть не должно

  • @Argonec
    @Argonec Před 3 lety +1

    Если не оскорбит , подскажите пожалуйста как изменить " направление вращения " энкодера при аппаратной реализации на HAL . Спасибо . P.S. Искал , гуглил , не получилось .

    • @cxemkacom3623
      @cxemkacom3623  Před 3 lety +1

      поменять местами выводы DT и CLK физически

    • @bogdanzayatsastronomyandna4722
      @bogdanzayatsastronomyandna4722 Před 3 lety

      @@cxemkacom3623 а програмно в мк?

    • @cxemkacom3623
      @cxemkacom3623  Před 3 lety +2

      @@bogdanzayatsastronomyandna4722 только средствами мк походу нельзя:
      The count direction correspond to the rotation direction of the connected sensor.
      Можно попробовать в прерывании свою переменную увеличивать/уменьшать проверкой в регистре TIM3->CR1 бита направления DIR.
      Depending on the sequence the
      counter counts up or down, the DIR bit in the TIMx_CR1 register is modified by hardware
      accordingly. The DIR bit is calculated at each transition on any input (TI1 or TI2), whatever
      the counter is counting on TI1 only, TI2 only or both TI1 and TI2.

    • @masterkit9517
      @masterkit9517 Před 3 lety +1

      @@bogdanzayatsastronomyandna4722 А если там поставить ! знак инверсии?

    • @olegp.3012
      @olegp.3012 Před 2 lety

      Направление вращения програмно меняется изменением Polarity c Rising Edge на Falling Edge в CubeMX. Polarity это немного не то, что автор озвучил. Сам же счетчик будет считать любое изменение сигнала на ножке мк, т.е. за один щелчек CNT будет увеличиваться на 2.

  • @statstopfinish
    @statstopfinish Před 3 lety

    Все хорош, работает, но какого фига он считает по два значения за один щелчок энкодера . Ведь режим энкодера стоит TI1

    • @olegp.3012
      @olegp.3012 Před 2 lety

      Так и должно быть, значение счетчика изменяется при любом изменении сигнала на ножке мк, посмотрите рисунки в referens manual. Обрабатывайте значение счетчика програмно.

    • @user-cn9sh9md5e
      @user-cn9sh9md5e Před rokem

      @@olegp.3012 А в ролике видно, шо переменная изменяется на один, как- так-то?

    • @olegp.3012
      @olegp.3012 Před rokem

      @@user-cn9sh9md5e за один "щелчек" сигнал на ножке мк меняется дважды - с высокого на низкий и опять с низкого на высокий. Оба эти события изменяют регистр CNT счетчика в одну сторону. Никто не запрещает зафиксировать промежуточное значение счетчика для красивого видео. Если вести счет по двум ножкам, счетчик будет изменяться на 4 единицы.

    • @user-cn9sh9md5e
      @user-cn9sh9md5e Před rokem

      @@olegp.3012 Тобиш чтобы переменная менялась на один, надо TIM->CNT делить на 4 (при счете с двух выходов), окай, а в ролике нет этого и переменная меняется на один, как так?

    • @olegp.3012
      @olegp.3012 Před rokem

      @@user-cn9sh9md5e думаю, автор ролика крутит энкодер плавно и ловит промежуточные значения счетчика между щелчками. Весь код есть в видео, вы уже повторили его в железе? На сколько изменяется значение?