Перейти к содержанию

stm32f4 как настроить шим


Ivan Rusev

Рекомендуемые сообщения

02.06.2020 в 16:58, BARS_ сказал:

0x55500000;

Ваши коллеги меня опустили на самое дно.Хотя в нете много мусора.Что тут плохого .Я любитель.У вас 10-20 лет стажа.Не судите ибо вы судимы будете.

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

40 минут назад, Ivan Rusev сказал:

И этот бред мне дал понять как нужно.

Что нужно? Нужно прочесть учебник по Си? Конечно нужно, без этого никак.

 

42 минуты назад, Ivan Rusev сказал:

Контроллерами 5 с половиной год занимаюсь.С stm32 даже года не будет.

Ну нельзя же 5 лет программить контроллеры и до сих пор не выучить Си. Разве что все 5 лет был ассемблер.

 

43 минуты назад, Ivan Rusev сказал:

Такой настройки я не видел.

Еще бы. Нафиг писать простыню кода, когда все решается короткой строкой? Ведь все просто. Имеем два регистра AFRL. Каждый отвечает за настройку 8 пинов порта:

image.png.dfe4520b5560ed5134e8b9de1cad90df.png

Каждые 4 бита - настройка одного пина. Т.е. в записи

GPIOA->AFR[0] |= 0x55500000;

каждая цифра = настройка одного пина. Конкретно тут настраиваются пины А5, А6, А7. Пины с 8 по 15 лежат в AFR[1]. Причем в такой записи сразу ясно, что записано в настройку пина, ибо эта циферка бьется с таблицей из даташита:

image.png.689b6d9053c82837474e86e15e602fe4.png

 

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

Ну не умеет он, ему готовая функция нужна...

https://bitbucket.org/AVI-crak/rtos-cortex-m3-gcc/src/default/

Файлы gpio_one.h - заметить сточку /#include "GPIO_ONE32F746BG.h"/ и один нужный вам из каталога gpio_one_all. Для f412rg - там точно есть файл.

Использовать - gpio_one_pin(zap_gpio. - а дальше будет подсказка.

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

    /// SPI4
    gpio_one_pin(zap_gpio.E.pin02.v_af05_spi4_sck.speed4.pull_up.lock_on);             /// spi4_sck
    gpio_one_pin(zap_gpio.E.pin04.out.speed4.lock_on);                                 /// spi4_nss
    gpio_one_pin(zap_gpio.E.pin05.v_af05_spi4_miso.speed4.pull_up.lock_on);            /// spi4-mo
    gpio_one_pin(zap_gpio.E.pin06.v_af05_spi4_mosi.speed4.pull_up.lock_on);            /// spi4_mi
    gpio_one_pin(zap_gpio.A.pin00.analog.lock_on);                                      /// adc1-0 - PA0. 43
    gpio_one_pin(zap_gpio.A.pin03.analog.lock_on);                                      /// adc2-2 - PA3. 50
    gpio_one_pin(zap_gpio.C.pin03.analog.lock_on);                                      /// adc3-13 - PC3. 38

 

Изменено пользователем AVI-crak Home
Ссылка на комментарий
Поделиться на другие сайты

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. 

Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Си не Си .В каждом контролере  свои регистры.Были AVR.Ci тут не причём.В обьектном программировании тоже СИ но  другой немного.

Stm32 не AVR.

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

Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. 

Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств. Подробнее параметры и результаты тестов новой серии PLM по ссылке.

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

4 минуты назад, Ivan Rusev сказал:

В каждом контролере  свои регистры

При чем тут регистры? Речь именно и Си. У него обращение к регистрам абсолютно одинаковое везде. Так что в STM и AVR Си абсолютно одинаковый. Да и принципы работы желез тоже, как и у всех МК.

 

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

Stm32 не AVR.

Ты не поверишь, я тоже начинал с AVR, а потом спокойной перешел на STM. По крайней мере с базовым функционалом, типа прерываний таймеров, портов, SPI проблем вообще не было. Наоборот, у STM куда проще и логичнее настройка.

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

Литиевые батарейки и аккумуляторы от мирового лидера  EVE в Компэл

Компания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. Недавно EVE была объявлена поставщиком новых аккумуляторных элементов круглого формата для электрических моделей «нового класса» компании BMW.

Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

@BARS_ тут у тебя случайно нет ошибки?  (нету проверил)

GPIOA->OTYPER &= ~GPIO_OTYPER_OT_5 & ~GPIO_OTYPER_OT_6 & ~GPIO_OTYPER_OT_7;

как по мне так нагляднее:

GPIOA->OTYPER &= ~(GPIO_OTYPER_OT_5 | GPIO_OTYPER_OT_6 | GPIO_OTYPER_OT_7);

 

Изменено пользователем MasterElectric
Ссылка на комментарий
Поделиться на другие сайты

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

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

5 часов назад, AVI-crak Home сказал:

Ну не умеет он, ему готовая функция нужна...

https://bitbucket.org/AVI-crak/rtos-cortex-m3-gcc/src/default/

Файлы gpio_one.h - заметить сточку /#include "GPIO_ONE32F746BG.h"/ и один нужный вам из каталога gpio_one_all. Для f412rg - там точно есть файл.

Использовать - gpio_one_pin(zap_gpio. - а дальше будет подсказка.

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


    /// SPI4
    gpio_one_pin(zap_gpio.E.pin02.v_af05_spi4_sck.speed4.pull_up.lock_on);             /// spi4_sck
    gpio_one_pin(zap_gpio.E.pin04.out.speed4.lock_on);                                 /// spi4_nss
    gpio_one_pin(zap_gpio.E.pin05.v_af05_spi4_miso.speed4.pull_up.lock_on);            /// spi4-mo
    gpio_one_pin(zap_gpio.E.pin06.v_af05_spi4_mosi.speed4.pull_up.lock_on);            /// spi4_mi
    gpio_one_pin(zap_gpio.A.pin00.analog.lock_on);                                      /// adc1-0 - PA0. 43
    gpio_one_pin(zap_gpio.A.pin03.analog.lock_on);                                      /// adc2-2 - PA3. 50
    gpio_one_pin(zap_gpio.C.pin03.analog.lock_on);                                      /// adc3-13 - PC3. 38

 

Надо же столько сношаться ради настройки пинов

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

1 час назад, MasterElectric сказал:

Надо же столько сношаться ради настройки пинов

Надо!!! Уже на третьем проекте с чипом в 200 ног - всякие GPIO_AFRL_AFRL1_1 и тому подобное, начинают дико бесить. Потом начинает бесить дма, чуть позже дма2д... Словом - бесит всё, что требует много раз открывать документацию.

 

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

11 часов назад, AVI-crak Home сказал:

всякие GPIO_AFRL_AFRL1_1 и тому подобное, начинают дико бесить.

А на кой оно надо? Что мешает сделать так?

	GPIOB->MODER = 1<<30 | 1<<28 | 1<<26 | 1<<24 | 1<<22 | 1<<18 | 1<<16 | 1<<10 | 1<<8 | 1<<6 | 1<<2 | 1; // R_OUT7 - R_OUT3 | LED_L2_G | LED_L2_B | LED_S_R | LED_S_G | LED_S_B | RST_E1 | CS_E1
	GPIOB->OTYPER = 0;
	GPIOB->OSPEEDR = 3<<30 | 3<<28 | 3<<26 | 3<<24 | 3<<22 | 3<<18 | 3<<16 | 3<<10 | 3<<8 | 3<<6 | 3<<2 | 3;
	
	GPIOE->MODER = 1<<30 | 1<<28 | 1<<8 | 1<<6 | 1<<2 | 1; // R_OUT2 | R_OUT1 | LED_L1_R | LED_L1_G | LED_L1_B | LED_L2_R
	GPIOE->OTYPER = 0;
	GPIOE->OSPEEDR = 3<<30 | 3<<28 | 3<<8 | 3<<6 | 3<<2 | 3;

МК на 100 ног, задействованы все ноги. 

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

1 час назад, BARS_ сказал:

А на кой оно надо? Что мешает сделать так?

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

В основном приходится настраивать по одному пину, потому что скорее всего будет очередное изменение разводки печатной платы и линия "кнопка А" может стать "светодиод 3" )))
А так у меня в отдельном файле находятся дефайны "#define LED1_PIN" и "#define LED1_PORT" и при изменении разводки, я их быстро и легко переопределяю. Но это мой частный случай. Не всем подойдет.

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

51 минуту назад, LiVit сказал:

А так у меня в отдельном файле находятся дефайны "#define LED1_PIN" и "#define LED1_PORT"

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

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

04.06.2020 в 17:56, BARS_ сказал:

При чем тут регистры? Речь именно и Си. У него обращение к регистрам абсолютно одинаковое везде. Так что в STM и AVR Си абсолютно одинаковый. Да и принципы работы желез тоже, как и у всех МК.

 

Ты не поверишь, я тоже начинал с AVR, а потом спокойной перешел на STM. По крайней мере с базовым функционалом, типа прерываний таймеров, портов, SPI проблем вообще не было. Наоборот, у STM куда проще и логичнее настройка.

Наверное ты прав.Но структура команд разная.Начинающему stm32 труднее вникнуть.Тут и тактирование.И регистров больше и периферия круче.

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

55 минут назад, Ivan Rusev сказал:

Наверное ты прав.Но структура команд разная

Вот так вот, коллеги.
Структура команд в сях зависит от типа микроконтроллера.:clapping:
Это что-то новенькое.
Жду дальнейших перлов. 

 

Иван, я с AVR дела не имел. Писал под 8051, PIC12, PIC18, некоторые мелкие NEC микроконтроллеры. Но, право слово, такого никогда не было, чтобы структура команд Си была зависима от процессора.

Там есть некоторые моменты с Little/Big endian, но не со структурой команд.

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

Хотя о чем я....

Изменено пользователем LiVit
Ссылка на комментарий
Поделиться на другие сайты

Какая ещё структура команд? Да на сях ты её вообще не касаешься. А настройки простейшей периферии, типа gpio, spi, таймеров, мало чем отличаются от любого другого мк, включая avr. А тактирование включить много ума не надо, тупо строка кода.

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

1 час назад, LiVit сказал:

Вот так вот, коллеги.
Структура команд в сях зависит от типа микроконтроллера.:clapping:
Это что-то новенькое.
Жду дальнейших перлов. 

 

Иван, я с AVR дела не имел. Писал под 8051, PIC12, PIC18, некоторые мелкие NEC микроконтроллеры. Но, право слово, такого никогда не было, чтобы структура команд Си была зависима от процессора.

Там есть некоторые моменты с Little/Big endian, но не со структурой команд.

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

Хотя о чем я....

В AVR всё  проще и понятнее.В STM нужно предугадывать.Уметь читать  и настройка периферии сложнее.Извените я не русский.Даже не славяьянин.Понял учител

1 минуту назад, BARS_ сказал:

Какая ещё структура команд? Да на сях ты её вообще не касаешься. А настройки простейшей периферии, типа gpio, spi, таймеров, мало чем отличаются от любого другого мк, включая avr. А тактирование включить много ума не надо, тупо строка кода.

Неправда.Настройка периферии отличается.В корне.

Вы учителя.А я не учител.Даже кухарка может управлять страной.Только нужно её научить.Дать информацию.Я мало знаю.Хотел бы больше.

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

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

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

16 часов назад, BARS_ сказал:

Какая ещё структура команд? Да на сях ты её вообще не касаешься. А настройки простейшей периферии, типа gpio, spi, таймеров, мало чем отличаются от любого другого мк, включая avr. А тактирование включить много ума не надо, тупо строка кода.

Не, ну как... сначала пишем for, а потом в скобочках задаем условия. Это не оно? ))))

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

16 часов назад, Ivan Rusev сказал:

В AVR всё  проще и понятнее.В STM нужно предугадывать.Уметь читать  и настройка периферии сложнее.Извените я не русский.Даже не славяьянин.Понял учител

Неправда.Настройка периферии отличается.В корне.

Вы учителя.А я не учител.Даже кухарка может управлять страной.Только нужно её научить.Дать информацию.Я мало знаю.Хотел бы больше.

1.  Нет никакой разницы какая национальность. В прошлом году я мексиканцу помогал. Он вполне грамотно излагал мысли, не смотря на то, что он не профессионал а любитель.
2. Тебе не нравится, что тебя учат? Какого лешего тогда спрашиваешь совета?
3. Настройки периферии везде разные. Даже в разных сериях микроконтроллеров одного производителя. И что? Есть даташит, референс мануал - называй как хочешь. Там всё прописано. Как настраивать и зачем. Хочешь обойтись без этого? Юзай ардуину.
4. Мы не учителя. Мы просто хорошо знаем свое дело. И можем объяснить, если спрашивающий адекватен. И вообще, научить невозможно. Можно только научиться. А для этого необходимо прилагать усилия.
5. Вот дословно то, что говорил Ленин:

Цитата

 

из статьи «Удержат ли большевики государственную власть?» (1917) В. И.Ленина

«Мы не утописты. Мы знаем, что любой чернорабочий и любая кухарка не способны сейчас вступить в управление государством.. Но мы […] требуем немедленного разрыва с тем предрассудком, будто управлять государством, нести будничную, ежедневную работу управления в состоянии только богатые или из богатых семей взятые чиновники. Мы требуем, чтобы обучение делу государственного управления велось сознательными рабочими и солдатами и чтобы начато было оно немедленно, т. е. к обучению этому немедленно начали привлекать всех трудящихся, всю бедноту»).

 

Понятно? Тут Ленин говорил то, что надо учиться.

А вот с информацией проблем нет. Сейчас 2020 год, не 2000. В инете есть почти всё, а уж того что тебе надо - больше чем достаточно. Поэтому тут не любят вопросы типа "а как мне включить тактирование порта С? Мне чо-та лень искать...."

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

1 час назад, LiVit сказал:

Это не оно?

Дык это стандартно для любого МК с написанием ПО на сях...

 

1 час назад, LiVit сказал:

Настройки периферии везде разные.

Настройки как раз таки +/- одинаковые, особенно если не нужен обычный функционал. Названия регистров и битов разное, только и всего. Но автор этого упорно не хочет видеть. Ему то структура команд мешает, то настройки непонятные придумывают, то еще что-то.

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

3 часа назад, BARS_ сказал:

Настройки как раз таки +/- одинаковые, особенно если не нужен обычный функционал. Названия регистров и битов разное, только и всего. Но автор этого упорно не хочет видеть. Ему то структура команд мешает, то настройки непонятные придумывают, то еще что-то.

Ну, в 030 серии и в 10x они таки немножечко разные. Я про GPIO.

А так да - чувак какую-то ахинею несет.

Вообще не понятно, как он до сих пор занимался какими-то микроконтроллерами.

Ой, да ну его. Я его в игнор-лист отправил.

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

21 час назад, LiVit сказал:

Ну, в 030 серии и в 10x они таки немножечко разные. Я про GPIO.

А так да - чувак какую-то ахинею несет.

Вообще не понятно, как он до сих пор занимался какими-то микроконтроллерами.

Ой, да ну его. Я его в игнор-лист отправил.

кортекс м3 кортекс м 4 разные не только настролйка портов а и настройка ацп и альтернативную функцию а также настройку тактирования. а в серии о30 настройка ацп вооще другая.Какая ахинея.??Я занимаюсь потому что я любитель.Никто  не запретит мне заниматься.Не боги обжигали горшки.

 

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

20 часов назад, Ivan Rusev сказал:

кортекс м3 кортекс м 4 разные не только настролйка портов а и настройка ацп и альтернативную функцию а также настройку тактирования. а в серии о30 настройка ацп вооще другая

Какая другая? Для тебя дргуая = другое название битов в регистрах? Ну ты бы взял и сравнил оба даташита. Принципы и порядок настройки один в один. Для порта - вывод вход или выход - альтернативный, не альтернативный - скорость. И это есть во всех сериях STM. Что тут разного? И так для ВСЕЙ периферии.

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

  • 1 год спустя...

Присоединяйтесь к обсуждению

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

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

  Разрешено использовать не более 75 эмодзи.

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

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

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

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...