Страница 3 из 7
Re: Микроконтроллеры серии STM32 для новичков.
Добавлено: 04 апр 2017, 21:21
Andrey@KZN
IAR 7.5, вроде из новых
Да, на Cube у меня определенная надежда есть. Я только сейчас для себя эту тулзу обнаружил, ща буду поизучать.
Re: Микроконтроллеры серии STM32 для новичков.
Добавлено: 05 апр 2017, 01:14
Andrey@KZN
А что в кубе означает Signal Pinning?
Re: Микроконтроллеры серии STM32 для новичков.
Добавлено: 05 апр 2017, 23:00
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 + ЛКМ(левая кн мыши) - синим показывает варианты.
Re: Микроконтроллеры серии STM32 для новичков.
Добавлено: 08 апр 2017, 20:42
MX_Master
Разгорелся вопрос.. Как же так получается, что более производительная платка
Orange Pi Zero с процем
Allwinner H2 Quad-core Cortex-A7 1.2GHz, ОЗУ
512MB DDR3 (с 256 на 3$ дешевле), видео
MALI400, USB, Ethernet и Wi-Fi на борту
стоит также как
обычная макетка с одним только STM32F407VET6 на борту
Re: Микроконтроллеры серии STM32 для новичков.
Добавлено: 08 апр 2017, 23:01
alex1816
Досконально конечно непонятно. Умом китайцев не понять.
Но на вскидку: если к примеру учесть доставку в Украину то в сумме на доллар дороже вторая.
US $11.50 / шт. + shipping 0$
US $8.99 / шт. + US $3.93 в Ukraine службой China Post Registered Air Mail (Общая стоимость:US $12.92);
Может в Россию китайцы везут дешевле

И еще: продавцы разные.
Re: Микроконтроллеры серии STM32 для новичков.
Добавлено: 11 апр 2017, 18:52
MX_Master
Для тех, кто не силён в английском, один хороший человек сделал русский перевод мануалов к
STM32F10xxxx.
Взято с
http://caxapa.ru/thumbs/424006/STM32F10_DOC_RU.pdf
Re: Микроконтроллеры серии STM32 для новичков.
Добавлено: 11 апр 2017, 21:01
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));
Re: Микроконтроллеры серии STM32 для новичков.
Добавлено: 17 апр 2017, 06:18
MX_Master
Тем, кто хочет подключить дисплей для автономной работы с МК, вот еще один хороший человек написал библиотеку
https://github.com/SL-RU/MakiseGUI
https://m.habrahabr.ru/post/325692/
https://youtu.be/OX_bcBR7teA
Re: Микроконтроллеры серии STM32 для новичков.
Добавлено: 17 апр 2017, 06:42
N1X
Так есть же STemWin... Тяжеловата конечно, но зато возможности хорошие...
Re: Микроконтроллеры серии STM32 для новичков.
Добавлено: 17 апр 2017, 09:06
tecnocat
STM32 - их есть у меня, попозжее подумаю о переносе

Re: Микроконтроллеры серии STM32 для новичков.
Добавлено: 31 май 2017, 21:19
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 конечно сравнивать нет смысла- каждый процессор был создан под свои цели и каждый в этом хорош. Но все же , раз живу по принципу: Все делать с запасом! По этому как по мне то лучше изучить этот проц и даже мигать светодиодами и собирать градусники на нем, целесообразность в цене и простоте вообще не интерисует. Опять же прошу не задираться на спор, это только я о себе и никому не хочу даже намекать на подобное мнение
прекрасно понимаю что ответы можно найти в документации но простите пожалуйста, времени на все просто не хватает ((
Re: Микроконтроллеры серии STM32 для новичков.
Добавлено: 31 май 2017, 23:47
Serg
1. ST-Link - это и есть программатор.
Демоплату заказал "безродную" - наверняка придётся методом тыка искать к каким ногам подключены светодиоды, кнопки и т.п. Надо было брать оригинальную - не сильно дороже, но полно документации и готовых примеров.
2. мини-юсб для питания и для связи - этот чип имеет аппаратный USB. Через него-же можно и программировать.
3. STM32CubeMX генерит код на С, в котором уже сделана инициализация периферии, останется вписать алгоритм работы устройства.
4. С - это язык программирования, он не зависит от аппаратной части. Его желательно осваивать в отрыве от всяких ОС и устройств, чтобы чётко понимать где проходит граница между языком и набором функций (API) для работы с разными ОС и периферией. Тогда не будет никакаих проблем в освоении других МК, ОС и т.п.
maxvalin писал(а):Но тут полный облом: arduino хорош но не для помех да и стабильность ни ахти.
С STM тут тоже полный облом - помехозащищённость не зависит от типа МК, она зависит от грамотной разработки, правильной разводки печатных плат и т.п.
maxvalin писал(а):прекрасно понимаю что ответы можно найти в документации но простите пожалуйста, времени на все просто не хватает ((
Либо придётся найти на это время, либо выбросить это из головы. Одними советами тут не помочь.
Re: Микроконтроллеры серии STM32 для новичков.
Добавлено: 31 май 2017, 23:57
AndyBig
1) Да
2) У этого контролера есть USB-периферия, вот разъем и выведен. Если сделаете загрузчик - то можете загнать его и потом программировать через этот USB, но вообще контроллеры обычно программируются программатором, а этот USB используется для нужд самой прошивки - в процессе работы что-то передать на комп или принять от него

3) Не пользовался пока Кубом, но логично, что сначала определяется вся нужная периферия, режимы ее работы, а потом с этими знаниями пишется прошивка, в том числе и конфигурация периферии

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

4) На обычном С. И на С++ легко, только следует учитывать специфику микроконтроллеров - небольшое количество памяти, то есть с динамическим созданием объектов сильно не поиграешься. Си для компьютера практически ничем не отличается от Си для микроконтроллеров - тот же синтаксис, те же операторы. Специфичны только команды препроцессора да библиотеки.
Сравнить, наверное, можно со строительством: ардуино - это набор готовых комнат, из которых Вы складываете дома. Какие комнаты в наличии есть - из тех и собираете. Ну и что, что кухня на весь четвертый этаж в 100 квадратов, на третьем только четыре туалета, на втором гараж на 16 машин (к которому ведет с земли пандус)

) Зато все складывается легко. Правда, если с потолка спальни будет капать вода, то придется долго и нудно разбираться откуда она там берется, потому что складывая как пазлы готовые комнаты Вы не вдаетесь в подробности их устройства - где и какие коммуникации там проложены и т.д. Можете и свою комнату сделать сами, но не факт, что она потом "уживется" с остальными

А стандартное программирование микроконтроллеров - это Вы сами строите дом из элементарных материалов - кирпичей, труб, проводов и т.д. Вы сами решаете какие комнаты у Вас будут - какого размера, какой формы и из какого материала, как они будут расположены, где и какие будут проложены коммуникации и т.д. и т.д.
Re: Микроконтроллеры серии STM32 для новичков.
Добавлено: 01 июн 2017, 07:37
maxvalin
Хм, очень доходчиво! Насчёт безродности ерунда- в своё время начинал с авр:) где куда и что это не проблема. А вот то что "мало памяти" насторожило! Это ж что получается?,засчет инициализации забирается основная часть памяти и для переменных уже и места не будет?
А как насчёт локальных переменных? Или это предостережение имело место к младшим моделям? Просто как я сказал для проекта естественно буду брать уже мощные.
По языку: спокойно гуглю С.
Re: Микроконтроллеры серии STM32 для новичков.
Добавлено: 01 июн 2017, 08:29
MX_Master
у STM32 достаточно памяти для большинства проектов, можно не парится. У вашего малыша STM32F103C8T6 - 20 Кбайт. Этого хватит под кучу переменных и пару-тройку крупных массивов (для буферов).
Re: Микроконтроллеры серии STM32 для новичков.
Добавлено: 01 июн 2017, 09:11
michael-yurov
MX_Master писал(а):У вашего малыша STM32F103C8T6 - 20 Кбайт.
Это только "оперативка".
И "жесткий диск" еще на 64 КБ.
Re: Микроконтроллеры серии STM32 для новичков.
Добавлено: 01 июн 2017, 09:20
michael-yurov
AndyBig писал(а):Сравнить, наверное, можно со строительством
Я бы еще добавил, что у STM32 большой объем серьезной переферии.
Если сравнивать со строительством, то это и водопровод и канализация, и отопление и вентиляция с регулировкой климата, и скоростной интернет и почтовый ящик и даже дебаркадер, если потребуется.
А вот у ардуины все приходится таскать ведрами - и дрова и воду из колодца и интернет...
Конечно, с ведрами разобраться намного проще, чем со всеми этими сложными штуками, но зато в большинстве случаев они (сложные штуки у STM32) предоставляют очень серьезные возможности и работают сами не отвлекая на это процессор.
Re: Микроконтроллеры серии STM32 для новичков.
Добавлено: 01 июн 2017, 09:28
maxvalin
michael-yurov писал(а):И "жесткий диск" еще на 64 КБ.
ну вот как раз для глобальных переменных

а насчет ведер:
Как бы на то и не вышло что проц будет работать не шустрее avr-овского из-за нагрузки на все эти комуникации.
Re: Микроконтроллеры серии STM32 для новичков.
Добавлено: 01 июн 2017, 09:43
michael-yurov
maxvalin писал(а):ну вот как раз для глобальных переменных
Не для глобальных переменных а для кода программы.
А переменные, что локальные, что глобальные находятся в одной и той же памяти.
maxvalin писал(а):а насчет ведер:
Как бы на то и не вышло что проц будет работать не шустрее avr-овского из-за нагрузки на все эти комуникации.
Я же уточнил, что у STM32 вся эта периферия работает самостоятельно без загрузки процессора, в т.ч. используя прямой доступ к памяти.
Re: Микроконтроллеры серии STM32 для новичков.
Добавлено: 01 июн 2017, 09:50
Сергей Саныч
michael-yurov писал(а):Это только "оперативка".
И "жесткий диск" еще на 64 КБ.
я бы не рискнул отождествлять программную флэш-память МК с жестким диском ПК.
maxvalin писал(а):ну вот как раз для глобальных переменных

Лучше для констант. Писать в нее из программы можно, но это не слишком просто. И ресурс ограниченный по числу перезаписей.
maxvalin писал(а):Как бы на то и не вышло что проц будет работать не шустрее avr-овского из-за нагрузки на все эти комуникации.
Если с умом подойти, процессор, наоборот, разгрузится.