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

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Друг Кота
Аватара пользователя
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)

Сообщение DX168B »

ARV, зайди на старый добрый рутрекер, скачай IAR EWARM с таблеткой или Keil uVision и не мучай ни себя, ни окружающих.
Тот же CubeMX (без IDE который) может генерить и под IAR.
Можно работать в связке с VS Code + PlatformIO (Вообще универсальный вариант. ARM, AVR, ESP8266 или ESP32, причем хоть в окружении Arduino, хоть нативно)
Можно вообще упороться, написать makefile и собирать все это тулчейном arm-none-eabi-gcc, а код писать в каком-нибудь текстовом редакторе.
Последний раз редактировалось DX168B Пт янв 06, 2023 19:50:42, всего редактировалось 2 раза.
I am DX168B and this is my favourite forum on internet!
Контактная информация:
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01

Сообщение Eddy_Em »

ARV, какой, нафиг, гений? Латех освоить совершенно легко. Зато потом всю эту убогость вроде вордов/поверпоинтов вообще не будешь использовать! Я уж забыл, когда последний раз презенташку к докладу делал в либреофисе. Исключительно в латехе. И постеры для конференций в латехе. И, естественно, все статьи, отчеты, доклады и т.д., и т.п.
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Контактная информация:
Реклама
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18797
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

КРАМ писал(а):Желаете пообсуждать политику?
я желаю в теме для начинающих получить реальную помощь. как вам должно быть известно, между добрым советом и помощью есть разница. советов мне не надо, мне надо помочь. киньте мне ссылку на свежий инсталлятор CubeIDE - вот это будет помощь, а свою пытающуюся выглядеть мудрой иронию оставьте себе.
DX168B писал(а):скачай IAR EWARM
в начале я и просил конкретного указания, что и как надо сделать, чтобы заработало без танцев с бубуном. но мне каждый предлагает свой особый бубен... а у меня слуха нет, я даже на бубне играть не могу.

к тому же всё, что я слышал про IAR - это, в основном, о его убогом редакторе. если он и на самом деле убог (я могу сравнивать с Eclipse и/или Delphi), то спасибо, не надо.
DX168B писал(а):Можно вообще упороться, написать makefile и собирать все это тулчейном arm-none-eabi-gcc, а код писать в каком-нибудь текстовом редакторе.
это для мужественных героев типа Eddy_Em, мне бы попроще что... чтобы сосредоточиться на осваивании нового МК, а не на танцах под странную музыку многочисленных бубнов...

Добавлено after 1 minute 1 second:
короче, инсталлятор не качается с сайта ST - максимум 6 мегабайт, а затем "ошибка сети". через VPN, после регистрации... уж не знаю, как тут все сумели это сделать... никто не колется.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)

Сообщение DX168B »

IAR или Keil - это стандарты отрасли. То есть, для профессионалов. Я использую IAR для МК с ARM ядрами.
В IAR нужно только сразу правильно настроить созданный проект и все остальное заводится с полпинка. Даже отладка. Он не тормознутый, как Eclipse, но редактор кода слегка устаревший. По крайней мере, в моей версии 8.30.1
I am DX168B and this is my favourite forum on internet!
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Мудрый кот
Сообщения: 1849
Зарегистрирован: Вс дек 25, 2016 08:34:54

Сообщение Dimon456 »

ARV писал(а):короче, инсталлятор не качается с сайта ST
Скорость не ахти, около 1МБайт*сек, я могу скачать, у нас свой VPN, потом загружу на гугл-диск, будете ждать?
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2567
Зарегистрирован: Вт май 01, 2018 19:44:47

Сообщение VladislavS »

[uquote="ARV",url="/forum/viewtopic.php?p=4349456#p4349456"]уж не знаю, как тут все сумели это сделать... никто не колется.[/uquote]Сейчас выложу куда-нибудь. Всё с оффсайта качается на ура.
Изображение

Добавлено after 1 minute 49 seconds:
Готово CubeIDE
Вложения
изображение_2023-01-06_200331158.png
(10.46 КБ) 568 скачиваний
Реклама
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18797
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

как сильно помогла эта картинка! вот просто даже лучше подорожника!
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Собутыльник Кота
Аватара пользователя
Сообщения: 2567
Зарегистрирован: Вт май 01, 2018 19:44:47

Сообщение VladislavS »

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

Сообщение ARV »

размер-то у нее какой? ваша картинка реально помогла - до сих пор у мен качается без разрыва - уже 840М скачалось... сколько еще?

Добавлено after 33 seconds:
о!!! закачалось вроде...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Собутыльник Кота
Аватара пользователя
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01

Сообщение Eddy_Em »

Ну и G0! Читаю, сколько там возможностей в USART, и тихо охреневаю! Ну и вижу, что просто в тупую перенести настройки с F0 не выйдет (особенно, похоже, с DMA придется помучиться как на Tx, так и на Rx - с прерыванием по '\n').
Похоже, эта штука умеет автоматом в RS485 с адресацией, а также в модбас!
Последний раз редактировалось Eddy_Em Пт янв 06, 2023 20:32:33, всего редактировалось 1 раз.
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Контактная информация:
Собутыльник Кота
Аватара пользователя
Сообщения: 2567
Зарегистрирован: Вт май 01, 2018 19:44:47

Сообщение VladislavS »

[uquote="Eddy_Em",url="/forum/viewtopic.php?p=4349420#p4349420"]т.к. все равно компилировать и отлаживать надо в консоли - так на порядки удобней.[/uquote]Ну да, конечно. Вот так отлаживать вообще неудобно.
СпойлерИзображение
Собутыльник Кота
Аватара пользователя
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01

Сообщение Eddy_Em »

VladislavS, вантузоидный путь меня совершенно не устраивает. Гниль это и болото.
Нужен контроль всего. Ну и, конечно же, свободный софт. Даже если я и не полезу в эти исходники, мне греет душу, что они лежат у меня на диске.
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Контактная информация:
Собутыльник Кота
Аватара пользователя
Сообщения: 2567
Зарегистрирован: Вт май 01, 2018 19:44:47

Сообщение VladislavS »

Ну, не всем же везёт pll неделю запускать...
Друг Кота
Аватара пользователя
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)

Сообщение DX168B »

[uquote="VladislavS",url="/forum/viewtopic.php?p=4349490#p4349490"]Ну да, конечно. Вот так отлаживать вообще неудобно.
СпойлерИзображение
[/uquote]
О, IAR. Наши люди. :beer:
I am DX168B and this is my favourite forum on internet!
Контактная информация:
Собутыльник Кота
Аватара пользователя
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01

Сообщение Eddy_Em »

VladislavS, ничего, я еще теперь 2 недели с усартом биться буду ☺
Вот, начал было:

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

static int txrdy = 1;

void usart3_setup(){
    RCC->IOPENR = RCC_IOPENR_GPIODEN; // enable PD
    // set PD8 and PD9 as AF
    GPIOD->MODER = (GPIOD->MODER & ~(GPIO_MODER_MODE8 | GPIO_MODER_MODE9))
            | GPIO_MODER_MODER8_AF | GPIO_MODER_MODER9_AF;
    // AF0 for USART3 @ PD8/PD9
    GPIOD->AFR[1] = GPIOD->AFR[1] & ~(GPIO_AFRH_AFSEL8 | GPIO_AFRH_AFSEL9);
    // enable USART3 clocking
    RCC->APBENR1 |= RCC_APBENR1_USART3EN;
    // baudrate 115200
    USART3->BRR = 640000 / 1152;
    // charmatch interrupt, enable transmitter and receiver, enable usart
    USART3->CR1 = USART_CR1_CMIE | USART_CR1_TE | USART_CR1_RE | USART_CR1_UE;
    //
}

// return amount of bytes sents
int usart3_send_blocking(const char *str, int len){
    if(!txrdy) return 0;
    for(int i = 0; i < len; ++i){
        USART3->TDR = *str++;
        while(!(USART3->ISR & USART_ISR_TXE_TXFNF));
    }
    return len;
}
Каждые полсекунды шлю "hello\n", а фигвам! Читаю дальше эту документацию жестокую.
Небось, опять тактирование какое-то не включил…

Кстати, уж не помню, где взял этот вариант CMSIS, но он упоротый какой-то: скажем, вместо APB1ENR здесь - APBENR1, а вместо USART_ISR_TXE - USART_ISR_TXE_TXFNF.
Последний раз редактировалось Eddy_Em Пт янв 06, 2023 21:30:34, всего редактировалось 1 раз.
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Контактная информация:
Собутыльник Кота
Аватара пользователя
Сообщения: 2567
Зарегистрирован: Вт май 01, 2018 19:44:47

Сообщение VladislavS »

[uquote="Eddy_Em",url="/forum/viewtopic.php?p=4349509#p4349509"]вместо APB1ENR здесь - APBENR1[/uquote]Как всегда, открываем RM и ЧИТАЕМ. И логика тут совершенна проста. Два регистра ENR1 и ENR2 включают тактирование периферии на шине APB.
Изображение
Если бы были APB1ENR и APB2ENR, то это были бы регистры, включающие тактирование на шинах APB1 и APB2. У более продвинутых контроллеров этих шин...

изображение_2023-01-06_211555498.png
(86.19 КБ) 286 скачиваний
Добавлено after 21 minute 24 seconds:
Кстати, зачем выключаешь тактирование остальных GPIO?

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

RCC->IOPENR = RCC_IOPENR_GPIODEN; // enable PD
Собутыльник Кота
Аватара пользователя
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01

Сообщение Eddy_Em »

Кстати, зачем выключаешь тактирование остальных GPIO?
Ага. А еще я саму функцию usart3_setup() не вызвал, и жду: а где ж мой "hello".
В общем, это заработало, теперь буду про DMA читать: так ли это как на F0 делается, или через задницу.
Хорошо, что здесь, как и в F0, есть прерывание по символу: вообще с приемом париться не надо. Выделил себе буфер, да читаешь при помощи DMA. Если переполнение буфера - флаг выставляешь, буфер сбрасываешь. Получил прерывание по символу - выделяешь для DMA второй буфер, а этот оставляешь для считывания, выставляя флаг готовности.

Довольно заманчиво попробовать убогий модбас реализовать (увы, все равно придется: есть частотники, которые не умеют в CAN). Правда, регистров для него тьма тьмущая.
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Контактная информация:
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18797
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

что-то я не пойму: подключаю свою платку - в системе появляется диск 30М с тремя ссылками давно не актуальными на файлы PDF, а сам ST-Link не появляется... и не пойму, что надо сделать...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Собутыльник Кота
Аватара пользователя
Сообщения: 2567
Зарегистрирован: Вт май 01, 2018 19:44:47

Сообщение VladislavS »

[uquote="Eddy_Em",url="/forum/viewtopic.php?p=4349556#p4349556"]теперь буду про DMA читать: так ли это как на F0 делается, или через задницу.[/uquote]DMAMUX не забудь.

Добавлено after 5 minutes 26 seconds:
[uquote="ARV",url="/forum/viewtopic.php?p=4349561#p4349561"]что-то я не пойму: подключаю свою платку - в системе появляется диск 30М с тремя ссылками давно не актуальными на файлы PDF, а сам ST-Link не появляется... и не пойму, что надо сделать...[/uquote]Один из механизмов прошивки - просто закинуть на этот диск файл прошивки. Но в жизни это даром не надо. Когда работаешь в IDE, она сама и прошивает. В диспетчере устройств должен быть ST-Link дополнительно к диску.
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18797
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

VladislavS писал(а): В диспетчере устройств должен быть ST-Link дополнительно к диску.
нету :(
VladislavS писал(а):Когда работаешь в IDE, она сама и прошивает
это понятно, но вместо этого оно мне сообщает, что ST-Link не подключен...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Ответить

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