STM32. Урок 12. NVIC. EXTI. Примеры внешних прерываний
Vložit
- čas přidán 5. 09. 2024
- Данный урок это практическое продолжение теоретического урока №11 - "STM32. Урок 11. NVIC. Прерывания. Контроллер прерываний NVIC".
Здесь приводятся примеры по работе EXTI с микроконтроллером STM32F103 в части вложенных прерываниях, очереди, приоритетам группы прерываний.
Вы можете помочь каналу Яндекс-деньги:
money.yandex.r...
Примерно раз в пол года просматриваю этот урок, когда требуется прерывания использовать! Спасибо большое!)
Спасибо и Вам за оценку моего труда!
Все. Перехожу к Вам. Такой подачи материала еще не видел на русскоязычной стороне Ютуба!! Подписался и лайкнул все, что можно было (кроме Миландра, он не интересен, т. к. Stm он не конкурент). Для меня программирование микроконтроллеров это хобби, а Вы, видимо, занимаетесь этим профессионально!?
Ох спасибо за такую похвалу, главное чтобы я не зазвидился как народ стрим. И профессионально, на работе, и дома конечно же. На Инстаграмме небольшая подборка моего рабочего стола и только некоторых отладочных плат. Я это делаю для людей, как для самого себя, когда бы сам этого не знал. Смотрите мои видео, кликая на колокольчик, за лайки тоже благодарю.
@@NRelectronics В десяточку!!! Это насчет народ стрим.
Спасибо, все просто и понятно. Очень размеренный/интересный канал!
Вам спасибо за такие слова! Стараюсь. Не забывайте про лайки и рекомендуйте знакомым.
Большое спасибо за урок! Очень информативно и все понятно!
Пожалуйста. Рекомендуйте другим.
Спасибо огромное!)
А примеры видов прерывания будете разбирать?
Так же хотелось бы увидеть уроки по счётчикам/таймерам с примерами.
Просьба - больше уделять внимание настройкам куба.
Ещё раз огромное спасибо за разъяснения.
Прерывания по таймерам будут когда будем рассматривать сами таймеры. Прерывания есть на всю периферию, у меня нет желания делать все обо всем и кучу мола.
Ваша просьба выполнена! У меня есть специально для Вас видео по кубу: czcams.com/video/E2NbqZBZH-0/video.html
Большое спасибо! Очень показательно и доходчиво!
Спасибо, стараюсь)
Спасибо за ваше творчество!
Вам спасибо за такую оценку!) Приятного обучения!)
Автору 👍
Благодарю.
Спасибо большое за отличный урок !
Стараюсь. Подписывайтесь на канал, ставьте лайки, чтобы видео было доступно чаще в поиске для всех желающих!
Спасибо Вам большущее! Осваиваю stm32 для работы и своих радиотехнических проектов. Недавно нашел Ваш канал. У вас прекрасно сбалансирована теория и практика,что дает целостное понимание каждой функции. Если есть возможность можете сделать уроки по CMSIS, пожалуйста.
Спасибо и Вам за высокую оценку. Стараюсь. Уроки по CMSIS планируются в этом году.
Всё супер. Просьба, уменьшить громкость при заставке.
Спасибо. Хорошо уменьшу.
Познавательные уроки !!!😎 👍
Так держать!
Единственно, а можно ещё уроки по cubeide , очень интересны возможности и специфика работы с STM ской прогой!!!
А так все классно!!!
Спасибо за такие слова оценки!) Стараюсь как могу, жалко времени свободного немного, работа, семья, доча) Но при этом канал будет развиваться глубоко. Я уже обещал одному из подписчиков о втором видео по CubeIDE, видео по ней в планах стоит ;-) не забываем про лайки ;-)
Спасибо за обратную связь! Ждём уроки! 😊
@@Ironziz а пожалуйста за обратную связь ;-) !
Хорошие видео. Спасибо)
Пожалуйста) не забывайте про лайки)
Я недавно только понял как делать аппаратно-программную задержку.Через внешние прерывание с таймером .
Отлично что разобрались.
@@NRelectronicsПравда ресурсов аппаратно-программная задержка требует больше. Правда я в AVR экспериментировал.4 ШИМ канала нужно было чтобы один ШИМ канал загорелся плавно и и погас потом второй канал так же третий и четвёртый.На каждое действие один внешний канал.Действий в одном канале ШИМа 2 .Вообщем 8 INT каналов .два таймера на ШИМ.Один таймер в прерываниях работает.8 установочных флагов .8 GPIO работающих в двух режимах togle и в логическом "0".Сейчас на Stm32 переношу опыт.На другие проекты.Переферия лучше.
Молодцы, интересно сделали. На STM32 переферия значительно лучше чем на AVR. Даже на простых семействах класс. Рекомендую!
@@NRelectronics На stm32 проект Bobr-станция управления глубинным насосом с защитой 3фазного эл.двигателя по току от обрыва фаз и перегрузки на ютубе посмотрите.5 лет програмирую на stm32 9 на avr.Начинал с абсолютного нуля.Работал электриком.
Молодцы, здорово. Как поищу посмотрю обязанности.
Не сразу заработало, пришлось включать мозги. У меня на плате кнопка по дефотлу подтянута к земле и пришлось поменять подтяжку на pull-down и изменить на реагирование по fading edge trigger detection. После этого заработало, но очень не хватает тригера шмидта, по тому что из за дребезга контактов, срабатывает иногда по 2 раза
Мои поздравления что разобрались!
USER_Pin битовая маска == GPIO_PIN_9 Смысл СРАВНИВАТЬ МАСКИ ?
Там должно быть как минимум *GPIOA->IDR&& GPIO_PIN_9
(bulean)Hal_ReadPin(*port,USER_Pin)
Прошу прощения за вольную трактовку синтаксиса....
Hal хорошо, ГДЕ CMSIS?
Будет, когда подойдет время.
Спасибо за видео! Очень круто объясняете. Хотел бы задать вопрос: а если нужно сделать задержку на определенное время в прерывании это надо новый счётчик включать, раз HAL_Delay() вводит в boot loop.
Спасибо. Так да, новый счётчик, зачем только по прерыванию еще задержка?
@@NRelectronics Да, такой вопрос часто спрашивают) Я хотел бы по нажатию кнопки прекратить на некоторое время идущий таймер, отобразить на этом же led сегменте температуру и влажность и потом после отпускания продолжить работу счётчика. Так же в будущем хочу подсчитать время нажатия кнопки, для долгого удержания ещё и обнулить счётчик.
Я вас понял, зачем так нужно. Помереть время работы участков программы можно с помощью DWT.
@@NRelectronics пРИМЕРЧИК ...ДЛЯ ЛЮДЕЁ НЕ ОБЛАДАЮЩИХ...знанием и фантазией! Про систик слышал, кнопку с прерыванием на вход таймера(захват)представил...только можно ли сразу 2е ф-ии на один вход навесить(таймер & прерывание)?
Здравствуйте, подскажите, пожалуйста, кнопками EXTI отправляю пакеты в Кан шину, они мешают друг другу. В чем может быть проблема?
Формируйте тогда пакет, так чтобы они вам не мешали))
Непонятно как при нажатии на кнопку "User" будет лог."1". Было бы хорошо еще над группами приоритетов провести опыты, этого уж точно никто не делал. Нагляднее было бы 4 кнопки и на каждую кнопку свой светодиод. За видео спасибо.
Там в одном месте оговорился, так как кнопка срабатывает на землю. А с группами приоритетов это второй пример, который объемный ;-)
Может в другой раз привести с 4-мя кнопками пример над субгруппами, но суть то такая же как и с группами. Благо их 9 штук в таком исполнении отладочной платы))
Спасибо за урок.
Не совсем понял в прерывании зачем вызов функции
:
HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_9);
Пожалуйста) Она генерируется самим кубом, я ее не писал и об этом говорил.
Чтоб сбрасывать флаги
Огромное спасибо! Ну почему нет таких преподов, или они попадаются только счастливчикам?!
Значит Вы счастливчик ;-)
ogromnoe spasibo, ochen horosho uchite.
zachem tolko if(User_pin==GPIO_PIN_9) ono ze vsegda TRUE, i pochemy ne stali ispolzovat callback fuction ?
Callback покажу в другом видео, сложно показать примеры по всей библиотеки. Поэтому пока основу или базу показываю.
Ждем ЮАРТ на прерываниях!!!!!
Конечно будет UART на прерываниях ;-)
Что то не могу понять. После каждой перегенерации кода очищается мой код. Хотя вроде и галочка стоит сохранять код и пишу между тегами юзерского кода.
Загадка..🙄
Сорян. Не разобрался где начало, а где конец тега😂. Вроде работает.
Да, там нужно писать в тегах между begin и end. И все будет отлично!
@@NRelectronics там слишком много оказалось бегинов и эндов в одном месте). Надо внимательно читать)
@@NRelectronics делаю примеры на своей f0discovery. Там схемотехника кнопки дурацкая. Кнопка замыкает питание. Получается никакой подтяжки делать не нужно?
И без подтяжки у меня неустойчиво работает. Похоже на дребезг кнопки. Хотя не жму уже в этот момент давно.
Конечно внимательнее надо ;)
Там на кнопке должен был кондер, чтобы не было дребезга.
А каким образом решается проблема с дребезгом кнопок???
Спасибо за видео, пример хороший)
В данных примерах не акцентировал внимание на дребезге. Обещаю в ближайшем уроке приведу код по решению данного вопроса)
@@NRelectronics спасибо, жду)
И ещё сам подумаю конечно)
@@NRelectronics Вы это серьезно? Прерывание срабатывает на заданный фронт и второго фронта для проверки не подразумевается. Может я ошибаюсь и Вы привели пример кода, позволяющий отделить фронт помехи от фронта полезного сигнала?
@@NRelectronics еще возникает такой вопрос, Вы обрабатываете прерывание после сброса флага. Что произойдет в случае прихода нового прерывания если обработчик еще не закончил свою работу? спасибо.
@@kokotmkokot4926 по приходу нового прерывания в теоретическим видео все разжевано, посмотрите пожалуйста. Все зависит от уровня приоритета в таблице векторов прерываний, а также от субгруппы. Может как и прервать выполнения перывания, так и стать в очередь на выполнение...
пачему HAL учите нармально , библиотека убогая и медленная
пАтАму что ))
STMicroelctronics её, если не ошибаюсь, рекомендует на АК основную. Не зря же они пыхтели и оборачивали функции.