STM32 ADC. Основные приемы работы. Примеры кода и настройки.

Поделиться
HTML-код
  • Опубликовано: 11 дек 2024
  • Основные настройки STM32 ADC. Коротко и по делу, как включить, как настроить использовать. Примеры кода.
    Канал в телеграмм - t.me/vladimir_...
    Канал Яндекс.Дзен - zen.yandex.ru/...
    Канал на RuTube - rutube.ru/chan...
    Канал на RUclips - / vladimirmedintsev
    ------------------------------------------
    Если вы хотите поддержать автора канала номер карты Сбер:
    2202-2023-2480-4008
    ------------------------------------------

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

  • @ЕвгенийДюбайло
    @ЕвгенийДюбайло 2 года назад +1

    Смотрю 90% ваших видео с мобильного (5,5 дюймов 1080р амолед) и все отлично видно!

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

    Спасибо большое. Очень полезное видео. Хотелось бы больше информации для начинающих, но с Вашей позицией я знаком по этому поводу.

  • @СергейКожевников-я4ъ
    @СергейКожевников-я4ъ 11 месяцев назад +1

    Нормально все видно, продолжайте снимать видео, очень интересно

  • @АндрейСеров-й5ю
    @АндрейСеров-й5ю 4 года назад +2

    По идее так по таймеру будет срабатывать АЦП раз в 2 секунды, только первое срабатывание после включения или перезагрузки микроконтроллера произойдет через 1 секунду. Это связано с тем, что Toggle on match меняет состояние с LOW на HIGH и наоборот при сравнении со значением в Pulse. Если разбирать Ваш случай, то при включении МК таймер начнет считать до 1000, затем он сбросится и сравняется со значением в Pulse (0), в этот момент произойдет переключения сигнала с LOW на HIGH, что вызовет наше событие (АЦП) и мы получим значение через секунду, потом таймер снова досчитает до 1000 (пройдет 1 секунда), сбросится и произойдет переключение сигнала, но уже с высокого уровня (HIGH) на низкий (LOW), что уже не вызывает наше событие, поэтому мы не получим значение с АЦП через секунду, далее счетчик снова отсчитывает до 1000 и при сбрасывании меняет уровень сигнала уже с LOW на HIGH, что нам и нужно для вызова АЦП, затем данный цикл повторяется. Поэтому получать данные с АЦП мы будем раз в 2 секунды в этом случае.

  • @admin_of_youtube
    @admin_of_youtube 5 лет назад +3

    супер! хоть и хорошо знаю ацп, но с удовольствием посмотрел. спасибо!

  • @ИгорьРубацкий-ч1о
    @ИгорьРубацкий-ч1о Год назад +1

    Спасибо за урок, всё классно и понятно.👍 Я без проблем вижу всё на экране монитора. Всех Вам благ.

  • @Scherbakov
    @Scherbakov 2 года назад +1

    Спасибо за видео! С экрана смартфона всё видно.

  • @littlechip7256
    @littlechip7256 Месяц назад

    Спасибо очень помогло. Вот-бы такое видео для встроенного датчика температуры - stm32u585

  • @sh6194
    @sh6194 5 лет назад +3

    Мужик, ты крут!

  • @Testoslav_Testenko
    @Testoslav_Testenko 2 года назад +1

    Нормально видно на телефоне, только качество на максимум нужно. Видео для меня полезно, спасибо!

  • @windy_sky
    @windy_sky 5 лет назад

    Нормальное поучительное видео. Я много раз уже обращался к вашим роликам, когда разбираться сильно не хочется а сделать надо.

  • @iwh1te340
    @iwh1te340 5 лет назад +2

    Нормально все видно, 720р на j7 видно все прекрасно)

  • @Muhomorik
    @Muhomorik 5 лет назад +1

    Спасибо. Досмотрел до конца!

  • @Денис-в3ш1ц
    @Денис-в3ш1ц 5 лет назад +2

    Спасибо за видео. А по поводу разрешения захвата экрана, то мне кажется, что нужно снимать под FullHD. Поясню. Если я посмотрел видео на мобильном устройстве (как говорится, на ходу) и содержание меня заинтересовало, то я обязательно добавлю его себе в закладки, чтобы посмотреть его позже на стационарном ПК в нормальном разрешении.

  • @danilgaijin8366
    @danilgaijin8366 5 лет назад

    В стандартной винде есть инструмент лупа, можно её использовать. А вообще пора вам помощника искать для монтажа )
    За видео спасибо )

    • @VladimirMedintsev
      @VladimirMedintsev  5 лет назад

      Был бы с этого доход хоть какой-нибудь было бы время и на монтаж. А так это хрупкий балланс между развлечением и хобби. Я вообще задумываюсь сбежать в англоязычный сегмент.

    • @СуНаиль
      @СуНаиль 5 лет назад +1

      @@VladimirMedintsev зачем сбегать? Можно же между видосиками про STM выкладывать видео про различные блюда. Сегмент домохозяек очень большой и подписоты много будет. Почти все каналы такой тематики МК набирают подписчиков не более 10 тыс.

    • @ajdarseidzade688
      @ajdarseidzade688 5 лет назад +1

      @@VladimirMedintsev Не уходите пожалуйста :) Еще хотел сказать, что в этот раз у Вас, тьфу-тьфу не сглазить, вообще очень четкое и информационно наполненное (в смысле достаточно быстро говорили) видео вышло. У Вас вообще и до этого все видео очень и очень неплохие.

    • @VladimirMedintsev
      @VladimirMedintsev  5 лет назад

      @@ajdarseidzade688 Да блин это все по ночам делается, иногда просто не получается быстро говорить. Я для такого всем советую в настройках просто включить ускоренный просмотр видео. И отрегулировать скорость как кому нравится.

  • @alexeykondrashov2254
    @alexeykondrashov2254 5 лет назад +2

    Владимир, за библиотеку 3F 1.11 отдельное Спасибо.

  • @Антонаа-л9в
    @Антонаа-л9в 4 года назад

    Все видно спасибо делайте в куб пожалуйста

  • @dimonthik
    @dimonthik 7 месяцев назад +1

    Какой системной литературы много на эту тему? Я по стм32 нашел только какие-то слайдовые обзоры, как на презентации, много AN и похожей документации на сайте ST, но она написана для людей которые уже умеют программировать, я бы не сказал что такое подходит новичкам. Скажите название литературы которая относиться к системной на эту тему?

  • @user-jl7et8gx5u
    @user-jl7et8gx5u 5 лет назад +1

    Спасибо

  • @YuriyIY
    @YuriyIY 5 лет назад +3

    Делители в таймерах надо уменьшать на 1.Т.е., не 8000, а 7999. Не 1000, а 999. Тогда всё будет точно.

    • @VladimirMedintsev
      @VladimirMedintsev  5 лет назад +2

      Я и в массивах про нулевой элемент вспоминаю только когда отлаживать начинаю. А все потому что нету в наших домах нулевого этажа. Во всем правительство виновато.

    • @YuriyIY
      @YuriyIY 5 лет назад

      @@VladimirMedintsev Вот нигадяи, а. :-)

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

    Владимир спасибо. Подскажите stm32f4 два датчика темпераптуры (100к). Хочу делать по 6 замеров - > скидывать в буфер
    1раз в секунду по 6 непрерывных замеров (потом /6 = усредняю). делаю PID по вашему видео
    volatile uint16_t adc_buffer[6][2]; // [6 замеров] для [2х датчиков] через DMA, но без прерывания и таймера. Лучше инжекторный или ошибаюсь? и про настройку что за чем - PORT. DMA. ADC ?? (беру готовые примеры у всех по разному)

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

    в инжект каналах 4 дата регистров 4 канала можно настроить.И управление 4 шимами

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

    Можно монтировать видео во всяких SonyVegas, там можно довольно быстро увеличить нужный фрагмент, кроме того, можно записывать отдельный участок и у некоторых записывающих экран программ есть функция увеличения. Но это будет отнимать ваше время, к сожалению. Но самое главное это конечно нормальный монитор. Храни судьба тех людей, кому хватает одного монитора и тем более ноутбучного.

  • @Жизньспаяльником
    @Жизньспаяльником 3 года назад

    ПРИВЕТ! DAC к таймеру привязывать аналогично? мне нужно сделать отсчет от большего до нуля в течении времени.

  • @GrandMaster-f5b
    @GrandMaster-f5b 5 лет назад +1

    Здравствуйте, Владимир. С огромным интересом смотрю Ваш канал. Очень интересует вопрос создания электронных весов на базе STM32. Приобрел у китайцев на Али комплект (тензодатчик 10 кг + АЦП hx711) Нужно прикрутить эту связку к STM32, а результат вывести на обычный LCD1602. Но знаний катастрофически не хватает. Думаю такой проект заинтересовал бы многих Ваших подписчиков. Желательно в среде разработки CubeIDE.

    • @VladimirMedintsev
      @VladimirMedintsev  5 лет назад +3

      Благодарю вас за идею. Это я всегда с удовольствием. Но чтобы было интересно заниматься каким-то проектом нужно как минимум иметь все на столе, а тензодатчиков у меня нету. И микросхемки для них тоже.

  • @awwsum
    @awwsum 5 лет назад +1

    в даташите на stm32f0 написано, что макс. частота сэмплирования 1МГц. а в реальной жизни с 1000 замеров в секунду на двух каналах справится как думаете?

    • @VladimirMedintsev
      @VladimirMedintsev  5 лет назад

      Конечно справится. Куда она денется. Главное пнуть посильнее.

    • @awwsum
      @awwsum 5 лет назад +1

      @@VladimirMedintsev спасибо! будем значит пытать суперконденсатор импульсной зарядкой. видео про токовые мониторы как раз в тему пришлось.

  • @СергейСидиков-ь8ц
    @СергейСидиков-ь8ц 5 лет назад +1

    Дядь Вов, тебе и всем, можно стлинком работать хорошим шнуром, полметра, только в экране, в комплекте идет обычно см 15 шинка, 30 см сделал в экране, работает, хочу сейчас 50 см сделать, отпишусь о результатах

    • @VladimirMedintsev
      @VladimirMedintsev  5 лет назад

      Хорошая идея, спасибо огромное.

    • @СергейСидиков-ь8ц
      @СергейСидиков-ь8ц 5 лет назад +1

      @@VladimirMedintsev попробовал, метр работает, просто в экране без земли, кабель типа Мкэш в экране попробовал сейчас, работает

    • @VladimirMedintsev
      @VladimirMedintsev  5 лет назад

      Еще раз большое спасибо. Меня этот вопрос всегда интересовал.

    • @СергейСидиков-ь8ц
      @СергейСидиков-ь8ц 5 лет назад +1

      @@VladimirMedintsev дядь Вов, смотрю твои видео и учусь, только с Атмела на Стм перешел, это тебе спасибо за познавательное видео, делай еще 😉

    • @Alex-dc2jq
      @Alex-dc2jq 3 года назад

      я сделал шнур пол метра без экрана и норм вроде работает)

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

    Доброго времени суток. Владимир, какую литературу почитать по stm32?

    • @VladimirMedintsev
      @VladimirMedintsev  4 года назад +2

      Все интересное и необходимое на сайте st.com или вот тут я про хорошую книгу рассказывал ruclips.net/video/dSinwjV1vVQ/видео.html

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

    - пасиба за видео, дай Бог вам здоровья. Подскажите, у вас вначале крупным планом PCB-шка с энкодером, подскажите, какие есть хорошие и качественные энкодеры, с плавным хорошим ходом. Эти обычные дешевые китайские, они все какие-то деревянные, или туго идут или почти не чувствуется трещётки. Имею в виду, если вдруг вы знаете типы энкодеров, доступные к покупке на e-Bay или Ali-шке, такие как в измерительных приборах стоят. Спасибо.

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

      Покупка это всегда в каком-то роде лотерея. Нельзя сказать заранее что вот этот товар особо хорош. Я покупаю много и от партии к партии все сильно меняется.

  • @МихаилТиунов-с7д
    @МихаилТиунов-с7д 4 года назад

    Здравствуйте Владимир !!! Пересмотрел ещё раз видео про АЦП и имею ряд вопросов. Описание задачи: Я выбрал для своего устройства процессор STM32L151VDT6. Одна из причин - мне необходимо измерять сопротивление термопреобразователя Pt100 по четырехпроводной схеме. А у процессоров с буквой V (100 ног), помимо VDDA и VSSА есть еще на отдельных ногах VREF+ и VREF-. Ну и я рассуждал так - берем опорный резистор (200 Ом 25ppm) , подключаем его между REF+ и REF-, REF- на землю. Последовательно с опорным подключаем измеряемый резистор и верхний конец его запитываем от Vcc (оно же- VDDA). Т.е. Получаем цепь Vcc - Rизм - Rопорн-GND. По этой цепи течет ток и мы имеем падение напряжения на Rопорн - подаем его на REF+ и REF-, а также имеем падение напряжения на Rизм - подаем его на IN0 и IN1. И все красиво. Измеряем разницу между IN0 и IN1, относительно опоры REF+ и REF-. А вопрос вот в чем - могу ли я при этом измерить, например, напряжение опорного источника микропроцессора (Vrefint) для вычисления напряжения питания, например? Ведь опорой для АЦП теперь у меня будет не напряжение питания, а падение напряжения на опорном резисторе. На Nucleo мне эту ситуацию проработать не удалось. Зарание скажу - я развел на плате еще и AD7790 так что измерение термометра могу перенести туда. Но все, если бы можно было бы не паять AD7790 - всё ж комплектация будет дешевле.

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

      Если кратко то vrefint подключен к одному из каналов вашего АЦП, вы можете считать это значение. Смотрите в кубе.

    • @МихаилТиунов-с7д
      @МихаилТиунов-с7д 4 года назад

      @@VladimirMedintsev Как Vrefint считать я понимаю. Как вычислить напряжение питания не понимаю. Если бы у меня REF+ было бы подключено к питанию - тогда понятно. Вся шкала 4095 - это напряжение питания, код полученный с Vrefint - 1,224В. Пропорция. Но у меня REF+ подключен не к питанию, а к опорному резистору. И падение напряжения на нем будет меняться от температуры т.к. будет меняться сопротивление измеряемого термодатчика, а значи - и ток. Вот если бы можно было бы, например, программно переключать опору АЦП с REF+ на VDDA - тогда бы получилось бы.

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

      @@МихаилТиунов-с7д Простите, с мобильного в командировке комментарии второго уровня не видно. В референс мануале есть формула как это пересчитывать, я сейчас с мобильного устройства ее не найду.

    • @МихаилТиунов-с7д
      @МихаилТиунов-с7д 4 года назад +1

      @@VladimirMedintsev Спасибо Владимир! Собственно я сам допер. Но, часто так бывает, что решение проблемы приходит в тот момент, когда пытаешься объяснить её кому то другому. Так что - спасибо что вы есть!!!

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

      Ну, недостатки мобильной жизни и хронических командировок. Раньше ответить не мог, я догадывался что там есть комментарий, а панель управления каналом его не отображала.

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

    По поводу видеть на экранчке, там в настройках вроде есть font large. Все никак не складывается в голове, установил в настройках 4 ножки на АЦП, и как к каждой обращатся аля analogread на ардуино. Там какая то хитрая структура hadc

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

      Тут нет analogread это не ардуино.

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

      @@VladimirMedintsev как определить с какого канала из 4х получены значения без инжектирования и dma?

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

      Каналы перебираются последовательно в том порядке, в котором вы их настраиваете. Для этого есть регистры ADC_SQR1… ADC_SQR3. Считайте сколько раз опросили и узнаете какой сейчас. Если это не устраивает, то инжектируйте.

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

    Добрый день Владимир. Не читал все комментарии, был ли такой вопрос: можно ли запускать тайм-аут опроса АЦП (функция HAL_ADC_PollForConversion(...)) с большей скоростью, т.е. не в миллисекундах, а в микро или наносекундах? Ведь частота тактирования и преобразования АЦП не такие низкие...

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

      Есть много способов запустить преобразования с требуемой частотой. Посмотрите в сторону DMA.

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

    помогите с вопросом новичку) плата bluepill, затык на примере с прерыванием. сделал как на видео, но переменная val не меняется, хотя в отладчике во вкладке регистров SFRs регистр ADC-DR-DATA меняется корректно

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

      разобрался сам. частота МК и частота отладчика не совпадали. может коллеге-новичку пригодится данная информация

  • @ВасильМучичка-э1р
    @ВасильМучичка-э1р 5 лет назад

    Добрий вечер, а можно ли скачять куб без регистрации. У мене не получаетса зарегистрироватса на "ст.ком"

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

    Добрый вечер! Обновление с версией 1.11.1 глючное только для STM32F3? Для других оно нормально? У меня STM32F0.

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

      Я проверял только на F3 и мы сразу всей компанией откатились в ожидании.

  • @ДенисБердяев
    @ДенисБердяев 2 года назад

    Подскажите пожалуйста, с АЦП приходят какие-то "средние" значения если на пинах ничего нет, я ожидал увидеть там ноль или как у вас минимальные, по факту там от 1000 до 2000, если замыкаю на 3V то все нормально, отображает ~4000

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

      Это нормально.

    • @ДенисБердяев
      @ДенисБердяев 2 года назад

      @@VladimirMedintsev нет ли в таком случае возможности как то это регулировать, тоесть изменение напряжения почувствовать получается, а как быть с обрывом линии? Неужели только дополнительными элементами схемотехникой?

  • @МихаилТиунов-с7д

    Столкнулся с очередной проблемой. Связана она с тем, что я вынужден на одном устройстве заменить микроконтроллер с STM32L431RCT6 (который убило разницей потенциалов между землями, я об этом писал) на STM32F030R8T6, который оказался под рукой. По ногам всё совпало, программу перетащил. Единственная проблема - у F030 нет инжектированых каналов АЦП. Соответственно - надо переключать каналы самому на лету. У меня их 3 - IN0, IN1, Vref. делаю вот как
    if (FL_StatusFlags & ADC_Vref_Status) {
    FL_StatusFlags &=~ ADC_Vref_Status;
    ADC_Vref += HAL_ADC_GetValue(&hadc); // Считываем код ADC_Vref
    HAL_ADC_Stop_IT(&hadc); //Останавливаем
    adsConfig.Channel = ADC_CHANNEL_0; // Устанавливаем канал
    adsConfig.Rank = ADC_RANK_CHANNEL_NUMBER;
    adsConfig.SamplingTime = ADC_SAMPLETIME_13CYCLES_5;
    HAL_ADC_ConfigChannel(&hadc, &adsConfig); //Сонфигурируем АЦП
    FL_StatusFlags |= ADC_CH0_Status; //Ставим флаг что запустили канал IN0
    HAL_ADC_Start_IT(&hadc);
    }
    На всех каналах возвращает одно и тоже число. Если начинаю с Vref - то это будет Vref. Если начинаю с IN0 - то это будет IN0 и т.д. Не приходилось такое делать ?

    • @alexeyjilinsky5926
      @alexeyjilinsky5926 10 месяцев назад

      вот что говорит первоисточник: It is also mandatory to use the ADC peripheral in DMA mode when we want to perform conversions
      of multiple channels using scan mode. Это Ваш случай

    • @МихаилТиунов-с7д
      @МихаилТиунов-с7д 10 месяцев назад

      @@alexeyjilinsky5926 Ок. Спасибо

  • @ЮрийКильдюшкин-к2к
    @ЮрийКильдюшкин-к2к 3 года назад

    Владимир, а приходилось ли Вам использовать встроенный датчик температуры контроллера?

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

      Приходилось, а что такого в нем необычного?

    • @ЮрийКильдюшкин-к2к
      @ЮрийКильдюшкин-к2к 3 года назад

      @@VladimirMedintsev Да что-то не получается у меня с пересчётом показаний. Имеется ли какая-нибудь библиотека для него? И как производится калибровка, ведь он имеет довольно большую абсолютную погрешность?

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

      @@ЮрийКильдюшкин-к2к нет, никакой библиотеки для этого не требуется. Если у вас не получается прочитать значения с этого датчика, значит вы не разобрались с АЦП. Надо знания подтянуть. Ну а погрешность да, там особой точности нет, о чем и сказано в даташите.

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

    А как мне замедлить значение что бы цифры не менялись быстро.?на дисплее?

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

      Фильтрация лучший выход.

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

      @@VladimirMedintsev Программная или аппаратная?.Ну допустим у меня есть датчик тока .Ток меняется мгновенно. На дисплее мы значения не увидим как нужно.А мне для срабатывания нужны мгновенные значения.Если программная .То можете ссылку ?

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

    А откуда вы узнали что то или иное так. Почему таймер4й а не 7й... Есть какие то первоисточники?

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

      Да, есть. Этот первоисточник называется Reference Manual. Он доступен на сайте производителя микроконтроллеров. Вы можете его абсолютно свободно скачать и изучить.

  • @fly8r358
    @fly8r358 5 лет назад +1

    На злобу дня хотел спросить. Недавно обновил CubeIDE до версии 1.1.0. Она потребовала обновить прошивку отладчика до версии 34 и все... Теперь отладчик отказывается работать с CubeIDE. Пишет что не может проверить ST-линк девайс. А утилитой флешера все нормально прошивается. Кто нибудь с этим столкнулся уже? Или я один такой счастливчик? С кейлом еще не пробовал если что.

    • @VladimirMedintsev
      @VladimirMedintsev  5 лет назад

      Там в настройках отладчика есть 3 варианта устройства. Я далеко от компьютера не подскажу название. Выберите устройство следующее за segger. У меня глючило пока там не пошурудил.

    • @fly8r358
      @fly8r358 5 лет назад

      @@VladimirMedintsev Я так понимаю речь об openocd? Он тоже ругается с текстом: UNEXPECTED idcode: 0x2ba01477 . Я очень сильно подозреваю, что индусы впилили проверку на валидность самого отлдачика и без "правильного" серийного номера, оно работать не захочет...

    • @VladimirMedintsev
      @VladimirMedintsev  5 лет назад +1

      Т.е. я так понимаю вы до самого конца ролик досмотрели и увидели мое ворчание по поводу обновления...

    • @fly8r358
      @fly8r358 5 лет назад

      @@VladimirMedintsev nfo : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
      adapter speed: 8000 kHz
      adapter_nsrst_delay: 100
      Info : Listening on port 6666 for tcl connections
      Info : Listening on port 4444 for telnet connections
      Info : clock speed 8000 kHz
      Info : STLINK v2 JTAG v34 API v2 SWIM v7 VID 0x0483 PID 0x3748
      Info : using stlink api v2
      Info : Target voltage: 3.232783
      Info : Unable to match requested speed 8000 kHz, using 4000 kHz
      Info : Stlink adapter speed set to 4000 kHz
      Warn : UNEXPECTED idcode: 0x2ba01477
      Error: expected 1 of 1: 0x1ba01477

    • @fly8r358
      @fly8r358 5 лет назад

      @@VladimirMedintsev нет, я пока еще в процессе просмотра =) Спасибо, кстати, за видео. Познавательно.

  • @ivanrusev2270
    @ivanrusev2270 5 лет назад +1

    А можно писать в регисрах.

    • @VladimirMedintsev
      @VladimirMedintsev  5 лет назад +1

      Можно, никто не возражает. Если вам удобнее пишите в регистрах.

    • @ivanrusev2270
      @ivanrusev2270 5 лет назад

      @@VladimirMedintsevвы можете ответить на два вопроса? 1 какой компелятор лчше использовать.И почему нельзя обойтись без куба кортекс м3 стм32 получается почти всё начинаю с кортекс м4 прерывание по тамеру -ноль ацп -ноль. в ацп я согласен не все регистры похожы в таймерах один в один только 2 и 5 32 битный cmsis лучше но информации и примеров на кортексе 4 и дальше почти нет а если и есть то не правельная это не авр

    • @VladimirMedintsev
      @VladimirMedintsev  5 лет назад +2

      @@ivanrusev2270 Да, пожалуйста:
      1. В принципе для начинающего нет разницы какой конкретно компилятор использовать. У них, разумеется есть отличия, но для начинающих эти отличия не играют никакой роли. Ну а если серьезно, то мне не очень нравится код создаваемый GCC, хотя это придирки.
      2. Без куба обойтись можно, но не имеет смысла. С использованием куба повышается производительность труда. Там реально за несколько минут получить готовый проект который нормально собирается и компилируется, а потом его (при необходимости) можно оптимизировать. Если это необходимо. А без использования куба время сборки заготовки для проекта возрастает в разы и риск ошибок также. Т.е. все дело в целесообразности.

    • @ivanrusev2270
      @ivanrusev2270 5 лет назад

      @@VladimirMedintsev получается что на cmsis нет смысла тратить время я 4 года програмировал avr учился и всё на смарку тут столько регистров но самое главное что нет примеров на другие кортексы

    • @VladimirMedintsev
      @VladimirMedintsev  5 лет назад +2

      @@ivanrusev2270 Все немного не так как вы себе это нарисовали. Давайте немного по другому.
      Что все ждут от программиста МК? Разумеется работающего кода и этот код нужен не через год, он нужен завтра. Т.к. продукт надо продавать. Для ускорения разработки созданы специальные инструменты. Один из которых STM32CubeMX он позволяет за считанные минуты создать под-основу будущего проекта, грамотно подключить необходимые библиотеки, настроить периферию микроконтроллера, настроить тактирование и сформировать проект под выбранную вами IDE. Это реально хорошо экономит время и это реально работает.
      Далее программист должен написать код и "оживить" устройство. При этом он может использовать библиотеку HAL или LL в зависимости от того, какой уровень ему необходим. Этого вполне достаточно чтобы написать хороший и работающий проект. Однако, бывают ситуации, когда требуется опуститься на самый низкий уровень. В этом случае надо помнить, что библиотека CMSIS уже (всегда) подключена к проекту и вы в любой момент можете ее использовать. Т.е. просто взять и начать использовать данные там определения.
      По поводу "все на смарку" ну если вы так реально считаете, то видимо ничему за 4 года так и не научились. Потому, что главное это четко понимать написанное на языке Си, если это есть, то освоение какой-либо библиотеки это всего-лишь просмотреть ее код, найти интересующие вас функции и их попробовать.
      По поводу того "нет примеров на другие кортексы" вы наверное издеваетесь? Вместе с STM32CubeMX вам разработчик дает СОТНИ примеров на всю доступную периферию, прочитать, взять куски кода и использовать.

  • @ibrag2012
    @ibrag2012 5 лет назад +1

    Замислився: не знаю чим регістри в адресному просторі пам'яті відрізняються від DMA (буду розбиратися, дякую за натяк).

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

      Изначально DMA означало передачу данных не процом, а отдельным контроллером.

  • @igor0242
    @igor0242 5 лет назад

    Почему нельзя в 4К писать видосы, ну или в 2К? Судя по паршивому качество предположу, что видос писался в 720.

    • @VladimirMedintsev
      @VladimirMedintsev  5 лет назад +1

      Видос писался в HD качестве. А писать в 2 или 4К у меня нет возможности. Я делаю это на ноутбуке возрастом в 6 лет.

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

      и смысл писать это в 2к? не все же смотрят это на диагонали 1,5м телевизоре... а представляете что получится с этим видео на мобильном телефоне? - Ютюб на столько ухудшит качество что при 720 буквы превратятся в мутные пятнышки

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

      @@highvolthome Да ладно, что там ухудшится, каждый выберет в настройках нужное разрешение, хотя больше чем full hd, для записи с экрана. смысла нет.

  • @alexroman6246
    @alexroman6246 5 лет назад

    забейте на куб иде. Зачем он вообще нужен если есть keil.

    • @VladimirMedintsev
      @VladimirMedintsev  5 лет назад +1

      Ну как минимум не нарушать законодательство. Для дома и для семьи можно использовать что угодно, а с определенного уровня приходится задумываться и о лицензиях. Также, иногда это бывает требованием заказчика к коду, чтобы все было лицензионненько. В моей практике было что заказчик (ну правда не Российский) просил подтвердить лицензионную чистоту автокада.

    • @alexroman6246
      @alexroman6246 5 лет назад

      @@VladimirMedintsev мне кажется с определенного уровня уже не стоит вопрос в лицензии - если проект "взрослый" и особенно если это военка, то тем более. В целом насчет законодательства согласен. но с другой стороны на этом канале контент воспринимается как образовательный и лично я привык к подаче в кейл, поскольку сам в нем работаю. Но безусловно cube ide понравился черной темой) я вообще ненавижу белые темы, от них глаза устают. В целом мне кажется кейл не стоит тех денег которые за него хотят. Вот если бы в Visual studio прикрутили С с intellisens-ом и возможностью прямо из оболочки так же отлаживать мк-она бы стоила 4к евро, но не кейл.

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

      Уважаемый ты удивишься но попробуй вбить stm32 visual studio. Там есть плагин VisualGDB лицензия дешевая, ителисцайнс о да просто песня с середины команду набираешь и все круто. Но на работе заставляют мучатся в CubeIDE лицензионненько хотять.

  • @1975nacgul
    @1975nacgul 7 месяцев назад

    Hal это зло

    • @VladimirMedintsev
      @VladimirMedintsev  7 месяцев назад +2

      Доказать сумеете?

    • @1975nacgul
      @1975nacgul 7 месяцев назад

      @@VladimirMedintsev 1. Если какие проблемы ниже уровнях hal, ты подвиснешь изучая все уровни, т.к и не знаешь как это работет и какие регистры и за что отвечает. Это что то типа ардуино.. Я бы такого программиста не взял на работу.

    • @Andrey_Yartsev
      @Andrey_Yartsev 7 месяцев назад

      @@1975nacgul прям потеря века :)