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

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

Сообщение ARV »

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

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

Сообщение VladislavS »

Я же обещал скачать и выложить, ссылка там же.
Реклама
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18783
Зарегистрирован: Чт дек 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 КБ) 265 скачиваний
Добавлено 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
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18783
Зарегистрирован: Чт дек 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
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18783
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

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

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

Сообщение VladislavS »

Это может быть то о чём Dimon456 писал. Стоит попробовать сначала видит ли его STLink Utility или CubeProgrammer. Но вообще, st-link всегда в диспетчере устройств было видно. Не помню, были ли версии только с виртуальным диском... На "раздаточных" платах что угодно могло быть.
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18783
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

попробовал вместо локального отладчика указать удаленный на локалхосте, так вывело сообщение, что моя плата не поддерживает режим отладки - это как вообще?! :shock:

Добавлено after 2 minutes:
удаленный сервер надо отдельно запускать, потому, наверное, такое сообщение и выдаёт... а когда автостарт сервера - пишет "не подключен"... при этом утилитка обновления фирмвари ST-Link в кубе этом вроде как обнаруживает и обновляет ПО...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Сообщение Reflector »

ARV, писали же, что лучше в v2 переделать.
Мудрый кот
Сообщения: 1849
Зарегистрирован: Вс дек 25, 2016 08:34:54

Сообщение Dimon456 »

ARV, надо меня было слушать, а не кого-то, я через это прошел.

Добавлено after 1 minute 41 second:
В диспетчере устройств у вас будет Дисковые устройства - STM32.
Все.

Запускаем утилиту STM32 ST-LINK Utility и пробуем подключиться. Что получилось?

Добавлено after 2 minutes 50 seconds:
Далее CubeIDE ни когда не подключится к V1, вывод - переделывайте в V2, это если хотите или используйте китайский v2. Решать вам.

Добавлено after 18 minutes 19 seconds:
Я спокойно подключаюсь как и V1 так и китайский V2
СпойлерИзображение
как и из под IAR так и из под других IDE, смотря под какой адаптер подключаться.
Ни чего не надо лишнего запускать, ни каких удаленных серверов и прочей лабуды.
Как я не старался скрестить чего-то с чем-то, у меня не получилось.

Если вам нужен eclipse то единственный вариант остается CoIDE, а если вам нужно "из коробки" - то IAR. Все. Пока мне другого не показали. Остальное либо не подходит, либо не соответствует моим требованиям.
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18783
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

Dimon456 писал(а):Запускаем утилиту STM32 ST-LINK Utility и пробуем подключиться. Что получилось?
получилось. находит, подключается, обновляет до версии V1 где взять версию V2 пока не понял
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

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

Сообщение VladislavS »

Двумя постами выше Reflector давал ссылку. Если вкратце, то нужен usb-uart адаптер, подпаять пару проводков и прошить в f103 новый bootloader. Остальное дело техники.
Ответить

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