STM32 новичку в ARM что к чему

Кто любит RISC в жизни, заходим, не стесняемся.
Аватара пользователя
prinv
Вымогатель припоя
Сообщения: 677
Зарегистрирован: Чт янв 20, 2011 09:07:08
Откуда: Пермь
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение prinv »

[uquote="СКАЗОЧНИК",url="/forum/viewtopic.php?p=3553713#p3553713"]Или я че то гоню? :?[/uquote]
GPIO_InitTypeDef != GPIO_TypeDef

[uquote="СКАЗОЧНИК",url="/forum/viewtopic.php?p=3553717#p3553717"]Где это? Как это включить? Чего нажать?[/uquote]
Правой кнопкой кликнуть на типе
Никакая контра не уйдёт от нас
Реклама
Аватара пользователя
СКАЗОЧНИК
Идёт направо - песнь заводит, Налево - сказку говорит.
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Re: STM32 новичку в ARM что к чему

Сообщение СКАЗОЧНИК »

Блин! Вы золотой человек! :beer:
Станислав
Реклама
Аватара пользователя
prinv
Вымогатель припоя
Сообщения: 677
Зарегистрирован: Чт янв 20, 2011 09:07:08
Откуда: Пермь
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение prinv »

Спасибо, но я сам только учусь.
Никакая контра не уйдёт от нас
Аватара пользователя
СКАЗОЧНИК
Идёт направо - песнь заводит, Налево - сказку говорит.
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Re: STM32 новичку в ARM что к чему

Сообщение СКАЗОЧНИК »

Хотел лайкнуть вам, а движок форума еще не наладили. ) Поощрения виртуальные не работают.
Станислав
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: STM32 новичку в ARM что к чему

Сообщение Мурик »

СКАЗОЧНИК писал(а):А если я не знаю, что мне нужна именно эта функция?
Допустим нужны функции для RCC. Открываете файл stm32f1xx_rcc.c и смотрите список функций.
СпойлерИзображение
Funct.png
(89.98 КБ) 92 скачивания
Ищите функцию с подходящим названием и кликаете по ней для получения дополнительной информации.
Если имя функции известно, то все гораздо проще. Три первых пункта контекстного меню для поиска объявления, реализации и ссылок на функцию.
СпойлерИзображение
Find.png
(19.78 КБ) 88 скачиваний
Реклама
Аватара пользователя
СКАЗОЧНИК
Идёт направо - песнь заводит, Налево - сказку говорит.
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Re: STM32 новичку в ARM что к чему

Сообщение СКАЗОЧНИК »

Вот и я уже посмотрел, что Кейл не такой простой на самом деле. В плане того, что его отдельно еще надо изучать. Есть там все, просто надо по вкладочкам окон полазить и лучше станет. Ладно, не все сразу приходит. ))))

Вопросов еще будет много... И тупых тоже.

Добавлено after 32 minutes 47 seconds:
Подскажите еще, вот у меня куча библиотек подключилась в дереве проектов и при компиляции он их все по очереди шурудит, чем очень долго соображает. Как их оттуда удалить лишние, если я не использую?

Добавлено after 1 minute 36 seconds:
На них еще ключики нарисованы...

Добавлено after 4 minutes 13 seconds:
З.Ы.

И еще, вот такая штука есть
port.GPIO_Mode = GPIO_Mode_Out_PP;
port.GPIO_Pin = GPIO_Pin_0;
port.GPIO_Speed = GPIO_Speed_2MHz;

В ней сконфигурирован один вывод порта на ВЫХОД как пуш-пул с частотой тактирования 2 МГц.

А как мне сконфигурировать сразу 8 выводов в таком же виде? от РА0 до РА7?

З.З.Ы. и правильно ли я понимаю, что в данном виде, если не использовать задержки никакие (или таймеры) то светодиод на этом выводе будет моргать с частотой 2 МГц?

Добавлено after 16 minutes 15 seconds:
И маленько меня можно поздравить 8) Я зажег свой собственный светодиодик!
Вот, кстати, эти платки мне подарили на КотМороз 2019. :hunger: Платку с синенькими светодиодиками пришлось чуток доработать.
СпойлерИзображение

З.З.З.Ы. А как еще настроить чтобы СТ-Линк 2 прямо из Кейла прошивал ? А то он стирает и что-то типа шьет, но не ХЕКС. Приходится другой программой шить.
Станислав
Реклама
Аватара пользователя
Oxford
Опытный кот
Сообщения: 819
Зарегистрирован: Вт окт 23, 2012 13:17:25
Откуда: Прокопьевск
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение Oxford »

port.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2;

Скорость порта это немного другая штука.
Кого прошивал чет не понял? Вы порой такую хуйню придумываете что диву даешься вы под чем то находитесь?
Инженер R@D

Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
Аватара пользователя
СКАЗОЧНИК
Идёт направо - песнь заводит, Налево - сказку говорит.
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Re: STM32 новичку в ARM что к чему

Сообщение СКАЗОЧНИК »

Oxford писал(а):Вы порой такую хуйню придумываете что диву даешься вы под чем то находитесь?
Я уже пару недель себе мозг взырваю: языком Си, регистрами и библиотеками СТМ32... АРМ архитектурой... Тут из без "под чем-то" можно двинуться.
До сих пор многое понять не могу. Одно ссылается на другое. Структуры ссылаются на структуры. В функции передаются структуры и просто константы... В глазах рябит. С одной подключенной библиотеки прыгает в другую. А тактирование, оказывается по умолчанию CMSYS без меня уже настроил... :facepalm:
И тут ошибся... Ничего он не настроил.
Микроконтроллер получается сам запускается от внутреннего RC генератора на 8 МГц?

Тяжело это все дается, когда до этого немного сидел с AVRками и на ассемблере.

А спросить я хотел про это (может не так выразился)... :

У меня плата, та что на фотографии по SWD через ST-LINK V2 подключена к компу. На компе у меня Кейл установлен. Где-то возможно в Кейле есть галочка, чтобы использовать этот СТ-Линк для заливки hex файла прямо в контроллер. Чтобы не использовать другие программы.


P/S
ТАк:
port.GPIO_Mode = GPIO_Mode_Out_PP;
port.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 |GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7;
port.GPIO_Speed = GPIO_Speed_2MHz;

1. Значит все выводы порта настроились как пуш-пул?
2. Тактирование также для всех?

Добавлено after 13 minutes 3 seconds:
Проверил. Так работает и все светодиоды горят. Тяжело доходит, что мы в переменную структуры сначала запихали целую маску? Потом все это передали в функцию.

Может ну ее эту SPL. ?! Почему везде пишут, что с нею проще, а я не могу догнать где что в МК происходит, не то, что в МК даже в самой SPL?
Станислав
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: STM32 новичку в ARM что к чему

Сообщение dosikus »

Сказочник, прочтите для начала .
http://mcu.goodboard.ru/viewtopic.php?id=15

http://mcu.goodboard.ru/viewtopic.php?id=11
И крайне не советую слушать Мурика.
Это такой же тыкальщик, ничего не соображающий...
Аватара пользователя
prinv
Вымогатель припоя
Сообщения: 677
Зарегистрирован: Чт янв 20, 2011 09:07:08
Откуда: Пермь
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение prinv »

И это ещё не начали CubeMX и HAL советовать! :-)
Никакая контра не уйдёт от нас
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: STM32 новичку в ARM что к чему

Сообщение Мурик »

СКАЗОЧНИК писал(а):Может ну ее эту SPL. ?! Почему везде пишут, что с нею проще, а я не могу догнать где что в МК происходит, не то, что в МК даже в самой SPL?
Неужели сложно посмотреть код функции и попытаться понят как она устроена? Запустите отладку и посмотрите по шагам что и как выполняется. Что в регистрах и в переменных. Станет намного понятней.

Если непонятна SPL, попробуйте написать код без нее.

Не слушайте dosikus'а. От него нет пользы в большинстве случаев. Он обычно только хамит на форуме.
Последний раз редактировалось Мурик Пн янв 21, 2019 20:29:22, всего редактировалось 2 раза.
Аватара пользователя
СКАЗОЧНИК
Идёт направо - песнь заводит, Налево - сказку говорит.
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Re: STM32 новичку в ARM что к чему

Сообщение СКАЗОЧНИК »

КубМХ я уже попробовал один раз. Он там понаписал всякой кучи... Вроде ничего плохого, но пока рано.

Опять холивар начинается?
Станислав
Аватара пользователя
prinv
Вымогатель припоя
Сообщения: 677
Зарегистрирован: Чт янв 20, 2011 09:07:08
Откуда: Пермь
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение prinv »

Посмотрите http://narodstream.ru/programmirovanie-mk-stm32/ - не идеал, но вполне доступно рассказывает дядька.
Никакая контра не уйдёт от нас
Аватара пользователя
afz
Опытный кот
Сообщения: 744
Зарегистрирован: Сб дек 22, 2012 08:17:42
Откуда: Караганда, Казахстан

Re: STM32 новичку в ARM что к чему

Сообщение afz »

СКАЗОЧНИК, а вообще, надо, все-таки, прочитать описание аппаратуры МК. Поскольку STM32 - изделие сложное и объем документации на него во много раз больше, чем у тех же АВР-ок, ST не стали толкать всю документацию в один даташит. Кроме даташита, на каждое семейство ST-шных МК есть еще Programming manual, в котором описаны особенности реализации ядра ARM в конкретном семействе и Reference manual, в котором описана периферия этого семейства.

В частности, для F103 это документы PM0056 и RM0008. Ищутся на st.com в одно движение: набираешь в ST-шном поисковике PM0056 или RM0008 и первая ссылка указывает на нужную ПДФ-ку. И тот самый RM0008 - первоисточник символических наименований для всех регистров и битов этого МК.

Внимание! Кто держит копию RM0008 у себя, обновите ее. В только что прошедшем декабре вышла 20-я ревизия этого документа.

Добавлено after 1 hour 22 minutes 28 seconds:
СКАЗОЧНИК писал(а):Может ну ее эту SPL. ?! Почему везде пишут, что с нею проще, а я не могу догнать где что в МК происходит, не то, что в МК даже в самой SPL?
SPL уже всё. Нет ее.

А воевать с битами GPIO, наверное, проще, все-таки, напрямую. В заголовочном файле stm32f10x.h описаны константные указатели на GPIO, они так и называются - GPIOA, GPIOB, ... Включил тактирование выбранного порта, дальше делаешь

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

GPIOC->CRH &= 0xFF0FFFFF; // Очистить CNF13 и MODE13
GPIOC->CRH |= 0x00200000; // GPIOC бит 13 - режим вывода до 2 МГц
и все, можешь мигать светодиодом на GPIOC 13 (второй красный светодиод на основной плате). Да, "магические числа", но без них ни хрена не поймешь, по крайней мере поначалу. А мигать, например, так:

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

GPIOC->BSRR = 0x2000; // Погасить светодиод на GPIOC13. 
                      // Он включен между ногой C13 и +3.3, 
                      // поэтому гасит его единица на ноге C13.
...
GPIOC->BRR = 0x2000; // Зажечь светодиод на С13
Можно "мигать" и другими способами, например прямой записью в GPIOC->ODR, или записью в старшие 16 битов GPIOC->BSRR. Опять же, "магические числа", но без них не прочувствуешь, как себя ведут эти самые GPIO.

Теперь чуток про Кейл. Давишь ему в строке меню Flash, выбираешь Configure Flash Tools, справа вверху выбираешь ST-Link Debugger и, при подключенном ST-Link'е давишь рядом кнопку Settings. Кейл сам опознает ST-Link V2, порт там будет стоять JTAG, это не годится, замени на SW. Перейди на вкладку Flash Download и добавь там галочку Reset and Run, остальные не трогай. Все. Можешь заливать свежесобранный проект прямо из Кейла, можешь отлаживать "в железе" - нажми кнопку Start/Stop Debugging Session, и хоть исполняй по одной команде, хоть назначай брекпоинты, хоть что хочешь - отладчик у Кейла весьма продвинутый.
Кто мешает тебе выдумать порох непромокаемый? (К. Прутков, мысль № 133)
Аватара пользователя
СКАЗОЧНИК
Идёт направо - песнь заводит, Налево - сказку говорит.
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Re: STM32 новичку в ARM что к чему

Сообщение СКАЗОЧНИК »

afz писал(а):Можно "мигать" и другими способами, например прямой записью в GPIOC->ODR, или записью в старшие 16 битов GPIOC->BSRR. Опять же, "магические числа", но без них не прочувствуешь, как себя ведут эти самые GPIO.
Это я уже читал где-то. Либо наложением масок как в обычной АВР использовать регистр ODR либо через бит-бандинг, использовать регистр BSRR, который разделен пополам, либо его младшие для установки бита, а второй регистр BRR, его младшие для сброса (работает эта байда в два раза быстрее примерно).

ПО Рефренс Мануалу, он вроде как и у АВРок написан, но только страниц не 200, а 1070. И в нем описан каждый регистр. Его вроде как рекомендовали читать выборочно, занимаешься АЦП, открыл раздел, почитал и т.д. Весь читать бессмысленно, все равно не запомнишь.

И да, даже с магическими цифрами, но Ваш код выглядит намного проще. :beer:

Добавлено after 6 minutes 46 seconds:
И программатор заработал из Кеейла! Спасибо огромное!

Добавлено after 4 minutes 48 seconds:
И отладка пошаговая работает! Как необычно тыкать F11 и наблюдать за самой платой. ))

З.Ы. Все равно информация в голове уляжется и я пойму, как все это просто.
Станислав
Аватара пользователя
afz
Опытный кот
Сообщения: 744
Зарегистрирован: Сб дек 22, 2012 08:17:42
Откуда: Караганда, Казахстан

Re: STM32 новичку в ARM что к чему

Сообщение afz »

СКАЗОЧНИК писал(а):Его вроде как рекомендовали читать выборочно, занимаешься АЦП, открыл раздел, почитал и т.д. Весь читать бессмысленно, все равно не запомнишь.
Угу, но бегло просмотреть, что там есть, все-таки, полезно. А так - да, занялся чем-то конкретным - теми же GPIO - открыл нужный раздел, и читай до полного просветления.
СКАЗОЧНИК писал(а):И отладка пошаговая работает! Как необычно тыкать F11 и наблюдать за самой платой. ))
Это в АВР дико не иметь возможности пройтись по своей железке с отладчиком, а в STM32 все ОК!

Да, а начинать проект в Кейле ты научился? В смысле, накидал в Manage Run-Time Enviroment всё, что нужно, а далее просто включил в начало своей программы

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

#include "RTE_Components.h"
#include "stm32f10x.h"
и вперед! Так?

Добавлено after 23 minutes 55 seconds:
СКАЗОЧНИК писал(а):ПО Рефренс Мануалу, он вроде как и у АВРок написан, но только страниц не 200, а 1070.
Э-э-э, а RM-то у тебя старый! Новый RM0008 - ревизия 20, декабрь 2018, 1134 страницы. Welcome to st.com
Кто мешает тебе выдумать порох непромокаемый? (К. Прутков, мысль № 133)
Аватара пользователя
Ярослав555
Поставщик валерьянки для Кота
Сообщения: 2081
Зарегистрирован: Пт май 31, 2013 17:14:38
Откуда: Украина, Винница

Re: STM32 новичку в ARM что к чему

Сообщение Ярослав555 »

[uquote="afz",url="/forum/viewtopic.php?p=3554346#p3554346"]Это в АВР дико не иметь возможности пройтись по своей железке с отладчиком, а в STM32 все ОК![/uquote]
https://www.tme.eu/ru/details/atatmel-i ... _SEALw_wcB
http://easyelectronics.ru/vnutrisxemnay ... g-ice.html
В чем проблема то? :tea:
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: STM32 новичку в ARM что к чему

Сообщение dosikus »

[uquote="Ярослав555",url="/forum/viewtopic.php?p=3554401#p3554401"]В чем проблема то? :tea:[/uquote]

В внушительной разнице между дебагом арм и псевдо в 8ми битных пЫк/авр ...
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: STM32 новичку в ARM что к чему

Сообщение Мурик »

afz писал(а):SPL уже всё.
У нее статус Active. https://www.st.com/content/st_com/en/pr ... 32054.html
Думаю понимаете что это значит?

Ярослав555, не все AVR поддерживают JTAG, а те что поддерживают требуют его включения через фьюзы. Это не очень удобно.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18561
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение ARV »

Мурик писал(а):а те что поддерживают требуют его включения через фьюзы
требуют выключения. по умолчанию он всегда включен.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Ответить

Вернуться в «ARM»