Микроконтроллеры серии STM32 для новичков.

Контроллеры, драйверы, датчики, управляющие устройства.
Andrey@KZN
Мастер
Сообщения: 442
Зарегистрирован: 22 авг 2016, 12:21
Репутация: 44
Настоящее имя: Андрей
Контактная информация:

Re: Микроконтроллеры серии STM32 для новичков.

Сообщение Andrey@KZN »

IAR 7.5, вроде из новых

Да, на Cube у меня определенная надежда есть. Я только сейчас для себя эту тулзу обнаружил, ща буду поизучать.
Andrey@KZN
Мастер
Сообщения: 442
Зарегистрирован: 22 авг 2016, 12:21
Репутация: 44
Настоящее имя: Андрей
Контактная информация:

Re: Микроконтроллеры серии STM32 для новичков.

Сообщение Andrey@KZN »

А что в кубе означает Signal Pinning?
alex1816
Мастер
Сообщения: 224
Зарегистрирован: 03 фев 2017, 01:06
Репутация: 35
Настоящее имя: Александр
Откуда: Украина
Контактная информация:

Re: Микроконтроллеры серии STM32 для новичков.

Сообщение alex1816 »

Из хелпа.
a. For unpinned signals, select Signal Pinning to pin the signal. A pin icon is then
displayed on the relevant pin. The signal can no longer be moved automatically
(for example when resolving pin assignment conflicts).

b. For pinned signals, select Signal Unpinning to unpin the signal. The pin icon is
removed. From now on, to resolve a conflict (such as peripheral mode conflict),
this signal can be moved to another pin, provided the Keep user placement option
is unchecked.

перевод с гугла -
a.Для открепленных сигналов выберите Signal Pinning, чтобы зафиксировать сигнал. Значок булавки тогда
Отображается на соответствующем выводе. Сигнал больше не может быть автоматически перемещен
(Например, при разрешении конфликтов назначения контактов).

b. Для закрепленных сигналов выберите Signal Unpinning, чтобы открепить сигнал. Значок булавки
Удален. С этого момента, чтобы разрешить конфликт (например, конфликт периферийного режима),
Этот сигнал можно перенести на другой вывод, при условии, что опция Keep user placement
откл.

то есть ставится булавка и автоматически ноги не перенесутся или если надо перенесутся если Вы этого захотите.
На больших чипах может и поможет. На малютке - навряд ли. У меня автоматом эти булавки наставились местами - см. скрин.
Я переносил ноги нажимая Ctrl + ЛКМ(левая кн мыши) - синим показывает варианты.
im21.jpg (4283 просмотра) <a class='original' href='./download/file.php?id=108196&mode=view' target=_blank>Загрузить оригинал (112.07 КБ)</a>
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Микроконтроллеры серии STM32 для новичков.

Сообщение MX_Master »

Разгорелся вопрос.. Как же так получается, что более производительная платка

Orange Pi Zero с процем Allwinner H2 Quad-core Cortex-A7 1.2GHz, ОЗУ 512MB DDR3 (с 256 на 3$ дешевле), видео MALI400, USB, Ethernet и Wi-Fi на борту

стоит также как

обычная макетка с одним только STM32F407VET6 на борту
alex1816
Мастер
Сообщения: 224
Зарегистрирован: 03 фев 2017, 01:06
Репутация: 35
Настоящее имя: Александр
Откуда: Украина
Контактная информация:

Re: Микроконтроллеры серии STM32 для новичков.

Сообщение alex1816 »

Досконально конечно непонятно. Умом китайцев не понять.
Но на вскидку: если к примеру учесть доставку в Украину то в сумме на доллар дороже вторая.
US $11.50 / шт. + shipping 0$
US $8.99 / шт. + US $3.93 в Ukraine службой China Post Registered Air Mail (Общая стоимость:US $12.92);
Может в Россию китайцы везут дешевле :)
И еще: продавцы разные.
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Микроконтроллеры серии STM32 для новичков.

Сообщение MX_Master »

Для тех, кто не силён в английском, один хороший человек сделал русский перевод мануалов к STM32F10xxxx.
Взято с http://caxapa.ru/thumbs/424006/STM32F10_DOC_RU.pdf
STM32F10_DOC_RU.pdf
(4.84 МБ) 2392 скачивания
alex1816
Мастер
Сообщения: 224
Зарегистрирован: 03 фев 2017, 01:06
Репутация: 35
Настоящее имя: Александр
Откуда: Украина
Контактная информация:

Re: Микроконтроллеры серии STM32 для новичков.

Сообщение alex1816 »

Спасибо и тебе и тому хорошему человеку. Полезная штуковина.
Вчера делал запись-чтение переменной(у меня координата) в энергонезависимую память с небольшим преобразованием разрядности и типов данных.
Вернее память на батарейке, то есть при нормальной работе питается от основного питания, при отключении - от батарейки 3В (вход 3,3В): у меня таблетка CR2032.
Память Backup SRAM (BKP - регистры) - память быстрая без ограничения количества циклов записи.
В маленькой синенькой плате (Stm32f103c8t6) ее 40байт (20шт 16-ти разрядных регистров), в других 84байта (42регистра), в третьих - не знаю :) .
Использовал библиотеку HAL (есть много других вариантов). На оптимальность преобразований и тп не претендую, но может кому пригодится.

Код: Выделить всё

//Запись 64 битного  числа со знаком в 4-ре 16 битных регистра BKP
int64_t SV = 0x2342bnbn23b; // число для примера

 __HAL_RCC_PWR_CLK_ENABLE(); 
 __HAL_RCC_BKP_CLK_ENABLE();                   // вкл тактирование нужной периферии
 HAL_PWR_EnableBkUpAccess();                   // разрешаем доступ к регистрам BKP
 BKP->DR1 = (uint16_t) ( SV   )  &     0xffff; 
 BKP->DR2 = (uint16_t) ((SV>>16) &     0xffff);
 BKP->DR3 = (uint16_t) ((SV>>32) &     0xffff);
 BKP->DR4 = (uint16_t) ((SV>>48) &     0xffff);
 HAL_PWR_DisableBkUpAccess();                   // запрещаем доступ к регистрам BKP

Чтение этого же числа из тех же регистров (BKP) обратно в переменную

Код: Выделить всё

SV = (int64_t)(((uint64_t)BKP->DR4 <<48) | ((uint64_t)BKP->DR3 << 32) | ((uint64_t)BKP->DR2 << 16) | ((uint64_t)BKP->DR1));
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Микроконтроллеры серии STM32 для новичков.

Сообщение MX_Master »

Тем, кто хочет подключить дисплей для автономной работы с МК, вот еще один хороший человек написал библиотеку https://github.com/SL-RU/MakiseGUI

https://m.habrahabr.ru/post/325692/

https://youtu.be/OX_bcBR7teA
Аватара пользователя
N1X
Мастер
Сообщения: 3653
Зарегистрирован: 16 фев 2015, 21:19
Репутация: 1646
Настоящее имя: Владимир
Откуда: Беларусь, Гомель
Контактная информация:

Re: Микроконтроллеры серии STM32 для новичков.

Сообщение N1X »

Так есть же STemWin... Тяжеловата конечно, но зато возможности хорошие...
tecnocat
Опытный
Сообщения: 101
Зарегистрирован: 09 июн 2014, 08:07
Репутация: 39
Контактная информация:

Re: Микроконтроллеры серии STM32 для новичков.

Сообщение tecnocat »

bolek4321 писал(а):На STM32 можно было бы перенести, например, проект "Arduino GRBL Companion" http://www.cnc-club.ru/forum/viewtopic.php?f=41&t=10940
STM32 - их есть у меня, попозжее подумаю о переносе ;)
maxvalin
Кандидат
Сообщения: 70
Зарегистрирован: 22 июл 2016, 16:19
Репутация: 4
Настоящее имя: Максим
Контактная информация:

Re: Микроконтроллеры серии STM32 для новичков.

Сообщение maxvalin »

Приветствую уважаемые!
Прочитал тему так как и сам стою на переходе от arduino к stm 32.
Хотел спросить некоторые азы, может своими словами и не правильно но как понимаю так и говорю :) для начала:
Заказал https://ru.aliexpress.com/item/ST-Link- ... 0.0.4ZJYFi и https://ru.aliexpress.com/item/Free-Shi ... 0.0.4ZJYFi вместо дискавери.
1)Я так понял стлинк он же программатор и отладчик в одном лице?
2) Stm32f103c8t6 а в этой штуковине есть свой мини-юсб, зачем? для того чтоб стлинком загнать программу-загрузчик и потом уже работать через этот мини-юсб?
Дальше по ПО.
3)программа STM32CubeMX собирает такой себе начальный код-конфигуратор, в котором если знать то между нужными строками вкатываешь типа ардуиновского void loop() который написан уже в другой программе типа Keil uVision?
Тоисть логично что сначала нужно написать программу в Keil uVision (например) а потом глядя на нужды сконфигурировать в STM32CubeMX порты, частоту и периферию и.т.д. ? Понимаю что можно и в другом наборе но для себя выбрал именно эти две проги :)
4) пишется на стандартном С? ясно что и на С++ и еще может на чем то, но я за С хотел узнать. Тоисть ищу в интернете уроки по написанию программ в С? Или как то надо искать С но с учетом написания для МК или же с учетом написания МК да еще и для STM?
5) писать программу что для 3-го что для 4-го кортекса одинаково?
Просто находил про С но там чут ли не для написания программ для винды. Дело в том что я полный 0 в программировании , но прижало и пришлось понять как пишется циклы для arduino и написал. Написал - собрал, работает. Воодушевило меня не на шутку, полез внедрять в производство. Но тут полный облом: arduino хорош но не для помех да и стабильность ни ахти. С stm конечно сравнивать нет смысла- каждый процессор был создан под свои цели и каждый в этом хорош. Но все же , раз живу по принципу: Все делать с запасом! По этому как по мне то лучше изучить этот проц и даже мигать светодиодами и собирать градусники на нем, целесообразность в цене и простоте вообще не интерисует. Опять же прошу не задираться на спор, это только я о себе и никому не хочу даже намекать на подобное мнение ;)

прекрасно понимаю что ответы можно найти в документации но простите пожалуйста, времени на все просто не хватает ((
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Микроконтроллеры серии STM32 для новичков.

Сообщение Serg »

1. ST-Link - это и есть программатор.
Демоплату заказал "безродную" - наверняка придётся методом тыка искать к каким ногам подключены светодиоды, кнопки и т.п. Надо было брать оригинальную - не сильно дороже, но полно документации и готовых примеров.
2. мини-юсб для питания и для связи - этот чип имеет аппаратный USB. Через него-же можно и программировать.
3. STM32CubeMX генерит код на С, в котором уже сделана инициализация периферии, останется вписать алгоритм работы устройства.
4. С - это язык программирования, он не зависит от аппаратной части. Его желательно осваивать в отрыве от всяких ОС и устройств, чтобы чётко понимать где проходит граница между языком и набором функций (API) для работы с разными ОС и периферией. Тогда не будет никакаих проблем в освоении других МК, ОС и т.п.
maxvalin писал(а):Но тут полный облом: arduino хорош но не для помех да и стабильность ни ахти.
С STM тут тоже полный облом - помехозащищённость не зависит от типа МК, она зависит от грамотной разработки, правильной разводки печатных плат и т.п.
maxvalin писал(а):прекрасно понимаю что ответы можно найти в документации но простите пожалуйста, времени на все просто не хватает ((
Либо придётся найти на это время, либо выбросить это из головы. Одними советами тут не помочь.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
AndyBig
Мастер
Сообщения: 3971
Зарегистрирован: 07 мар 2014, 04:01
Репутация: 1121
Откуда: юг России
Контактная информация:

Re: Микроконтроллеры серии STM32 для новичков.

Сообщение AndyBig »

1) Да
2) У этого контролера есть USB-периферия, вот разъем и выведен. Если сделаете загрузчик - то можете загнать его и потом программировать через этот USB, но вообще контроллеры обычно программируются программатором, а этот USB используется для нужд самой прошивки - в процессе работы что-то передать на комп или принять от него :)
3) Не пользовался пока Кубом, но логично, что сначала определяется вся нужная периферия, режимы ее работы, а потом с этими знаниями пишется прошивка, в том числе и конфигурация периферии :) То есть сначала в Кубе все настраивается, Куб создает заготовку проекта под нужную среду со всей инициализацией периферии по указанным параметрам и дальше Вы эту заготовку наполняете своим кодом в нужных местах. Основное тело программы выполняется не в loop(), а в main() :)
4) На обычном С. И на С++ легко, только следует учитывать специфику микроконтроллеров - небольшое количество памяти, то есть с динамическим созданием объектов сильно не поиграешься. Си для компьютера практически ничем не отличается от Си для микроконтроллеров - тот же синтаксис, те же операторы. Специфичны только команды препроцессора да библиотеки.
Сравнить, наверное, можно со строительством: ардуино - это набор готовых комнат, из которых Вы складываете дома. Какие комнаты в наличии есть - из тех и собираете. Ну и что, что кухня на весь четвертый этаж в 100 квадратов, на третьем только четыре туалета, на втором гараж на 16 машин (к которому ведет с земли пандус) :)) Зато все складывается легко. Правда, если с потолка спальни будет капать вода, то придется долго и нудно разбираться откуда она там берется, потому что складывая как пазлы готовые комнаты Вы не вдаетесь в подробности их устройства - где и какие коммуникации там проложены и т.д. Можете и свою комнату сделать сами, но не факт, что она потом "уживется" с остальными :) А стандартное программирование микроконтроллеров - это Вы сами строите дом из элементарных материалов - кирпичей, труб, проводов и т.д. Вы сами решаете какие комнаты у Вас будут - какого размера, какой формы и из какого материала, как они будут расположены, где и какие будут проложены коммуникации и т.д. и т.д.
maxvalin
Кандидат
Сообщения: 70
Зарегистрирован: 22 июл 2016, 16:19
Репутация: 4
Настоящее имя: Максим
Контактная информация:

Re: Микроконтроллеры серии STM32 для новичков.

Сообщение maxvalin »

Хм, очень доходчиво! Насчёт безродности ерунда- в своё время начинал с авр:) где куда и что это не проблема. А вот то что "мало памяти" насторожило! Это ж что получается?,засчет инициализации забирается основная часть памяти и для переменных уже и места не будет?
А как насчёт локальных переменных? Или это предостережение имело место к младшим моделям? Просто как я сказал для проекта естественно буду брать уже мощные.
По языку: спокойно гуглю С.
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Микроконтроллеры серии STM32 для новичков.

Сообщение MX_Master »

у STM32 достаточно памяти для большинства проектов, можно не парится. У вашего малыша STM32F103C8T6 - 20 Кбайт. Этого хватит под кучу переменных и пару-тройку крупных массивов (для буферов).
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11730
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4703
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

Re: Микроконтроллеры серии STM32 для новичков.

Сообщение michael-yurov »

MX_Master писал(а):У вашего малыша STM32F103C8T6 - 20 Кбайт.
Это только "оперативка".
И "жесткий диск" еще на 64 КБ.
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11730
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4703
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

Re: Микроконтроллеры серии STM32 для новичков.

Сообщение michael-yurov »

AndyBig писал(а):Сравнить, наверное, можно со строительством
Я бы еще добавил, что у STM32 большой объем серьезной переферии.
Если сравнивать со строительством, то это и водопровод и канализация, и отопление и вентиляция с регулировкой климата, и скоростной интернет и почтовый ящик и даже дебаркадер, если потребуется.
А вот у ардуины все приходится таскать ведрами - и дрова и воду из колодца и интернет...
Конечно, с ведрами разобраться намного проще, чем со всеми этими сложными штуками, но зато в большинстве случаев они (сложные штуки у STM32) предоставляют очень серьезные возможности и работают сами не отвлекая на это процессор.
maxvalin
Кандидат
Сообщения: 70
Зарегистрирован: 22 июл 2016, 16:19
Репутация: 4
Настоящее имя: Максим
Контактная информация:

Re: Микроконтроллеры серии STM32 для новичков.

Сообщение maxvalin »

michael-yurov писал(а):И "жесткий диск" еще на 64 КБ.
ну вот как раз для глобальных переменных :)
а насчет ведер:
Как бы на то и не вышло что проц будет работать не шустрее avr-овского из-за нагрузки на все эти комуникации.
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11730
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4703
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

Re: Микроконтроллеры серии STM32 для новичков.

Сообщение michael-yurov »

maxvalin писал(а):ну вот как раз для глобальных переменных
Не для глобальных переменных а для кода программы.
А переменные, что локальные, что глобальные находятся в одной и той же памяти.
maxvalin писал(а):а насчет ведер:
Как бы на то и не вышло что проц будет работать не шустрее avr-овского из-за нагрузки на все эти комуникации.
Я же уточнил, что у STM32 вся эта периферия работает самостоятельно без загрузки процессора, в т.ч. используя прямой доступ к памяти.
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2858
Откуда: Тюмень
Контактная информация:

Re: Микроконтроллеры серии STM32 для новичков.

Сообщение Сергей Саныч »

michael-yurov писал(а):Это только "оперативка".
И "жесткий диск" еще на 64 КБ.
я бы не рискнул отождествлять программную флэш-память МК с жестким диском ПК.
maxvalin писал(а):ну вот как раз для глобальных переменных :)
Лучше для констант. Писать в нее из программы можно, но это не слишком просто. И ресурс ограниченный по числу перезаписей.
maxvalin писал(а):Как бы на то и не вышло что проц будет работать не шустрее avr-овского из-за нагрузки на все эти комуникации.
Если с умом подойти, процессор, наоборот, разгрузится.
Чудес не бывает. Бывают фокусы.
Ответить

Вернуться в «Электроника»