Stm32 с чего начать изучение...

Кто любит RISC в жизни, заходим, не стесняемся.
Аватара пользователя
СЦБист
Это не хвост, это антенна
Сообщения: 1337
Зарегистрирован: Сб июн 09, 2012 02:14:11
Откуда: ХАРЬКОВ

Re: Stm32 с чего начать изучение...

Сообщение СЦБист »

Мурик писал(а):Это примерно как с WinAPI.



в WinAPI мы не знаем как реализована начинка функций.

знаем только что она принимает и что возвращает

.главная задача периферии с точки зрения кода это ее инициализация.

поэтому мы и лезим в документацию что-бы правильно инициализировать периферию.

как я понял это можно сделать и визуальным тыканьем мыши.
SashaN123
Опытный кот
Сообщения: 812
Зарегистрирован: Сб июл 02, 2016 20:22:23

Re: Stm32 с чего начать изучение...

Сообщение SashaN123 »

...Комуто интересно копаться в железе проца, видимо что бы выжать сколько то дополнительных процентов быстродействия из микрухи. А комуто этого быстродействия хватает и он хочет использовать хорошо отрабработанный и готовый инструментарий через готовые функции и драйвера. И тем и другим должно быть дано право использования АРМ.
Кстати вторые вполне могут давать тем самым хлеб первым...

Даже просто на переводе документации на руский вполне можно было б заработать...

Как, вон, различные сайты знакомств зарабатывают. Есть общий доступ для всех (для привлечения чайников) , а есть платный доступ для вип (для чего нить посерьезнее).
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Stm32 с чего начать изучение...

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

SashaN123, если так хочется простоты то откройте для себя куб. https://habrahabr.ru/post/213561/
Еще проще ардуино. :) Нужно уметь читать и тыкать мышкой. :)))

SashaN123 писал(а):Как, вон, различные сайты знакомств зарабатывают.
Вот идите туда и гребите деньги лопатой. :)))
Аватара пользователя
SIM31
Это не хвост, это антенна
Сообщения: 1363
Зарегистрирован: Чт апр 04, 2013 22:22:57
Откуда: Белгород, РФ

Re: Stm32 с чего начать изучение...

Сообщение SIM31 »

Мурик писал(а):SashaN123, если так хочется простоты то откройте для себя куб. https://habrahabr.ru/post/213561/
Еще проще ардуино. :) Нужно уметь читать и тыкать мышкой. :)))


Ну вообще-то не проще, так как это генератор шаблонов для ранее установленного компилятора. И аналог не Arduino, а скорее Codevision AVR. Который как-раз проще, в связке с отладчиком Proteus вообще творит чудеса, виртуально можно проверить ШИМ, таймеры, понажимать кнопки, отладить аналоговые части.
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Stm32 с чего начать изучение...

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

SIM31 писал(а):Который как-раз проще, в связке с отладчиком Proteus вообще творит чудеса
В протеусе часто работает не так как в железе. :dont_know: И STM32 вместе с ST-Link, J-Link и т. д. "рвет" протеус как тузик грелку. :)))
Аватара пользователя
Andrew Martin
Вымогатель припоя
Сообщения: 606
Зарегистрирован: Вт июн 25, 2013 18:45:07

Re: Stm32 с чего начать изучение...

Сообщение Andrew Martin »

Мурик писал(а):
Andrew Martin писал(а):мечта и у STM - закрыть прямой доступ к периферии
Смысл? Многие сменят производителя МК и уровень продаж у ST уменьшится. Им это нужно?


Это всеобщая тенденция, а не только у STM. Поэтому к тому времени достойной альтернативы может и не быть. А STM попросту может продолжать демпинг, чем она нынче и занимается.
А смысл в том, что тогда можно изменять сколько угодно (до неузнаваемости) аппаратную часть, нисколько не заботясь о проблемах миграции и совместимости - только править HAL при этом.
Аватара пользователя
Andrew Martin
Вымогатель припоя
Сообщения: 606
Зарегистрирован: Вт июн 25, 2013 18:45:07

Re: Stm32 с чего начать изучение...

Сообщение Andrew Martin »

Мурик писал(а):В протеусе часто работает не так как в железе. :dont_know:


Нужно знать специфику и ограничения протеуса, тогда и сюрпризов не будет :)
По-моему одна из основных ценностей отладчика - возможность пошаговой отладки. С этой точки зрения в ряде приложений отладчик абсолютно бесполезен.
Аватара пользователя
scorpi_0n
Вымогатель припоя
Сообщения: 616
Зарегистрирован: Вс ноя 01, 2015 13:13:49

Re: Stm32 с чего начать изучение...

Сообщение scorpi_0n »

СЦБист писал(а):
.главная задача периферии с точки зрения кода это ее инициализация.

поэтому мы и лезим в документацию что-бы правильно инициализировать периферию.

как я понял это можно сделать и визуальным тыканьем мыши.

Нельзя. Для того чтобы правильно инициализировать периферию нужно знать как она работает, что визуальное тыкание не даёт изначально.
Аватара пользователя
scorpi_0n
Вымогатель припоя
Сообщения: 616
Зарегистрирован: Вс ноя 01, 2015 13:13:49

Re: Stm32 с чего начать изучение...

Сообщение scorpi_0n »

Andrew Martin писал(а):А смысл в том, что тогда можно изменять сколько угодно (до неузнаваемости) аппаратную часть, нисколько не заботясь о проблемах миграции и совместимости - только править HAL при этом.

Ну замутите не думая "о проблемах миграции и совместимости" хардварно 9-бит СПИ на Ф100 при переходе с Ф0ХХ. Что, не получается?
SashaN123
Опытный кот
Сообщения: 812
Зарегистрирован: Сб июл 02, 2016 20:22:23

Re: Stm32 с чего начать изучение...

Сообщение SashaN123 »

В этой http://amperka.ru/product/iskra-js вещичке ушли от необходимости знать архитектуру микросхемы?
Аватара пользователя
Andrew Martin
Вымогатель припоя
Сообщения: 606
Зарегистрирован: Вт июн 25, 2013 18:45:07

Re: Stm32 с чего начать изучение...

Сообщение Andrew Martin »

scorpi_0n писал(а):Ну замутите не думая "о проблемах миграции и совместимости" хардварно 9-бит СПИ на Ф100 при переходе с Ф0ХХ. Что, не получается?


Не надо сравнивать несравнимые вещи.
Ф0 новее Ф1, и поэтому имеют более совершенную периферию. Неуместно в рамках эволюции говорить о совместимости "сверху вниз" и переходе на устаревшие семейства, только "снизу вверх".
Аватара пользователя
scorpi_0n
Вымогатель припоя
Сообщения: 616
Зарегистрирован: Вс ноя 01, 2015 13:13:49

Re: Stm32 с чего начать изучение...

Сообщение scorpi_0n »

Тогда зачем вообще твердить "о проблемах миграции и совместимости"? Можно замутить ногодрыгом аля ардуина, но разве это выход? И о каком "сверху вниз" может идти речь, если Ф0ХХ самая простая и нижняя линейка СТМ32?
Аватара пользователя
Andrew Martin
Вымогатель припоя
Сообщения: 606
Зарегистрирован: Вт июн 25, 2013 18:45:07

Re: Stm32 с чего начать изучение...

Сообщение Andrew Martin »

В том то и прелесть закрытой аппаратной части, что производитель как раз может в HAL что-то замутить ногодрыгом, чтобы обеспечить работу "нового" кода на "старом" МК той же линейки, а вы и знать не будете :)))
Глупо в общем-то говорить о совместимости "сверху вниз" линеек МК на разных ядрах, когда даже без периферии код всё равно будет работать неоптимально. Но возможно будет ещё более новая линейка на М0 (на замену Ф0), и тогда встанет вопрос совместимости.
Аватара пользователя
scorpi_0n
Вымогатель припоя
Сообщения: 616
Зарегистрирован: Вс ноя 01, 2015 13:13:49

Re: Stm32 с чего начать изучение...

Сообщение scorpi_0n »

Andrew Martin писал(а):Неуместно в рамках эволюции говорить о совместимости "сверху вниз" и переходе на устаревшие семейства, только "снизу вверх".

Andrew Martin писал(а):Глупо в общем-то говорить о совместимости "сверху вниз" линеек МК на разных ядрах

Ну так и перестаньте говорить глупости если не в теме. Или почитайте хоть что нибудь о линейках СТМ32 чтобы иметь представление о ядрах и периферии.
Аватара пользователя
Andrew Martin
Вымогатель припоя
Сообщения: 606
Зарегистрирован: Вт июн 25, 2013 18:45:07

Re: Stm32 с чего начать изучение...

Сообщение Andrew Martin »

scorpi_0n писал(а):Ну так и перестаньте говорить глупости если не в теме. Или почитайте хоть что нибудь о линейках СТМ32 чтобы иметь представление о ядрах и периферии.


Я в отличие от вас не смешиваю мухи с котлетами и не задаюсь вопросом совместимости по периферии и миграции с относительно новых (хотя и "нижних", на ядре М0) F0хх до древних (хотя и на ядре М3) F100. Одно дело разделение на линейки, а другое - хронология их появления.

Правильная аналогия - это сравнение, например, ATMEGA8/16/32 и ATMEGA88/168/328. Последние - это результат эволюции первых, ядро у всех AVR, а по периферии (и особенно по доступу к ней) отличия существенные. Здесь как раз проблему совместимости может решить HAL, чтобы код для Меги8 работал на Меге88.
Аватара пользователя
Ярослав555
Поставщик валерьянки для Кота
Сообщения: 2081
Зарегистрирован: Пт май 31, 2013 17:14:38
Откуда: Украина, Винница

Re: Stm32 с чего начать изучение...

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

Здравствуйте. Вливаюсь в тему. Значит, перехожу я с меги на stm32. Пока в любительском русле, а там посмотрим. С мегами работал в иаре, тут тоже буду юзать его. Светодиодом моргал, даже програмный шимчик делал)) С цапом получилось поиграться. Но пока что очень трудно вложить в голову логику работы периферии, так сказать ее схему. Имею ввиду АЦП. Не хочу использовать HAL, не будем это обсуждать)
Хочу запустить АЦП в режиме ручного запуска, на один канал, самый простой пример использования.

RCC->APB2ENR|=RCC_APB2ENR_ADC1EN;//тактирование АЦП
ADC1->CR1|=ADC_CR1_EOCIE;//включить прерывание АЦП
ADC1->CR2|= ADC_CR2_EXTSEL_0 | ADC_CR2_EXTSEL_1 | ADC_CR2_EXTSEL_2;//програмный запуск АЦП
ADC1->CR2|=ADC_CR2_CAL;//калибровка (не факт что правильно использую)
ADC1->CR2|=ADC_CR2_CONT;//непрерывный режим преобразования
ADC1->CR2|=ADC_CR2_ADON;//включить АЦП
ADC1->SMPR2|=ADC_SMPR2_SMP1;//максимальное время преобразования для 1 канала
ADC1->SQR1&=~ADC_SQR1_L_0|ADC_SQR1_L_1|ADC_SQR1_L_2|ADC_SQR1_L_3;//0000 означает что в списке регулярных каналов у нас 1 канал
ADC1->SQR3|= ADC_SQR3_SQ1_0;//первый вход АЦП
ADC1->CR2|=ADC_CR2_SWSTART;//старт АЦП
while(1){
y=ADC1->SR;
ADC_complete=(ADC1->SR&ADC_SR_EOC);
while(ADC_complete){
x=ADC1->DR;
}
}
Подскажите что я не так включил? В прерывание не уходит, регистр статуса чекаю - бит готовности всегда 0 (x,y использую для мониторинга в отладчике).
Аватара пользователя
Z_h_e
Собутыльник Кота
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Re: Stm32 с чего начать изучение...

Сообщение Z_h_e »

Ярослав555 писал(а):Хочу запустить АЦП
Я вот так запускал.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Аватара пользователя
Ярослав555
Поставщик валерьянки для Кота
Сообщения: 2081
Зарегистрирован: Пт май 31, 2013 17:14:38
Откуда: Украина, Винница

Re: Stm32 с чего начать изучение...

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

Z_h_e писал(а): Я вот так запускал.

инжектированый режим хотелось отложить на потом. А вот:
Z_h_e писал(а):Запустил я АЦП как хотел, не хватало вот этого

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

ADC1->CR1|=ADC_CR1_SCAN;//сканирование каналов

интересный момент. Вообще оно как-то в голове все перемешалось регулярные, инжектированые, режим сканирования, непрерывный (а discontinius вообще еще не вкурил как - одноразовый чтоли). Только вторая неделя разбирательства, надеюсь в конце в голове выстроится рабочая модель и понимание логики внутри блока.
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Re: Stm32 с чего начать изучение...

Сообщение Reflector »

Ярослав555 писал(а):ADC1->CR2|=ADC_CR2_CAL;//калибровка (не факт что правильно использую)

This bit is set by software to start the calibration. It is reset by hardware after calibration is complete.
Вроде все просто, нужно ждать пока битик не сбросится.

ADC1->CR2|=ADC_CR2_ADON;//включить АЦП

0: Disable ADC conversion/calibration and go to power down mode.
Тоже вроде все логично, калибровку нужно было делать после включения ADC, а не до :)
Аватара пользователя
Ярослав555
Поставщик валерьянки для Кота
Сообщения: 2081
Зарегистрирован: Пт май 31, 2013 17:14:38
Откуда: Украина, Винница

Re: Stm32 с чего начать изучение...

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

Reflector писал(а):
Ярослав555 писал(а):ADC1->CR2|=ADC_CR2_CAL;//калибровка (не факт что правильно использую)

This bit is set by software to start the calibration. It is reset by hardware after calibration is complete.
Вроде все просто, нужно ждать пока битик не сбросится.

ADC1->CR2|=ADC_CR2_ADON;//включить АЦП

0: Disable ADC conversion/calibration and go to power down mode.
Тоже вроде все логично, калибровку нужно было делать после включения ADC, а не до :)

Упс. Установку битов делал в порядке следования в даташите.
Нет, пока не заработало. Перенес включение в конец инициализации, калибровку после включения - что включал, что выключал калибровку - одинаково. Видимо проблема еще где-то.
P.S. Но калибровку проходит - в дата регистре висит значение 0х41.
Ответить

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