Программирование МК STM32. УРОК 17. HAL. ADC. Regular Channel. Interrupt

  Рет қаралды 12,367

narod stream

narod stream

Күн бұрын

Пікірлер: 41
@СРБКолодий
@СРБКолодий 7 жыл бұрын
Хорошо, что показан весь процесс поиска информации в документации, подбор настроек в Cube. Большинство форумов с замечаниями "вкуриваем даташит" вызывали комплекс неполноценности. После Ваших уроков работаешь спокойно и уверенно).
@mursalovorxan
@mursalovorxan 3 жыл бұрын
Не знаю как вас зовут, но хочу выразить глубочайшую благодарность. Вы очень помогаете при входе в мир стм32 для новичков.
@АнатольПетрович-д5д
@АнатольПетрович-д5д 8 жыл бұрын
Пока это более толково и понятнее (для меня) из всего того , что я видел про STM32. Спасибо!
@narodstream552
@narodstream552 8 жыл бұрын
Спасибо! Я рад, что Вам нравится. Значит будем продолжать дальше.
@iy373
@iy373 5 жыл бұрын
Толково, вдумчиво, наглядно. Чего еще желать?
@dzanis79
@dzanis79 5 жыл бұрын
Спасибо.Я подключал NTC .Обычным способом показания не прыгали а вот с прерыванием немного задёргались.Да и в STM32CubeMX ничего в ClockConfiguration не менял,всё по умолчанию стояло.
@DrargonsM
@DrargonsM 8 жыл бұрын
спасибо за труды! очень нравится ваш канал
@narodstream552
@narodstream552 8 жыл бұрын
Спасибо! Ваш тоже хорош. Спасибо за надёжных продавцов!
@DrargonsM
@DrargonsM 8 жыл бұрын
Всегда рад помочь))
@ДмитрийТисов-ж6я
@ДмитрийТисов-ж6я 7 ай бұрын
Спасибо
@ВалерийГалкин-ю4щ
@ВалерийГалкин-ю4щ 6 жыл бұрын
Функция обработчика прерываний (перехвата) HAL_ConvCpltCallback работает только, если в Cube включить прерывания от АЦП ? Что будет если выключить, как это сделано в следующем Уроке 18 ? Есть функция обработки прерывания от АЦП и есть обработчик прерывания HAL_ConvCpltCallback, это немного вызывает путаницу в понимании. Получается прерывание после прерывания ? Функция HAL_ConvCpltCallback перехватывает поднятие флага окончания АЦП преобразования и возвращает это событие ?
@kthxby3532
@kthxby3532 8 жыл бұрын
Спасибо за уроки! Крайне полезный видеокурс. Возник вопрос с конфигурацией в CubeMX. В выпадающем меню Clock prescaler в параметрах АЦП не активен пункт "divided by 2". Настройки во вкладке clock configuration те же. В чем может быть проблема?
@narodstream552
@narodstream552 8 жыл бұрын
Спасибо за оценку! Проект смотреть надо.
@ДенисКоваль-ц4ф
@ДенисКоваль-ц4ф 7 жыл бұрын
Доброго времени суток. Проделав несколько тестов обнаружил, что при ручном старте АЦП делитель на 2 корректно работает, а при авто старте (Continuous Conversion mode - Enable) достаточно делителя на 4. Возможно это связано с обновлением версии куба, а именно с генерацией более производительного кода, в частности для функции обработчика прерываний АЦП.
@ОлексійЮрченко-я8м
@ОлексійЮрченко-я8м 4 жыл бұрын
Огромное Вам спасибо.
@АндрійМіканов
@АндрійМіканов 5 жыл бұрын
Здравствуйте. Пишу сказать большое спасибо за эти уроки, очень полезные и доступные. Увы, на моей stm32f103 код не хочет работать, выводит число 0.38, а если включить Continuous Conversion Mode, то выводит 0.56, эти числа не меняются никак. Уже поигрался с делителем частоты для АЦП, ни в какую. Прошу у Вас совет, заранее спасибо
@bandugabanduga2187
@bandugabanduga2187 4 жыл бұрын
Спасибо за видео ! Возник вопрос. А как с двух каналов АЦП забирать результат и записывать в переменные ? Снять результат с одной ножки и записать в переменную , а потом с второй и сравнить значение .
@YuriyIY
@YuriyIY 8 жыл бұрын
Возможно, я что-то не так делаю, но этот способ перенес из системного программирования под PC. Для того, чтоб прерывания не вызывались рекурсивно, при входе в прерывание запрещаем его вообще. HAL_NVIC_DisableIRQ(DMA1_Channel1_IRQn); Выполняем необходимый код и разрешаем прерывание. HAL_NVIC_EnableIRQ(DMA1_Channel1_IRQn); Пример для DMA, ну, думаю, вы поняли. :)
@narodstream552
@narodstream552 8 жыл бұрын
Понял конечно. Данный код не претендует на какую-то оптимизацию, поэтому я в рамках занятий ничего не отключаю. Тем более DMA нам вместе с его прерываниями пригодится на следующем уроке.
@Yushik79
@Yushik79 3 жыл бұрын
Не знаю почему автор не захотел..... Но у меня прекрасно получилось забрать данные из АЦП в обработчике прерываний с помощью этого кода: ADC_Data=HAL_ADC_GetValue(&hadc1); HAL_ADC_Start_IT(&hadc1); Последнюю строку можно убрать если используется режим с непрерывным преобразованием.
@vad741
@vad741 6 жыл бұрын
Не освещены временные параметры АЦП. А именно с какой частотой получаются выборки? Как это точно высчитать? Кто и с какой частотой выдаёт команду на запуск АЦП? У меня Куб в настройке АЦП имеет пункт 'External Trigger Conversion Source' со значением 'EXTI Line11'. Других вариантов не даёт. Что это?
@user-vlad385
@user-vlad385 8 жыл бұрын
Спасибо за уроки!
@narodstream552
@narodstream552 8 жыл бұрын
А вам спасибо за то, что вы их смотрите, тем самым сподвигая меня на какие-то новые решения.
@user-vlad385
@user-vlad385 8 жыл бұрын
narod stream От меня всегда будут лайки ! Ведь это бесценный материал . Сейчас чтобы выучится нужны средства , я бы сказал не малые . Желаю большего терпение Ваших трудах .
@alexmueller1041
@alexmueller1041 7 жыл бұрын
u menya na stm32f100 chtoby scan_mode zarabotal , nuzhno bylo: 1) Vlyuchit' DMA (stoit v datasheet), 2) Vybrat' neskolko kanalov ADC. 3) Number of Convesion = kolichestvo kanalov. Inachen galochku na scan_mode na enable ne postavit'.
@Жизньвчастномдоме-н7х
@Жизньвчастномдоме-н7х 6 жыл бұрын
Подскажите, а если мы в режиме непрерывного преобразования. Мы запустили только однажды ф-ю старт преобразований. Они друг за другом идут? А если есть необходимость сделать 4 преобразования, затем паузу?
@User-Morozov_Ivan
@User-Morozov_Ivan 6 жыл бұрын
Подскажите как закаментировать сразу несколько строк?
@Demigod270
@Demigod270 7 жыл бұрын
А работа сразу с несколькими регулярными каналами АЦП будет рассматриваться? Было бы интересно, как сделать срабатывание АЦП по прерыванию от таймера,а далее с нескольких рег. каналов данные идут через DMA в память.
@Demigod270
@Demigod270 7 жыл бұрын
Всё,увидел,вопрос снят.
@MayaKazarina
@MayaKazarina 8 жыл бұрын
А почему у меня на индикаторе напряжение может скакать при неподвижном резисторе? Например от 1.4В до 1.5В. И как можно измерить напряжение не до 3В, а хотя бы до 5 или больше? А еще у меня ClockPrescaler = PCLK2 divided by 4 и все работает. В лекции вы просили написать у кого работает с меньшим делителем.
@narodstream552
@narodstream552 8 жыл бұрын
Всё это очень странно. Даже затрудняюсь ответить в смысле насчет делителя. Скачки - это видимо нестабильное питание. До 5 и больше - резисторные делители на входе
@Sanchogus
@Sanchogus 8 жыл бұрын
Что-то с ходу не нашел: Есть три канала АЦП, регуляр мод, опрашивание идет по очереди и такой вопрос, когда забираем значение где узнать с какого канала оно поступило? Можно ли без танцев с бубном опросить произвольный канал? (без инжекции)
@narodstream552
@narodstream552 8 жыл бұрын
Триггеры используйте. Поставьте триггеры на каждый канал и обрабатывайте события.
@ЮрийМаланчук-е4к
@ЮрийМаланчук-е4к 4 жыл бұрын
Подскажите пожалуйста как 2 канала (разных напряжения) измерить с помощью ADC_IT. С помощью ADC_DMA у меня не получилось запустить. У меня STM32F051. У меня в кубе нет строчки "number of conversion" . Я был был бы признателен)
@ЮрийМаланчук-е4к
@ЮрийМаланчук-е4к 4 жыл бұрын
Спасибо. Нашел решение)
@ЮлияНекрасова-б8и
@ЮлияНекрасова-б8и 6 жыл бұрын
Добрый день! А у меня нормально заработало только после помещения функции HAL_ADC_Start_IT(&hadc1) в бесконечный цикл. До этого МК измерял одно значение и все. Даже несмотря на то, что стоит hadc1.Init.ContinuousConvMode = ENABLE. Почему так может быть?
@narodstream552
@narodstream552 6 жыл бұрын
Здравствуйте! Все правильно, там ещё что-то надо установить не помню, либо в обработчике прерывания запускать ещё раз (только, конечно, не в бесконечном цикле).
@alexmueller1041
@alexmueller1041 7 жыл бұрын
Почему в ADC_data*3/4046 есть умнажение на 3?? у Вас опорное напряжение 3В?? То, есть максимальное значение АЦП 0xFFF при 3 В?
@PocketFreeman
@PocketFreeman 7 жыл бұрын
Да-да, именно так. По идее, можно мультиметром измерить напряжение, и значения должны совпасть.
@concernedIndianCitizen
@concernedIndianCitizen 7 жыл бұрын
hello narod stream. great string of videos. great job. love from india. i can't speak russian, although i will put a translated message below this. i NEED HELP WITH instantaneous control of dc motor using variable pwm on ADC interrupt. can you please help? it is okay if you reply in russian. привет Narod поток. большая строка видео. отличная работа. любовь из Индии. я не могу говорить русский, хотя я поместит переведенный сообщение ниже этого. Мне нужна помощь с мгновенным управлением двигателем постоянного тока с использованием переменного ШИМ на прерывания АЦП. пожалуйста, вы можете помочь? это нормально, если вы отвечаете на русском языке. translated on Google/ переведен на Google
@narodstream552
@narodstream552 7 жыл бұрын
Очень жаль, но я ещё не изучал ШИМ по прерываниям.
Миллионер | 2 - серия
16:04
Million Show
Рет қаралды 1,9 МЛН
这是自救的好办法 #路飞#海贼王
00:43
路飞与唐舞桐
Рет қаралды 103 МЛН
Yay, My Dad Is a Vending Machine! 🛍️😆 #funny #prank #comedy
00:17
World’s strongest WOMAN vs regular GIRLS
00:56
A4
Рет қаралды 17 МЛН
Убийца Flipper zero ? Обзор M5Stack Cardputer!
5:54
Hobby Support
Рет қаралды 11 М.
STM32. Внешние прерывания EXTI
41:07
it - самородок
Рет қаралды 857
«Осень». Самая большая загадка Windows XP
14:36
Девять десятых
Рет қаралды 923 М.
Восстановление компьютера Океан 240.2 часть 1
21:52
Алексей Морозов
Рет қаралды 60 М.
STM32. Урок 17. Timers. Basic timer - Базовый таймер
31:41
Миллионер | 2 - серия
16:04
Million Show
Рет қаралды 1,9 МЛН