ivpoed

С чего лучше начать по stm32 при переходе с Ардуино

37 сообщений в этой теме

ivpoed    1

Здравствуйте

Посоветуйте, с чего лучше начать при переходе с Arduino на STM32?

Есть желание проектировать несложные устройства и выпускать их. С STM32 до этого дела не имел, в Ардуино собаку съел.

Хочется побольше готовых библиотек + удобную отладочную (discovery? nucleo?) + удобную IDE.

Заранее спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Быстрый заказ печатных плат

Полный цикл производства PCB по низким ценам!

  • x
    мм
Заказать Получить купон на $5.00
Andras    18

Я бы посоветовал KEIL uVision5+STM32Cube(как предварительный настройщик периферии и портов), ну и изучение Си и написание простых библиотечек для себя, ибо на дуине все попрятано и перегружено избыточным кодом.

Плата, подойдет любая, я взял самую дешевую на stm32f103c8t6( на али полно), и обязательно отладчик-программатор   ST Link, на все про все рублей 300 хватит.

По урокам, на ютюбе смотри товарища narod stream.

Вот.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@ivpoed  https://www.chipdip.ru/product/stm32f0discovery стоит косарь, программатор на борту. 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Andras    18

ST Link V2, вот такого плана мне предостаточно

вот такой

Прошивка, питание от USB и пошаговая онлайн отладка есть, больше ничего и не требуется.

цена рублей 130 на али

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
andryxa    217

Дорого, возьмите для начала что-то типа такого https://arduino-ua.com/prod1328-plata-razrabotchika-stm32f103c8t6-arm-stm32-minimalnaya-konfigyraciya Не дорогой,и контроллер на плате стоит популярный, под который масса примеров и проектов в сети.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
dosikus    5
Цитата

Есть желание проектировать несложные устройства и выпускать их. С STM32 до этого дела не имел, в Ардуино собаку съел.

Забыть о своем "плодотворном опыте" на аурдунье раз и навсегда.

Прерогатива, как аурдуньи в частности так и  avr в общем - в софтовом ногодрыге , в то время как STM32  позволяет создавать недорогие полностью аппаратные решения.

И для этого не нужны готовые библиотеки. И тем более кухаркины статьи, подобные "товарища narod stream" , что учат сами ни черта не зная и не умея.

Как и писал здесь ранее - для квик старта достаточно иметь F0 в TSSOP20 корпусе , плату адаптер TSSOP -DIP.

Для более комфортного вхождения нужен JLINK , который можно самостоятельно изготовить из F103 или F072 или любого набортного STLink v2 или китайского огрызка STlink v2 . Так же крайне желательно иметь логический анализатор.

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

Использование калокуба и SPL при изучении сведет на нет всю прелесть STM32 и в итоге получится та же самая ардунья... 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Electric_84    8
В ‎17‎.‎04‎.‎2017 в 07:20, dosikus сказал:

Использование калокуба и SPL при изучении сведет на нет всю прелесть STM32

а что посоветуете вместо "калокуба и SPL"?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
E_C_C    52
В 17.04.2017 в 14:20, dosikus сказал:

Как и писал здесь ранее - для квик старта достаточно иметь F0 в TSSOP20 корпусе , плату адаптер TSSOP -DIP

так еще же нужен программатор ?  или я что то не понимаю ?

В 17.04.2017 в 14:20, dosikus сказал:

STM32  позволяет создавать недорогие полностью аппаратные решения.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
dosikus    5

E_C_C, для STM32 программатор как таковой  не нужен , большинство имеют встроенный бутлоадер через UART .

  А F0x2 имеют встроенный бутлоадер DFU к тому же crystall less, так что соединяем по USB и льем прошивку .

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

Цитата

получается что можно выполнять несколько задач независимо от основной программы ?

 

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

Изменено пользователем dosikus

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
E_C_C    52
29 минут назад, dosikus сказал:

встроенный бутлоадер через UART .

шикарно, мне уже нравиться,

Кот, посоветуй еще среду разработки ,  чтоб наиболее понятна для начинающего.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Sancta    2

Мозг можно свернуть разбираясь с регистрами и т.п. на низком уровне.

Берите HAL и куб - вход будет самый комфортный. Сам иду таким путём. Камни мощные - в тот момент когда вам перестанет хватать мощности вы либо купите камешек мощнее, либо начнете в SPL лезть (а это уже будет гораздо проще после HAL)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
dosikus    5
34 минуты назад, Sancta сказал:

Берите HAL и куб - вход будет самый комфортный. Сам иду таким путём. Камни мощные - в тот момент когда вам перестанет хватать мощности вы либо купите камешек мощнее, либо начнете в SPL лезть (а это уже будет гораздо проще после HAL)

Бред, причем полный. Учить железо по калокубу и SPL невозможно и тех аппаратных реализаций ни с SPL ни тем более с калокубом вы просто не осознаете.

А по ссылке не " Автор удачно все рассказывает" а пытается натыкать в калокубе непоймиче , сам ни черта не понимая.

Как и писал выше - натыкивают подобие софтового ногодрочерства в avr ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Sancta    2
2 минуты назад, dosikus сказал:

Бред, причем полный. Учить железо по калокубу и SPL невозможно и тех аппаратных реализаций ни с SPL ни тем более с калокубом вы просто не осознаете.

Ну знаете - если человек спрашивает с чего начать, то он новичек. Такой же как и я. И отправлять его сразу к 700 страничному руководству STM крайне негуманно. Если вы специалист и переходите с AVR ассемблера на стм с то это одно. А если новичек переходит с ардуино, то ему лучше таки начать с Куба. В процессе освоения все равно необходимо лезть в исходники и там всё становится более понятным. Это ИМХО 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
E_C_C    52

ИМХО лучше начать с простого мигания диодом, или вывести "хелло ворд" , но сделать самому без использования чужих библиотек . От простого к сложному. А когда уже придет понимание что и как работает , тогда уже можно брать готовое. Но тогда это уже не нужно будет ))) уже будет наработано свое.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Sancta    2

Я не спорю с Вами насчет того, что лучше всё доскональнее изучить. 

Просто я прошёл тем же путем что и автор. Сначала ардуина, потом стм32.

Я честно пытался начать с CMSIS и SPL. А что это значит? Это значит что ты сам собираешь весь проект, раскладываешь по папкам, линкуешь, правишь конфигурационные файлы - каждый раз вспоминая где и как это делается и где что лежит. Потом вручную врубаешь тактирование на переферии. Надо не забыть что на какой шине висит. В итоге чтобы два раза мигнуть светодиодом уходит полдня мозго...а. И это еще не касаясь общего тактирования. Настройки которого потребуют дзеновского спокойствия.

Что нам дает куб? Тактирование правится двумя кликами. Я в синем свистке сразу ставлю 72 мгц и всё остальное он сам делает. Ноги назначаются элементарно. Проект создается автоматом. Все библиотеки лежат там где надо. Что в этом плохого? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
dosikus    5

Плохо то что вы не поймете ни железо ни работу с ним.

  То что вы расписываете как свою работу с SPL и есть танцы с бубном , при работе с регистрами все намного проще.

Цитата

  Что нам дает куб?

Да ничего он не дает, тупиковый путь ардуньи и не более...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Sancta    2
Только что, dosikus сказал:

Плохо то что вы не поймете ни железо ни работу с ним.

  То что вы расписываете как свою работу с SPL и есть танцы с бубном , при работе с регистрами все намного проще.

Да ничего он не дает, тупиковый путь ардуньи и не более...

Между прочим HAL и Cube активно развиваются STM32. А вот CMSIS и SPL я читал в ближайшем будущем ждёт забвение.

Вот пример функции HAL. Вам не кажется что это теже яйца что и SPL, Только удобочитаемее и в профиль? Те же регистры напрямую опрашиваются.

GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
{
  GPIO_PinState bitstatus;

  /* Check the parameters */
  assert_param(IS_GPIO_PIN(GPIO_Pin));

  if ((GPIOx->IDR & GPIO_Pin) != (uint32_t)GPIO_PIN_RESET)
  {
    bitstatus = GPIO_PIN_SET;
  }
  else
  {
    bitstatus = GPIO_PIN_RESET;
  }
  return bitstatus;

Все ваши сентенции насчет куба наводят на мысль о том, как еще недавно гуру AVR на асме писали сразу в машинных кодах и посмеивались над народом с атмел студио. Типа изучайте камешек досконально. А теперь смотрят на то, куда ушло высокоуровневое программирование и выпадают в осадок.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
dosikus    5

И эта простыня кому то интересна ? Вы издеваетесь?

#define  BUTTON_1 GPIOx->IDR & GPIO_IDR_IDR1 

*/ cut 

if (BUTTON_1) {};

Ну и где код более читаем, прост и быстрее?????

 

Изменено пользователем dosikus

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Sancta    2

Сорри что-то сглючило - три раза пост отправился.

6 минут назад, dosikus сказал:

И эта простыня кому то интересна ? Вы издеваетесь?


#define  BUTTON_1 GPIOx->IDR & GPIO_IDR_IDR1 

*/ cut 

if (BUTTON_1) {};

Ну и где код более читаем, прост и быстрее?????

 

Чтобы вот это написать надо сначала все библиотеки собрать, проект сделать, затактировать всё нужное. Для меня это пара часов.

А вот в кубе открыть и пару раз мышой ткнуть - 2 минуты. ТС спросил с чего начать новичку. Я ответил и обосновал. Ваш код быстрее и лучше и меньше. Но чтобы писать так - надо углубиться в дебри. А это займет существенное время. Особенно когда надо будет затактировать какой нибудь USART или подобное. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
dosikus    5
21 минуту назад, Sancta сказал:

Чтобы вот это написать надо сначала все библиотеки собрать, проект сделать, затактировать всё нужное. Для меня это пара часов.

Для этого делается один шаблон который тиражируется по проектам, и никаких сторонних либ НЕ НАДО!

О тактировании писал выше, нет там ничего сложного...

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

Изменено пользователем dosikus

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Sancta    2
11 минуту назад, dosikus сказал:

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

Изменено 5 минут назад пользователем dosikus

Нет никакой бритвы (как у буддистов :))

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ваша публикация должна быть проверена модератором

Гость
Вы не авторизованы. Если у вас есть аккаунт, пожалуйста, войдите.
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Восстановить форматирование

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Загрузка...

  • Похожие публикации

    • Гость Илья
      Автор: Гость Илья
      Доброго времени суток, уважаемые читатели. Решил собрать зеркало в ванную комнату, такое, чтоб новости сообщало, погоду, время, и еще показания пары датчиков. Внешне будет смотреться органично, выложу проект, пока что заказываю комплектующие. 
      Возник следующий вопрос; возможно ли на stm32 сделать какую-никакую графику, чтоб при этом работала не как слайд шоу? K примеру, на дисплее погода, махнул рукой, появились новости, выбрал нужную, читаешь, перелистываешь.
      Встраивать малинку считаю нецелесообразным, все-таки зеркало, а не медиа-центр.
      Жду ваших советов!
    • Автор: nick32
      Здравствуйте. У st.com, похоже, что-то сломалось, и драйвер не скачивается. Скиньте, пожалуйста, установщик драйвера.
    • Автор: MDG_Lab
      Здравствуйте! 
      Ткните пожалуйста носом начинающего, как в Arduino IDE настроить частоту ШИМ. 
      Работаю с STM32F103, функции analogWrite(*); pwmWrite(*); Этими функциями задаю номер порта и коэффициент заполнения.
    • Автор: TIGER53501
      Привет, никак не могу разобраться с таймером в режиме сброса по внешнему событию,
      сам сброс работает, таймер сбрасывается, вопрос вот в чём, могу ли я в этом режиме использовать захват на оставшихся каналах?
      т.е. по внешнему событию сбрасывать таймер, и потом внешними событиями записывать сколько он протикал с момента сброса?
      STM32F429ZI
      СИ + VisualGDB + HAL + Cube
    • Автор: misterflud
      В общем нужна библиотека для вывода текста с STM32RB100 на экран 1602a. Соединение -- через 4 или 8 ножки. Я вам даю микроконтроллер и дисплей, а вы ищите или пишите библиотеку для этого. В общем нужно чтобы заработало. Если дисплей не работает, то подобрать другой.
      Пишите сюда либо на почту yurolejniko@yandex.ru
  • Сообщения

    • Вот не утрируючи обьясни мне дураку, зачем снижать частоту в рабочем аппарате??
    • Автор, внутри шагового двигателя соединены средние точки обмоток. В связи с этим, Вам не удалось подключить обмотки последовательно. Нужно разобрать двигатель и распаять средние точки. Я сейчас спаял последовательное соединение и раскрутил пальцами вал до 24в без нагрузки. Так же необходимо реализовать редуктор, ибо это мастурбация. При определённых оборотах шаговика, мощность начинает расти в разы.
    • DesAlex не доволен, когда технический раздел форума пытаются использовать как рекламу для своего товара. Весь подобный материал поудаляю (и это уже не первый раз в случае с Вами), в следующий раз - забаню за злостное нарушение Правил форума. Нужна реклама - это к админу (за денежку на развитие форума); продать - только в разделе "Куплю-Продам", в технической теме не должно быть ни малейшего намёка на занятие коммерцией.
       
    • Ради прикола отснял еще одно демонстрационное видео:     Статья в процессе. Но как скоро выйдет, не могу сориентировать, поскольку работа, семья, маленькие дети... Поэтому, кому очень приспичило, могу помочь в пределах данного форума. Первая статья про ЭТ уже готова. Ссылку давал чуть выше. От нее уже можно отталкиваться.
    • 3 линии по 5-6 таких диодов, больше драйвер не потянет. В каждую линию токовыравнивающий резистор 1-1,5 Ом 1,5-2 Вт.
    • Всем привет подскажите пожалуйста. Есть модуль А6. У него есть пин RST. В даташите написано, что для сброса надо применять низкий уровень, но при этом ток через все это дело пойдёт до 70ма и у модема возникнут трудности с поиском сети. Там же сказано, что рекомендовано использовать nMOSFET. Так вот я правильно понял, что надо просто тянуть эту ногу к земле через мосфет н типа, никаких там обвесов не надо? Есть схемка как правильно притянуть ногу к земле через мосфет? И как правильно подобрать транзистор? Питание модуля 5в , управление 3,3в
    • всем привет. И так по-порядку без лишних слов. схема управляет двигателем в игрушечной машинке спаял самодельный H-bridge на KT816В + КТ817Г + управляющие 2n3904 схему взял тут: http://www.laurentkneip.de/H_bridges.html Оригинальня схема: Схема чуть модифицированная мною: На схеме:
      - замены по сравнению с оригиналом подчеркнул: желтым
      - номера ножек транзисторов: голубым
      - заменил R1 и R3 с 10К на 200 Ом. Как по мне 10К это перебор
      - добавил диодов на каждый транзюк: в инете видел много схем где диоды стоят У меня есть еще 1 машинка. Я её схему перепаивал, так как там стояли очень слабые транзюки и 1 из них был сгоревшим, но там диодов и резюков НЕТ вообще - и она работает. По сути там копия оригинальной схемы (фото №1) ПРОБЛЕМА: текущая самопайка при подаче сигнала на X2-1 или X2-2 - двигатель крутит или по часовой или против часовой. вроде бы всё ОК. Но не особо сильно. Как будто в пол силы. НО! когда на обеих контактах 0 - то он сам еле еле крутится в одну сторону. На X1-1 при этом 0.49V, а на X1-2 около 1.42V. Тут то я и понял, что что-то явно не то. Я так понимаю транзюки каким-то образом приоткрыты? - честно говоря я очень силен в схемотехнике , Программист, но люблю и паять. По-этому пишу с просьбой помочь. Пробовал оба X2-1 и X2-2 тупо на землю посадить без Arduino - эффект тот же. Ну и если рукой взять за вал моторчика - то слышно, как он туда сюда как бы дергается с оооочень большой скоростью. Но так как напруга на одном из контактов больше - он всё же еле-еле крутится по часовой. Может я неправильно добавил диоды в схему? или резисторы R2 и R4 поставить около 2К-4К Ом? Неправильно номера ножек транзюков определил? Вместо 2n3904 есть еще С945 если, что. Могу замерять напряжения в любых точках где скажете.