STM32. Урок 12. NVIC. EXTI. Примеры внешних прерываний

แชร์
ฝัง
  • เผยแพร่เมื่อ 23 ส.ค. 2019
  • Данный урок это практическое продолжение теоретического урока №11 - "STM32. Урок 11. NVIC. Прерывания. Контроллер прерываний NVIC".
    Здесь приводятся примеры по работе EXTI с микроконтроллером STM32F103 в части вложенных прерываниях, очереди, приоритетам группы прерываний.
    Вы можете помочь каналу Яндекс-деньги:
    money.yandex.ru/to/4100115727...

ความคิดเห็น • 84

  • @VideobufferGoPro12-kn2ok
    @VideobufferGoPro12-kn2ok 4 หลายเดือนก่อน

    Примерно раз в пол года просматриваю этот урок, когда требуется прерывания использовать! Спасибо большое!)

    • @NRelectronics
      @NRelectronics  4 หลายเดือนก่อน

      Спасибо и Вам за оценку моего труда!

  • @user-oc9lm7uf2t
    @user-oc9lm7uf2t 4 ปีที่แล้ว +5

    Все. Перехожу к Вам. Такой подачи материала еще не видел на русскоязычной стороне Ютуба!! Подписался и лайкнул все, что можно было (кроме Миландра, он не интересен, т. к. Stm он не конкурент). Для меня программирование микроконтроллеров это хобби, а Вы, видимо, занимаетесь этим профессионально!?

    • @NRelectronics
      @NRelectronics  4 ปีที่แล้ว

      Ох спасибо за такую похвалу, главное чтобы я не зазвидился как народ стрим. И профессионально, на работе, и дома конечно же. На Инстаграмме небольшая подборка моего рабочего стола и только некоторых отладочных плат. Я это делаю для людей, как для самого себя, когда бы сам этого не знал. Смотрите мои видео, кликая на колокольчик, за лайки тоже благодарю.

    • @Vladimir_Zarubin
      @Vladimir_Zarubin 4 ปีที่แล้ว +1

      @@NRelectronics В десяточку!!! Это насчет народ стрим.

  • @raven8867
    @raven8867 2 ปีที่แล้ว

    Спасибо, все просто и понятно. Очень размеренный/интересный канал!

    • @NRelectronics
      @NRelectronics  2 ปีที่แล้ว

      Вам спасибо за такие слова! Стараюсь. Не забывайте про лайки и рекомендуйте знакомым.

  • @user-pp2hz7ic7h
    @user-pp2hz7ic7h 5 ปีที่แล้ว +2

    Спасибо за ваше творчество!

    • @NRelectronics
      @NRelectronics  5 ปีที่แล้ว

      Вам спасибо за такую оценку!) Приятного обучения!)

  • @iaroslavsisenco4072
    @iaroslavsisenco4072 4 ปีที่แล้ว +1

    Большое спасибо! Очень показательно и доходчиво!

    • @NRelectronics
      @NRelectronics  4 ปีที่แล้ว

      Спасибо, стараюсь)

  • @std-sort
    @std-sort 2 ปีที่แล้ว

    Большое спасибо за урок! Очень информативно и все понятно!

    • @NRelectronics
      @NRelectronics  2 ปีที่แล้ว

      Пожалуйста. Рекомендуйте другим.

  • @Nazaro4ka
    @Nazaro4ka 6 หลายเดือนก่อน

    Спасибо большое за отличный урок !

    • @NRelectronics
      @NRelectronics  6 หลายเดือนก่อน

      Стараюсь. Подписывайтесь на канал, ставьте лайки, чтобы видео было доступно чаще в поиске для всех желающих!

  • @clora1136
    @clora1136 4 ปีที่แล้ว

    Хорошие видео. Спасибо)

    • @NRelectronics
      @NRelectronics  4 ปีที่แล้ว

      Пожалуйста) не забывайте про лайки)

  • @user-db1zg5jd4m
    @user-db1zg5jd4m 5 ปีที่แล้ว +8

    Спасибо огромное!)
    А примеры видов прерывания будете разбирать?
    Так же хотелось бы увидеть уроки по счётчикам/таймерам с примерами.
    Просьба - больше уделять внимание настройкам куба.
    Ещё раз огромное спасибо за разъяснения.

    • @NRelectronics
      @NRelectronics  5 ปีที่แล้ว +2

      Прерывания по таймерам будут когда будем рассматривать сами таймеры. Прерывания есть на всю периферию, у меня нет желания делать все обо всем и кучу мола.
      Ваша просьба выполнена! У меня есть специально для Вас видео по кубу: th-cam.com/video/E2NbqZBZH-0/w-d-xo.html

  • @0mgPoco
    @0mgPoco 13 วันที่ผ่านมา

    Автору 👍

    • @NRelectronics
      @NRelectronics  13 วันที่ผ่านมา

      Благодарю.

  • @aliscander92
    @aliscander92 4 ปีที่แล้ว

    Спасибо Вам большущее! Осваиваю stm32 для работы и своих радиотехнических проектов. Недавно нашел Ваш канал. У вас прекрасно сбалансирована теория и практика,что дает целостное понимание каждой функции. Если есть возможность можете сделать уроки по CMSIS, пожалуйста.

    • @NRelectronics
      @NRelectronics  4 ปีที่แล้ว

      Спасибо и Вам за высокую оценку. Стараюсь. Уроки по CMSIS планируются в этом году.

  • @alexmak4201
    @alexmak4201 4 ปีที่แล้ว +1

    Всё супер. Просьба, уменьшить громкость при заставке.

    • @NRelectronics
      @NRelectronics  4 ปีที่แล้ว

      Спасибо. Хорошо уменьшу.

  • @Ironziz
    @Ironziz 5 ปีที่แล้ว

    Познавательные уроки !!!😎 👍
    Так держать!
    Единственно, а можно ещё уроки по cubeide , очень интересны возможности и специфика работы с STM ской прогой!!!
    А так все классно!!!

    • @NRelectronics
      @NRelectronics  5 ปีที่แล้ว +1

      Спасибо за такие слова оценки!) Стараюсь как могу, жалко времени свободного немного, работа, семья, доча) Но при этом канал будет развиваться глубоко. Я уже обещал одному из подписчиков о втором видео по CubeIDE, видео по ней в планах стоит ;-) не забываем про лайки ;-)

    • @Ironziz
      @Ironziz 5 ปีที่แล้ว

      Спасибо за обратную связь! Ждём уроки! 😊

    • @NRelectronics
      @NRelectronics  5 ปีที่แล้ว +1

      @@Ironziz а пожалуйста за обратную связь ;-) !

  • @therianet
    @therianet 4 ปีที่แล้ว

    ogromnoe spasibo, ochen horosho uchite.
    zachem tolko if(User_pin==GPIO_PIN_9) ono ze vsegda TRUE, i pochemy ne stali ispolzovat callback fuction ?

    • @NRelectronics
      @NRelectronics  4 ปีที่แล้ว

      Callback покажу в другом видео, сложно показать примеры по всей библиотеки. Поэтому пока основу или базу показываю.

  • @scanty6996
    @scanty6996 2 ปีที่แล้ว

    Не сразу заработало, пришлось включать мозги. У меня на плате кнопка по дефотлу подтянута к земле и пришлось поменять подтяжку на pull-down и изменить на реагирование по fading edge trigger detection. После этого заработало, но очень не хватает тригера шмидта, по тому что из за дребезга контактов, срабатывает иногда по 2 раза

    • @NRelectronics
      @NRelectronics  2 ปีที่แล้ว +1

      Мои поздравления что разобрались!

  • @elmirakassymova380
    @elmirakassymova380 2 ปีที่แล้ว

    Здравствуйте, подскажите, пожалуйста, кнопками EXTI отправляю пакеты в Кан шину, они мешают друг другу. В чем может быть проблема?

    • @NRelectronics
      @NRelectronics  2 ปีที่แล้ว

      Формируйте тогда пакет, так чтобы они вам не мешали))

  • @takeshi854
    @takeshi854 4 ปีที่แล้ว

    Спасибо за видео! Очень круто объясняете. Хотел бы задать вопрос: а если нужно сделать задержку на определенное время в прерывании это надо новый счётчик включать, раз HAL_Delay() вводит в boot loop.

    • @NRelectronics
      @NRelectronics  4 ปีที่แล้ว

      Спасибо. Так да, новый счётчик, зачем только по прерыванию еще задержка?

    • @takeshi854
      @takeshi854 4 ปีที่แล้ว

      @@NRelectronics Да, такой вопрос часто спрашивают) Я хотел бы по нажатию кнопки прекратить на некоторое время идущий таймер, отобразить на этом же led сегменте температуру и влажность и потом после отпускания продолжить работу счётчика. Так же в будущем хочу подсчитать время нажатия кнопки, для долгого удержания ещё и обнулить счётчик.

    • @NRelectronics
      @NRelectronics  4 ปีที่แล้ว +2

      Я вас понял, зачем так нужно. Помереть время работы участков программы можно с помощью DWT.

    • @user-qe2ii8hv8k
      @user-qe2ii8hv8k 3 ปีที่แล้ว

      @@NRelectronics пРИМЕРЧИК ...ДЛЯ ЛЮДЕЁ НЕ ОБЛАДАЮЩИХ...знанием и фантазией! Про систик слышал, кнопку с прерыванием на вход таймера(захват)представил...только можно ли сразу 2е ф-ии на один вход навесить(таймер & прерывание)?

  • @alexivanov4022
    @alexivanov4022 5 ปีที่แล้ว

    Ждем ЮАРТ на прерываниях!!!!!

    • @NRelectronics
      @NRelectronics  5 ปีที่แล้ว

      Конечно будет UART на прерываниях ;-)

  • @slavaglow6933
    @slavaglow6933 5 ปีที่แล้ว

    Спасибо за урок.
    Не совсем понял в прерывании зачем вызов функции
    :
    HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_9);

    • @NRelectronics
      @NRelectronics  5 ปีที่แล้ว

      Пожалуйста) Она генерируется самим кубом, я ее не писал и об этом говорил.

    • @alexivanov4022
      @alexivanov4022 5 ปีที่แล้ว +3

      Чтоб сбрасывать флаги

  • @TheAurumsan1
    @TheAurumsan1 4 ปีที่แล้ว

    Огромное спасибо! Ну почему нет таких преподов, или они попадаются только счастливчикам?!

    • @NRelectronics
      @NRelectronics  4 ปีที่แล้ว +1

      Значит Вы счастливчик ;-)

  • @ivanrusev2270
    @ivanrusev2270 5 หลายเดือนก่อน

    Я недавно только понял как делать аппаратно-программную задержку.Через внешние прерывание с таймером .

    • @NRelectronics
      @NRelectronics  5 หลายเดือนก่อน

      Отлично что разобрались.

    • @user-nj4vm4sh2l
      @user-nj4vm4sh2l 5 หลายเดือนก่อน

      @@NRelectronicsПравда ресурсов аппаратно-программная задержка требует больше. Правда я в AVR экспериментировал.4 ШИМ канала нужно было чтобы один ШИМ канал загорелся плавно и и погас потом второй канал так же третий и четвёртый.На каждое действие один внешний канал.Действий в одном канале ШИМа 2 .Вообщем 8 INT каналов .два таймера на ШИМ.Один таймер в прерываниях работает.8 установочных флагов .8 GPIO работающих в двух режимах togle и в логическом "0".Сейчас на Stm32 переношу опыт.На другие проекты.Переферия лучше.

    • @NRelectronics
      @NRelectronics  5 หลายเดือนก่อน

      Молодцы, интересно сделали. На STM32 переферия значительно лучше чем на AVR. Даже на простых семействах класс. Рекомендую!

    • @user-nj4vm4sh2l
      @user-nj4vm4sh2l 5 หลายเดือนก่อน

      @@NRelectronics На stm32 проект Bobr-станция управления глубинным насосом с защитой 3фазного эл.двигателя по току от обрыва фаз и перегрузки на ютубе посмотрите.5 лет програмирую на stm32 9 на avr.Начинал с абсолютного нуля.Работал электриком.

    • @NRelectronics
      @NRelectronics  5 หลายเดือนก่อน

      Молодцы, здорово. Как поищу посмотрю обязанности.

  • @user-iq6mt2us2j
    @user-iq6mt2us2j 5 ปีที่แล้ว

    Непонятно как при нажатии на кнопку "User" будет лог."1". Было бы хорошо еще над группами приоритетов провести опыты, этого уж точно никто не делал. Нагляднее было бы 4 кнопки и на каждую кнопку свой светодиод. За видео спасибо.

    • @NRelectronics
      @NRelectronics  5 ปีที่แล้ว

      Там в одном месте оговорился, так как кнопка срабатывает на землю. А с группами приоритетов это второй пример, который объемный ;-)

    • @NRelectronics
      @NRelectronics  5 ปีที่แล้ว

      Может в другой раз привести с 4-мя кнопками пример над субгруппами, но суть то такая же как и с группами. Благо их 9 штук в таком исполнении отладочной платы))

  • @user-qe2ii8hv8k
    @user-qe2ii8hv8k 3 ปีที่แล้ว

    USER_Pin битовая маска == GPIO_PIN_9 Смысл СРАВНИВАТЬ МАСКИ ?
    Там должно быть как минимум *GPIOA->IDR&& GPIO_PIN_9
    (bulean)Hal_ReadPin(*port,USER_Pin)
    Прошу прощения за вольную трактовку синтаксиса....
    Hal хорошо, ГДЕ CMSIS?

    • @NRelectronics
      @NRelectronics  3 ปีที่แล้ว

      Будет, когда подойдет время.

  • @user-px9il3me6y
    @user-px9il3me6y 5 ปีที่แล้ว

    А каким образом решается проблема с дребезгом кнопок???
    Спасибо за видео, пример хороший)

    • @NRelectronics
      @NRelectronics  5 ปีที่แล้ว

      В данных примерах не акцентировал внимание на дребезге. Обещаю в ближайшем уроке приведу код по решению данного вопроса)

    • @user-px9il3me6y
      @user-px9il3me6y 5 ปีที่แล้ว

      @@NRelectronics спасибо, жду)
      И ещё сам подумаю конечно)

    • @kokotmkokot4926
      @kokotmkokot4926 4 ปีที่แล้ว +1

      @@NRelectronics Вы это серьезно? Прерывание срабатывает на заданный фронт и второго фронта для проверки не подразумевается. Может я ошибаюсь и Вы привели пример кода, позволяющий отделить фронт помехи от фронта полезного сигнала?

    • @kokotmkokot4926
      @kokotmkokot4926 4 ปีที่แล้ว

      @@NRelectronics еще возникает такой вопрос, Вы обрабатываете прерывание после сброса флага. Что произойдет в случае прихода нового прерывания если обработчик еще не закончил свою работу? спасибо.

    • @NRelectronics
      @NRelectronics  4 ปีที่แล้ว

      @@kokotmkokot4926 по приходу нового прерывания в теоретическим видео все разжевано, посмотрите пожалуйста. Все зависит от уровня приоритета в таблице векторов прерываний, а также от субгруппы. Может как и прервать выполнения перывания, так и стать в очередь на выполнение...

  • @DunnoOnTheMoon
    @DunnoOnTheMoon 3 ปีที่แล้ว

    Что то не могу понять. После каждой перегенерации кода очищается мой код. Хотя вроде и галочка стоит сохранять код и пишу между тегами юзерского кода.
    Загадка..🙄
    Сорян. Не разобрался где начало, а где конец тега😂. Вроде работает.

    • @NRelectronics
      @NRelectronics  3 ปีที่แล้ว +1

      Да, там нужно писать в тегах между begin и end. И все будет отлично!

    • @DunnoOnTheMoon
      @DunnoOnTheMoon 3 ปีที่แล้ว

      @@NRelectronics там слишком много оказалось бегинов и эндов в одном месте). Надо внимательно читать)

    • @DunnoOnTheMoon
      @DunnoOnTheMoon 3 ปีที่แล้ว

      @@NRelectronics делаю примеры на своей f0discovery. Там схемотехника кнопки дурацкая. Кнопка замыкает питание. Получается никакой подтяжки делать не нужно?
      И без подтяжки у меня неустойчиво работает. Похоже на дребезг кнопки. Хотя не жму уже в этот момент давно.

    • @NRelectronics
      @NRelectronics  3 ปีที่แล้ว

      Конечно внимательнее надо ;)

    • @NRelectronics
      @NRelectronics  3 ปีที่แล้ว

      Там на кнопке должен был кондер, чтобы не было дребезга.

  • @sama9_Live
    @sama9_Live 4 ปีที่แล้ว +1

    пачему HAL учите нармально , библиотека убогая и медленная

    • @NRelectronics
      @NRelectronics  4 ปีที่แล้ว

      пАтАму что ))

    • @takeshi854
      @takeshi854 4 ปีที่แล้ว

      STMicroelctronics её, если не ошибаюсь, рекомендует на АК основную. Не зря же они пыхтели и оборачивали функции.