STM32. Начало. Часть 2. Какую отладку взять? Какую библиотеку использовать,HAL или CMSIS? Напишем ПО
Вставка
- Опубліковано 17 вер 2021
- Видео как для начинающих так и для тех кто уже изучает МК. Поможет ответить на повседневные вопросы, с чего начать изучение микроконтроллеров. В продолжении серии рассмотрим, какую отладочную плату выбрать, а лучше несколько. На какой библиотеке начать изучение STM32 и напишем первую свою программу, буквально, 2-мя строчками кода начнем работать с периферией на отладочной плате STM32, посмотрим как это быстро и просто получается!
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Станьте спонсором канала, и вы получите доступ к эксклюзивным бонусам. Подробнее:
www.patreon.com/user?u=597690...
/ @nrelectronics
или через Яндекс-деньги:
money.yandex.ru/to/4100115727...
00:00 - Вступление;
02:14 - STM32 F407G Discovery, в качестве первой отладочной платы;
06:00 - NUCLEO F103rb, в качестве более дешёвой отладки(у меня такая);
09:55 - Риски связанные с использованием Китайской платы "BluePill" в качестве первой отладки;
11:55 - Почему лучше использовать nucleo в качестве первой отладки чем bluepill;
13:30 - Ещё несколько вариантов отладочных плат;
16:44 - Какую библиотеку использовать, Hal или Cmsis?;
18:37 - Что такое библиотека Hal?;
21:55 - Пример работы с Hal в CubeMx;
благодарю! закрепил сообщение
@@NRelectronics И я вас! Большое дело делаете, честно, передача знаний другим это круто))
@@NRelectronics Добавьте в описание в видео будет таймкоды
Пока закрепил данное сообщение с кодами, первым будет.
Спасибо за такие слова!
Огромное спасибо за Ваш труд. Вы делитесь бесценной информацией.
Спасибо. Не все это к сожалению понимают.
Спасибо! Будем ждать продолжения!
Спасибо!
Спасибо за продолжение!
пожалуйста!
Добрый вечер! Спасибо за очередной урок для начинающих! Ждем новые. С ув. к Вам!
Вечер добрый. Новое в продолжение будет попозже, основные вопросы разобраны, нужно новые накопить.
Великолепно. Спасибо большое
😎🆒
Классная серия роликов получится, купил плату NUCLEO 64, с нетерпением жду следующего ролика
Спасибо. По мере наличия времени и полезных идей.
Спасибо, все круто!
Единственный момент, что повышение уровня абстракции это логичный путь развития средств создания микропроцессорных систем. То есть именно туда нужно идти, а не наоборот. Код не придется переписывать для оптимизации, количество памяти и частоты ядер растут пропорционально.
Сейчас везде, в том числе для ПЛИС идет направление на повышение абстракции и на смену например VHDL/Varilog приходит все тот же C++, хотя казалось бы как он на ПЛИС вообще ложиться.
Конечно, кроме основного средства разработки всегда лучше иметь в "дальнем кармане" еще запасной инструмент вроде CMSIS/ASM, который может быть использован в некоторых случаях как инструмент тонкой работы.
ну в плис с С++ там все очень неоднозначно, и его я бы не рекомендовал...
@@NRelectronics Вот поэтому и я и Вы потихоньку останемся реликтом не переходя на ООП, как в свое время стали разработчики на asm-е.
Для малых задач использование высокоуровневых языков конечно смысла особо не имеет, но с повышением сложности проектов это лишь дело времени когда high-level synthesis станет общепринятым, а нас будут вспоминать как устаревших программистов.
Например Xilinx продвигает Vitis HLS (C/C++), основная идея, что при увеличении проекта до некоторых критичных размеров им становиться крайне сложно управлять при малом уровне абстракции.
@@TDMLab для плис ооп в systemverilog конечно желателен, другое дело, что использования с++ для плис вопрос очень спорный, даже более спорный чем в МК. Поэтому Си для МК останется стандартом де-факто ещё долго, пока наверное только rust не подрастет. Для плис это все же vhdl2019 и systemverilog.
@@qwwq8201 В чем спор этого вопроса? Это как спорить про assembler для МК находясь в 1996г. тогда да, это стандарт, но прошло 20 лет и все, нет перспектив, так же как и у расширений verilog-а. Для МК в 2021-ом C++ все равно подтянется в проект вместе с библиотеками графики, САУ или прочего, на что не захочется тратить время на написание с нуля. Для ПЛИС это новый тренд, но так же имеющий прочное основание если мы говорим хотя бы на 10 лет вперед.
Я также согласен с автором выше. Плюсы это инструмент, и его нужно правильно готовить для МК, без оверхеда и прочих потерь. Для графики норм, но там МК сами по себе высокопроизводительные, там и Python уже можно. Для плис только SW. Он и так ооп и строготип.
Спасибо большое !
Пожалуйста, заходите чаще.
Спасибо Николай, смотрим с племянником, пусть учиться))
конечно пусть, приучайте!
Вот прям самое то, для начинающих! 👍 Но есть убедительная просьба к аффтару: не трясите платами на экране, не вертите туда-сюда быстро, и не стучите пальцем по плате! На полный экран, при большом мониторе, и на повышенной скорости просмотра реально начинает укачивать! 🤢 А в остальном - всё годно, вот только уровень громкости поднять не помешает, уж больно большая разница между роликом и рекламой! 👍😁🤪
Хорошо, не буду подтряхивать платы 😁👍🤳 а не включайте повышенную скорость)) громкость наболтаем!
@@NRelectronics Фишка в том, что интересные ролики выходят, почему то, 🤔 у всех сразу, и что бы всё это богатство пересмотреть, приходится "газовать на повышенной скорости"! 👍😁🤪
Примеры есть на st. com, можно залить в CubeMX.
На счет программаитора, конечно стоит сразу купить нормальное отладочное средство и не мучаться потом.
@@NRelectronics Кстати если не ошибаюсь black pil можно прошивать через USB?
Да, можно через USB по DFU прошивать.
Отличный курс! Как раз решил для себя, что-то новое открыть. Заказал уже Black Pill на stm32f411ceu6 и макетку, т.к. опыт в электронике есть. Да и более экономный комплект вышел.
А почему был выбран keil, а stmcubeibe? Какая ide, всё же лучше?
О том какая лучше поговорим в продолжении видео ;)
С 411 в Кейле если только нелегально, ещё наверно потому что Куб сравнительно недавно прокачали, он тормозной, т.к. это по сути Эклипс с кучей плагинов, но работу свою он выполняет, в нём всё есть, кроме поддержки левых отладчиков и поддельных МК. За время разработки приходится много раз перегенерить проект, но наверно дело привычки
Нужен ли осцилограф для углубленного проектирования драйверов? Присматриваюсь к FNIRSI-1014D. И частоты я так посмотрел там(драйверов) до 300kHz.
Как вам сказать, осциллограф желателен всегда, это глаза разработчика и программиста. Тут смотрите по своему карману, чем дороже выше полоса пропускания тем лучше...
Спасибо)
Пожалуйста)
доброго. f407vgt6 плату уже видимо не достать (по крайней мере в моём регионе).
- что взять аналогичное? (мб f411vet6)
- или, мб, посоветуете плату получше, для новичка, который не стеснён в средствах?
Благодарю.
Доброго.
Из бюджетного, с нашими ценами правда по доллару, это только Blue Pill и BlackPill.
TogglePin при задержке в 1 секунду даёт два герца, а не один герц, как вы сказали.
Есть ли какие книги для новичков по STM32 с той же библиотекай HAL ?
К сожалению нет...
STM 32 f4 из видео актуальна до сих пор? имеет смысл её покупаться сейчас
Да, актуальнв, вполне. Особенно плата Дискавери их.
Какая разница между филосовиєй плат nucleo и discovery?
Nucleo - отсутствие переферии, но полноценный отладчик/программатор. Discovery - плюс к тому же что у нуклео и плюс вся минимальная необходимая переферия.
Я начинающий, и я по своему опыту скажу, начинать с хал прикольно, но на самом деле лучше начать с LL, по крайней мере есть генерация инит в кубе, а все функции достаточно понятны и их легко проследить до регистров. Если начать с хал, простые вещи получаются, это радует, но если что-то не работает, то фиг разберёшься, а если лезть в библиотеку там паника, куча структур, функций которые прячут сами регистры так, что отпадает всякое желание отслеживать где что есть. В любом случае придётся ковыряться в регистрах и лучше начать это с простых оберток, чем и является LL.
LL тоже хорошо. Но она не описывают всю переферию МК. HAL описывает всю. Я только изначально этого.
@@NRelectronics да и справочника маловато. LL как-то ни туда ни сюда, по нему мне помогли только примеры от отладок, которые в папочке лежат. Откуда узнать, что можно и нужно сделать проверку раскачки кварца, если в сгенеренном кубом коде её упустили (в отличие от HAL), и в то же время в рефмане скорее всего упомянуто как это сделать на регистрах.
Для начала лучше брать нуклео или самые мелкие блюпил, т.к если вы пытаетесь перейти на стм после работы с 8битными контроллерами, есть вероятность, что зайдёт вам это стм хозяйство не с первого раза.)
С нуклео меньше проблем будет с микронтроллером и программатором.
@@NRelectronics ну это да. По деньгам все равно блюпил дешевле. Да и поначалу не заморачиваешься с внутресхемной отладкой. Тут главное понять подход в создании проекта, чо где лежит и сама структура написания программы, особенно после ардуино подобных сред да и вообще 8 битных AVR или Pic.
Да сейчас по цене с блюпилом сравнимо уже Raspberry Pico Pi, и программатор ему даже не нужен, как для блюпила.
Я сразу начал cmsis.Полгода не знал с чего начинать.
За полгода уже бы себе хал прокачали...
Материал отличный. Спасибо за уроки. Но я чето не пойму. Чтобы поморгать диодом нужно написать "всего" пару строк. А кто написал остальные 400? В чем легкость?
Спасибо Вам. Пред настройки, библиотеки не запрещено использовать. Лёгкость в этих пару строках.
@@NRelectronics спасибо за ответ. Просто я начал с авр и пресловутой ардуины. Мне было тогда 39 лет. Щас уже почти 43. Но я не особо продвинулся в ПОНИМАНИИ работы самого процессора. Сейчас только планирую переходить на "голый" камень. Пока что для моих задач хватает атмеги 168 и 328. Но понимаю, что нужно развиваться и изучать МК разных архитектур. Еще бы очень хотелось уроки по Нувотону. Вся простая электроника(термометры, терморегуляторы и пр) работают на них. Я так понимаю, что это +/- клон стм 8? Так же всегда поражали и удивляли люди, которые на аттини 13 могут собирать серьезные(для этого МК) штуки. Такое ведь не написать с помощью библиотек? Там нужно программировать "напрямую" , выбирая только то, что нужно именно под задачу, а не базовый набор лишнего кода. В общем получился сумбур и вопросов целая куча....Наверно, самый главный вопрос, где можно научиться программированию МК? Может есть какие курсы или еще что то?
Вам прямо сильно напрашивается моя книга по изучению STM32. Я её рекомендую вам, больше ничего.
@@NRelectronics в нашей ситуации , скорее всего, это невозможно. Даже если Вы и дадите ссылку на книгу, я не смогу Вам заплатить за нее. Потому, что из Украины.
Эх как жалко а... Да, и выслать не смогу...
Да уж, доски от st сильно подросли в цене, так-же как и чипы. Но мысль в правильном направлении - жирная отладка на старшем камне даёт буст на много лет вперёд. Доска не может дать быструю прибыль, у вас не получится заработать на ней в любом случае. Потому как в любом случае придётся делать свою печатную плату, наверное на другом камне.
Но с другой стороны, без начального обучения невозможно создать свой дизайн без ошибок.
Согласен, более полная плата дает больше возможностей сразу в начале на этапе старта и развития. Многие к сожалению смотрят на ценник, т.к. это больное место у всех, но в итоге докупая периферию отдельно мы и так приходим к этим тратам. Поэтому мой выбор это минимум Discoivery, а лучше конечно Evalution.
Про отладку что-то будет?
Про отладки что-то есть)
Мигать светодиод в Вашей программе будет с частотой 0.5Гц, а не 1 Гц. А так для начинающих то, что надо.
Да это уже много раз обсудили, вы опоздали)))
@@NRelectronics Какая жалость. Факир был пьян, фокус не удался.
Лучше бы что полезнее написали/предложили)))
@@NRelectronics Предложение? Это можно. Уроки по С++ для начинающих эмбедщиков.
Такого везде навалом...
Can you put english Subtitle on your Video? Thanks
Ok.
Платы в ЧиД раскупили не потому что они стали внезапно популярными, а потому что чипы пропали из продажи, и платы покупали чтобы просто выпаять МК с них и использовать на производстве.
И в этом деле тоже. Чипы отдельно получались в разы дороже всей отладки 😂
вот и я думаю, CMSIS это для себя можно написать какую то программу.
а если где то работать, то твое время стоит бешеных денег. по этому нужно учить HAL ..
Тут может быть по разному, как принято в той или иной конторе.
Как раз наоборот. Если что-то побыстрому проверить на коленке, то HAL. Если разрабатывать серийное устройство, то поберегите нервы и время и напишите нормальный драйвер на CMSIS
Ну, сейчас я не могу купить даже стм8 который стоил год назад 27р. Он на чипе появляется раз в месяц, по 350р и сразу улетают
цены сейчас почти на все поднялись, такая жизнь...
Сейчас с ценами вообще беспорядок.
На днях решил докупить платки на STM32. Дак на STM32F103 стоят дороже в два раза(!), чем на STM32F401. Ну, заказал последние, F4 получше.
Почему все кивают на цену камней? Вы же не создаете устройство для серийного производства. Готовое устройство это куча ушедшего времени на написание и отладку программы, затраты на корпус и другие электронные компоненты, затраты на изготовление печатной платы.
Громко музыка тихо звук.
ок
@@NRelectronics Отличная подача материала. Спасибо! Но вот со звуком - беда. Увеличьте пожалуйста уровень, хотя бы процентов на 20.
Самое сложное.Тактирование наладить правильно.
По примеру схемы в кубогенераторе это совсем не сложно.
STM32 уже все... С их текущими ценами и сроками поставок - бесперспективное направление. Вот бы увидеть профессиональный разбор ESP32, а то ардуинщики захламили вес интернет по этой теме.
Цены ужасны, даже Миландр теперь дешевле. Попробую сделать по esp32 обзор. Ардуины в интернете подавляющее большинство, она же простая, в дебри настроек лезть не надо, оптимизацию делать не надо, работает ведь)))
@@NRelectronics Тогда уж Nuvoton, т.к. новичкам свою отладку на ESP без JLCPCB и фена не сделать (+ защитный экран), ESP32 не гарантирует своё существование в дальнейшем (ST подписались на 10 лет, но F1 уже старше, серьезные ребята используют ESP-01 чисто для WiFi) и имеется только в одном корпусе (пинов мало), для примитивной включалки жирно (когда можно взять L0/G0)
@@NRelectronics Только пожалуйста не делайте очередной обзор среды ESP-IDF или как залить прошивку, этого везде полно, да у espresssif отличная документация по старту работы.
Интересно было бы увидеть анализ работы на реальном проекте, с одновременным Ethernet/Wifi, секьюрным удаленным обновлением прошивки ("OTA"), анализ потребления WiFi в минимальном режиме (например, передача HTTP запроса раз в 1 мин, остальное время - hibernate), реализация софтового USB HID и прочие фишки, нужные для написания своей прошивки, а не использования готовых бинарников.
@@NRelectronics Миландр - это тоже путь в никуда. Если вдруг ваш проект глобализуется и вы захотите передать производство например в Китай, где они там возьмут это миландр?
Табличным сравнением попробую.
Пользование HAL с самого начала означает примерно то, что и пользование ардуино. Человек никогда не захочет понять как работает контроллер. REAL-time проекты, не уверен, что пишутся на HAL. Я никому бы не советовал в самом начале постижения STM32 - HAL/
Тут есть маленькая хитрость. HAL, со временем сам начнет заставлять разбираться в своих патрахах)) Для Real-time конечно, нужен CMSIS. Но это потом. Тут надо сначала заинтересовать человека, не отбить желание программировать МК, а то опять уйдет в какой нибудь питон.
У меня наоборот было. Начал с ардуины и не знал как работает ключ с оптроном. Не хватило возможностей, затем stm32duino, потом дивился, почему на HAL не могли сделать AnalogRead, теперь не могу использовать AnalogRead, ведь там такая портянка оказывается под ним, что не всё можно сделать. Теперь делаю свои отладки с периферией, т.к. китайские неудобны. Сейчас на HAL, и если надо будет оптимизировать узкие места или уместить в 16Кб флеша ради интереса, смотрю в LL, а под LL сразу регистры. Много лет назад хотел разрабатывать на MASM (инета и других средств не было), но я в него въехать смог только спустя время, как покодил на Delphi с использованием WinAPI, т.е. все-таки общую картину для начала лучше представлять. И потом мне университетского курса по процам x86 хватило для понимания на уровне железа и ядра, т.к. МК намного проще. Но я любитель и профессиональным эмбеддером быть не планирую.
@@NRelectronics Вы правы. Если что-то пойдет не так, то человеку придется разбираться , а какие такие регистры существует и какие значения в них записывает та или иная функция HAL/
Жизнь заставит разбираться ;)
Głos cichy. Popraw to.
ок
-Как повторить успех молодоженов, которых перевез к себе Интел? Ответ - НИКАК.
Можно, почему нет? ;)
@@NRelectronics ну если только задрчть ПЛИС и тогда лет через 10, то может, но с 95% вероятностью этого не произойдет. По итогу, те кто это понимает, просто удаляю квартус с компа, открывают курсы по Java и через пару тройку лет имею почти такой же доход. 10 против 3 = Профит. Сейчас уже складывается тенденция, если обучение чему-то займет больше 1-2 года, то от такой идеи стоит просто сразу отказать и не тратить время. Не, ну если только человек не geek-здрт.
К сожалению, с вами согласен...
99% всех "советчиков" пытаются впарить "только cmsis", "только ассемблер ". Полный бред, пару программ простейших написать на регистрах и хватит! Во всех компаниях пишут используя библиотеки, это быстрее намного, т.е. люди сосредоточены на результат (продукт). А когда библиотека где-то тупит вот тогда можно копнуть до уровня регистров и референс мануала, а это грубо говоря не чаще чем 1% из всего программирования
Да тут советовали уже и ассемблер с Паскалем и плюсами и чего только не было... Оптимально конечно свои библиотеки писать, но сначала это сложнее, потом норм.
Просто есть перфекционисты)
"т.е. -люди- кабанчики сосредоточены на -результат- быстром получении капустки. А дальше - хоть потоп."
Пофиксил.
"А когда библиотека где-то тупит..."
эээ, всегда и везде?
Sergey Mih Основной момент в использовании библиотек это общее понимание что ты делаешь. Можно использовать std::vector последнего стандарта на C++ но не знать как он выделяет память и какие есть слабые места в его реализации.
Когда Ваш HAL, написанный в индии, затупит на промышленном изделии, то будет весело.
Дизлайк.
1. "Если вы новичок..., то однозначно HAL и только HAL" - это подход из разряда ардуины, выращивающий дилетантов. Если человек, начиная освоение МК, например, вместо HAL_ToggleBit(..) не способен вкурить как с помощью маски/сдвига поксорить нужный регистр, то к чему вообще такие разработчики в данной сфере?
2. "Когда придет понимание..., стоит оптимизировать написанный(!) код на CMSIS" - спасибо(sarcasm), что со старта учите людей подходу "х*як-х*як и в продакшен, а потом уж разберемся (и то, если прижмет)". Это неплохо характеризует Вас как разработчика/преподавателя. Уж простите.
Мотив серии видео вы так и не поняли... Жалко. Пускай висит коммент.
@@NRelectronics дело не в мотивах всей серии, а в двух конкретных рекомендациях в конкретном видео. Я объяснил почему эти два совета из разряда, мягко говоря, вредных. И совершенно некорректно оправдывать их боязнью отбить интерес у начинающих.
Вы ошиблись или каналом или языком. Кто сразу в продакшен пуляет? И мне тут суете "мои некорректные оправдания"? Пишите на асме? Хрена?)) Мне ваша характеристика не требуется, абсолютно.
@@NRelectronics пошла демагогия...
Вот и не надо на моем канале заниматься разложением программистов и уход их в питон)))