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

STM32 для чайника


ART_ME

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

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

есть отельная прога. STMStudio. Вот там есть лог-анализатор (в том числе аналоговый) и все что вам от него требуется. Работает именно в живую и с STLink-ом. Правда не всегда стабильно. Я не пользуюсь, так как мне проще нужные отладочные данные получить через UART напрямую не тормозя процессор

Изменено пользователем mail_robot

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

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

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Читаю UM1850 - версия апрель 2017, стр. 238-239, только что скачан с st.com. Описание функции HAL_GPIO_WritePin - для параметра PinState предполагаются значения: GPIO_BIT_RESET и GPIO_BIT_SET.

Проект Куба 4.22.1  (и соответственно, библиотека HAL) таких значение PinState не знают - традиционные GPIO_PIN_SET и GPIO_PIN_RESET.

Это очередные фокусы "отличной" документации от STM или мой нубский тупняк?

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

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

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

вообще этот абзац можно очень интересно прочитать

Quote

PinState: specifies the value to be written to the selected bit.
This parameter can be one of the GPIO_PinState enum
values: GPIO_BIT_RESET: to clear the port pin
GPIO_BIT_SET: to set the port pin

причем он не меняется уже давно, и я сомневаюсь что его типа не заметили при очередной правке. Перечитайте еще разок

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

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

ну тут либо в ST дураки, либо одно из двух. А вы что хотите сказать?

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

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

прошей через STLink любым "чистым" кодом и ардуино умрет само

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

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

st link v2 как он может иметь лог. анализатор, вообще от этого отладчика толку почти нет, тупит все, переменную если одну и показывает и то хорошо, даже по шагам тоже показывает не так как есть, у меня SPI работает а он даже по шагам показывает что регистр данных SPI пуст, и так далее, а анализатор может быть только отдельный, тогда ты видишь реальный уровень на ножках, а в стлинк можно посмотреть только лог.1 или 0 на выводе программно, но на самом деле вывод может не работать

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

не стоит так категорично отзываться о том, чем не умеете еще (судя по всему) правильно пользоваться. Отладка в железе это вам не за пивком сбегать. Тут надо понимать что может быть доступно отладчику, а что нет. И как это недоступное получить в обход ограничений. А просто так тыкать мышкой в отладчике и ныть это каждый нуб может

Читайте доку внимательно и учитесь. Отладчик великолепный

Изменено пользователем mail_robot

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

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

mail_robot Просто времени особо нет с отладчиком сидеть, а документации на английском кучу страниц читать тоже не выход)

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

14 часа назад, MihaNN52 сказал:

Коллеги подскажите бывшему ардуинщику)) что надо подключить в кейле чтоб появился класс String? 

Наверное стоит "подключить" Wiring.

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

для embedded system насколько я помню такого класса нет. По крайней мере в стандарте. Обычно используют векторы типа char[ ] с известной длинной. Все необходимые функции для работы с такими строками присутствуют в стандарте

Изменено пользователем mail_robot

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

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

Жаль было очень удобно и код компактный получался. Вообще старт с стм32 быстрым назвать нельзя, даже медленным))) Наверное все дело во мне. Очень много простых и понятных вещей  нет.

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

после ардуино весь мир конечно предстает в серых красках. Примерно как ломка у наркоманов. Только в наркоте той счастья нет.

Хотя на самом деле дуринка вполне годный девайс для своих применений. Тормозная, кругло-квадратно-деревянная. Но там где надо просто и быстро, цены ей конечно нет. Вернее есть и довольно дорого для такой деревяшки. Но одной обычно достаточно в хозяйстве. У меня их правда штук 15. Перепало как то по случаю на халяву от человека который завязал и все раздал. Юзаю иногда, туда где жалко стм-ку

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

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

неплохой настрой. STM32 по сравнению с ардуиной это примерно как Су35 по сравнению с кукурузником. То и то в принципе летает, но немного по разному. И я могу с уверенностью сказать - если освоите и научитесь внедрять стм-ку в свои поделки, это принесет очень много новых ощущений. Основное - GOD MODE. Лично я, освоив этот камень, полностью забил на все остальные, ибо он всегда дешевле и всегда быстрее. И под него гораздо приятнее писать софт (и быстрее тоже). Самый подходящий камень для замены ардуины (Atmega328) считаю STM32F030F4P6. Простой, понятный и стоит 3 копейки кучка + корпус более менее удобный (SSOP20). По скорости правда их не сравнить. Все таки стм есть стм и кортекс уделывает AVR по всем направлениям. Но в плане удобства интеграции самое то. Я их с али беру по 36 рублей корпус в пачке по 10 штук. И большинство конструкций выходит именно на них. Потому как эти крохотули перекрывают почти 90% всех задач.

Следующий по применяемости у меня STM32F030K6T6 (больше памяти, больше ног, ядро то же Cortex M0 48МГц). Потом идет STM32F103C8T6 (народный STM) в виде готовых 2-х долларовых модулей под посадку на DIP40, а потом уже 103RBT6, 103VET6 и 103VCT6. Изредка STM32F051 какой нибудь, когда за дешман надо получить нормальный ЦАП в устройстве.

Вообще семейство F030 очень и очень вкусное и душевное. Прям то что нужно в лаборатории любителя. Позволяет решать подавляющее число задач с новым уровнем вычислительных возможностей за смешнючие копейки. Например у меня в котельной сейчас трудится суточный таймер, который управляет электрокотлом дома на F030F4P6. Я его разработал и спаял за 4 дня. Лабораторный блок питания с контролем каждого полюса по току и выходом ЦАП в качестве управляемого опорного напряжения для поделок с дискретой 12 бит на F030K6T6. Зарядное устройство для литиевых аккумуляторов на 8 каналов одновременно опять де на F030F4P6. Разработано и собрано за неделю вместе с софтом. И я не профи, я такой же любитель как все остальные. Без образования в этом деле. Все чисто по книжкам и методом тыка + интернет.

Ну и что приятно в СТМ, так это то, что освоив один камень, ты по сути освоил их все (ну за мелкими нюансами). Так как архитектура что у 030-го, что у монстра 407-го  почти идентичная. Отличается только ее состав и скорость работы. Поэтому освоив СТМ можно уверенно решать любые задачи вообще. Ну с оговоркой - доступные для встроенных приложений. Ясно что обработка видео на лету или самописный DSP не то пальто для этих камней (хотя отчасти и возможно). Первое что я осваивал была дискавери на STM32F051. И после нее я понял что мне пофик под какой камень в семействе STM вообще писать

Самый оптимальный инструментарий (а опробовано было все что доступно) - Keil + CubeMX + FreeRTOS(опционално). Осваивайте эти инструменты и разработка станет простым и приятным процессом, ничуть не сложнее чем писать под ардуино.

 Надеюсь все у вас получится и мои рекомендации как то помогут освоиться в море STM-ок. Если что, советом поможем )

Изменено пользователем mail_robot

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

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

Настрой боевой на самом деле))

Вот интересный момент пока не нахожу обьяснения.

Пытаюсь передавать отладочную информацию по USB STM32F103C8T6 народный.

Функция CDC_Transmit_FS отсутствует в документации почему то.

Если я  запускаю ее в цикле то она работает.

Создаю отдельный .h .c файлы для функций.

В нем пишу функцию которая принимает строку из UART посимвольно и по формату &AXXX\0 Начало и конец пакета,название переменной и значение.  Вот как так можно было сделать функцию приема в которой я должен знать длину сообщения... от куда я могу ее знать?)) что там тот же GSM модуль скажет?) Долго думал но так и не понял зачем это сделали. Но фиг с ним можно символы принимать складывать и т.д это мы умеем.

 

В общем имею функцию void HAL_UART_RxCpltCallback(UART_HandleTypeDef * UartHandle)  По вашим  же рекомендациям стал принимать в ней. Все работает спасибо за наводку.

В ней же отправляю в USB данные для отладки.

sprintf(str_tx, "Valve = %s\n", valve);
CDC_Transmit_FS((uint8_t*)str_tx, strlen(str_tx));

Все отправляет нормально.

Но дальше строку мне надо разобрать по этому я делаю функцию paser_uart2(char* valve) в которую передаю свою строку.

Разбираю строку, все норм.

Но при попытке отправит хоть что то в USB ни чего не отправляется.

Удалю весь код из функции отставляю просто отправку строки

char test[] = "Test";
CDC_Transmit_FS((uint8_t*)test, strlen(test));

И тишина отправляет только из колбэка, что выходит за рамки моего понимания))

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

по правде говоря я с CDC плотно еще не работал. Как то не возникало необходимости. Использую в основном чистый UART если требуется выкидывать отладочную информацию и посылать команды из консоли в контроллер. Все собирался раскурочить USB, но руки так и не дошли пока. Дом достраиваю. Уже год как нет времени даже за кнопки сесть. До 1-го ноября надо въехать кровь из носу )

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

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

 MihaNN52 насколько понял вы из колбэка хотите сделать CDC_Transmit_FS ? Лучше так не делать, колбэк должен быть коротким, он вызывется из прерывания. Потому лучше там установить какой нибудь флаг, а в основном цикле проверить этот флаг, и сделать то что хотели. Ещё проблема может быть в том, после обработки колбэка, сбрасываются флаги (говорю абстрактно) которые используются в работе юсб. А так получается, что приём до конца не обработался, а вы уже отправлять надумали.

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

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

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

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

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

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

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

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

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

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

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

×
×
  • Создать...