ivpoed

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

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

ivpoed    1

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

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

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

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

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

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


Ссылка на сообщение
Поделиться на других сайтах
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    228

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

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


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

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

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

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

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

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

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

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

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

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


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

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

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

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


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

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

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

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

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

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

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


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

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

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

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

Цитата

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

 

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

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

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


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

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

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

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

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


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

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

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

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


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

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

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

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

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

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


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

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

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

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


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

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

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


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

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

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

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

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

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


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

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

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

Цитата

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

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

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


Ссылка на сообщение
Поделиться на других сайтах
Sancta    3
Только что, 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    12

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

#define  BUTTON_1 GPIOx->IDR & GPIO_IDR_IDR1 

*/ cut 

if (BUTTON_1) {};

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

 

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

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


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

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

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

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


#define  BUTTON_1 GPIOx->IDR & GPIO_IDR_IDR1 

*/ cut 

if (BUTTON_1) {};

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

 

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

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

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


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

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

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

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

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

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

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


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

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

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

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

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

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


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

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

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

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

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

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

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

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

Загрузка...

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

    • Автор: Djanger
      Приобрёл "NUCLEO-F030R8, Отладочная плата на базе MCU STM32F030R8T6 (ARM Cortex-M0), ST-LINK/V2-1, Arduino-интерфейс"  хочу приобрести два модуля к ней но не знаю о совместимости , кого спрашиваю сомневаются и не отвечают уверенно, 1 модуль это 3,2 TFT ЖК дисплей сенсорный , а второй 8 бит LED 8 бит цифровой Tube 8-разрядный ключ. Кто что может подсказать или посоветовать прошу помочь 


    • Автор: alexmurphy
      Здравствуйте!

      Разовая работа для программистов из Москвы или московской области.

      Необходимо написать прошивку для отладочной платы на базе чипа BMI055
      Даташит: https://www.mouser.com/ds/2/783/BST-BMI055-DS000-08-786482.pdf

      Более подробное ТЗ вышлю кандидату.
      Железо предоставлю.
      Оплата по договоренности.

      При успешном выполнении, будут регулярные заказы, а также трудоустройство при желании, конкурентная зп по Москве.

      Если заинтересованы, просьба в комментах или в ЛС оставить контакты для связи.
    • Автор: Smith2007
      Исследую платку stm32f103c8t6.
      В качестве ide - Keil mVision v5.
      Проект на Си++
      При работе с UART мне требуется вывести некоторую информацию. Делаю это при помощи следующих функций:
      void USARTSend(char *ptrOutBuf) { while (*ptrOutBuf) { USART_SendData(USART1, *ptrOutBuf++); while(USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET) {} } } void USARTSend(int val) { int i = 0; sprintf(buffer, "%x", val); while (buffer[i]) { USART_SendData(USART1, buffer[i]); i++; while(USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET) {} } } void USARTSend(const unsigned char *ptrOutBuf) { while (*ptrOutBuf) { USART_SendData(USART1, *ptrOutBuf++); while(USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET) { } } } В некоторых строках вывожу текст следующим вызовом:
      USARTSend("\r\nUSART1 is ready.\r\n"); Компилируется без ошибок.
      Вывод сообщений в UART тоже без ошибок.
      Но в редакторе кода Keil  на против последней записи появляется значок warning!

      Код выполняется верно

       
      Как можно избавиться от неприятного предупреждения?
    • Автор: K.A.
      Добрый день. Пытаюсь собрать тахометр на stm32f100c8t6b. Вывод информации - четырехразрядный семисегментный индикатор, счетчик - таймер №1, 1ый канал. На системном таймере висит индикация показаний. Вычисление оборотов - в обработчике таймера 1. Проблема в том, что при подаче импульсов на PB13 (Tim1 Ch1) не происходит прерывания. Скажите, пожалуйста, что я упускаю из виду. Заранее большое спасибо.
       
       
      Taho_2.rar
    • Автор: Max Kondor
      Доброго времени суток. Изучаю STM32, пользуюсь библиотекой SPL. При изучении SPI возникла проблема. Вся иницилизация проходит успешно, ну когда я пытаюсь прочитать даные с акселерометра, регистр Where_am_i, мне либо ничего не приходит, либо приходит 0xFF. Настраивал все по многим туториалам, результат один и тот же. У людей получается, а у меня нет.
  • Сообщения

    • Запуск восстановления коммерческая тайна. Я связывался с заводом напрямую, следуя регламенту нужно заменить устройство на новое. Можете подсказать точнее что перед выпаиванием от меня требуется.
    • 2кВт это ампер 9. Даже 10А диоды будут работать на пределе и греться. Как-то так получается, что на них (для нормальной работы светодиода) должно падать 3В, что при токе 10А даст 30Вт выделяемой мощности. Поэтому эта схема неудачная для такой нагрузки. Тут скорее нужно что-то подобное  Чем больше ток нагрузки — тем ярче свечение светодиода.
       Трансформатор Т1 может быть намотан на ферритовом кольце диаметром 30...40 мм марки 2000НН. Его токовая обмотка (включена в разрыв цепи нагрузки) содержит 20...25 витков толстого провода (диаметр 2,5 мм). Вторичная обмотка имеет 1500 витков тонкого провода (0,08...0,1 мм). Для уменьшения потерь в схеме выпрямителя использованы германиевые диоды. Светодиод лучше сверхяркий. Резистор R1 необходимо подобрать так, чтобы при максимальной нагрузке ток через светодиод не превышал допустимого (обычно 20-25 мА). Взято отсюда (по поиску в гугле - "индикация  мощной нагрузки") http://forum.homedistiller.ru/index.php?topic=36141.40 Или вот так http://radiostorage.net/1283-skhemy-prostyh-indikatorov-potreblyaemoj-moshchnosti-k176la7.html  Конструкция трансформатора тока и его вольт-амперная характеристика показаны на рис. 2. Его магнитопровод — ферритовое кольцо 2000 НМ типоразмера К20Х10Х5, которое аккуратно разламывают на две части и на одну из них наматывают 1500 витков провода ПЭВ-2 0,08 - это вторичная обмотка 3. Затем, надев вторую часть кольца 2 ,на сетевой провод 1, обе половины оклеивают клеем БФ-2 или эпоксидным клеем.
    • Тогда ищите вот такой:  RT-8B7WA-A19, развивает на валу аж 420Вт (питание 30А*18В), момент до 15,3 кГ*см . или такой  RZ-735VA-9517 на валу 280Вт (20А*18В), до 12,9 кГ*см Двух-трех пар ключей должно хватить, если до Stall'a не доводить  Жаль, высокооборотистые.
    • Собрал прибор при включении постоянно слышен звук динамика. Подключался без катушки. Вопрос где собака закрыта и второе какая индуктивность для катушки нужна для этого прибора. Спасибо
    • Нашёл ошибку подключении индикатора, еще вопрос при подключении прибора без катушки постоянно слышно зум динамика и на индикаторе положение сигнала находится в предпоследнем положении (14). Или потому, что без катушки или что?
    • SRAM + баратейка часто использовалась как енергонезависимая память, для хранения каких-либо параметров. В копирах такие связки от одной CR2032 работали порядка 10 лет, сейчас используется FRAM.  В устройстве скорее всего должен бьіть предусмотрен режим инициализации SRAM после сбоя питания, просто ТС не вкурсе как его запустить