STM32. CMSIS. Урок#01: Чистый проект на CMSIS, Serial wire JTAG Config., блокировка настроек GPIO.

  Переглядів 6,848

Олег Волков

Олег Волков

День тому

Привет друзья! Вот уже 2 года, как я изучаю STM32.
Самое время, после опыта работы с библиотекой HAL, когда мы уже более менее ознакомились с периферией микроконтроллера, начать осваивать его на низкоуровневой библиотеке CMSIS.
На втором занятии мы создадим чистый проект, путем удаления всех ненужных библиотек из проекта, построенного на CubeMX.
Разберемся, как настроить Serial Wire JTAG Configuration, чтоб освободить ненужные GPIO ножки для своих нужд и научимся блокировать настройки порта GPIO.
00:00 Введение
00:32 Создание проекта в CubeMX
02:39 Чистка проекта
03:14 Тест проекта
04:58 Про регистры, которые можно только писать
06:09 Продолжение теста
06:27 Этот же проект в VisualGDB
08:03 Serial wire JTAG Configuration
15:09 Блокировка настроек порта GPIO
Материалы из урока: github.com/Solderingironspb/S...
Мои заметки по CMSIS: github.com/Solderingironspb/S...
Группа вконтакте: solderingiron.stm32
Настройки для VisualGDB: solderingiron.stm32?w=...
ЯндексДзен: zen.yandex.ru/id/622208eed2eb...

КОМЕНТАРІ: 43
@ebjikkolu4757
@ebjikkolu4757 Рік тому
"Наелся" регистрами еще на AVR ,но лайк ставлю исправно - эта работа достойна уважения .
@user-qc7ib5fj9n
@user-qc7ib5fj9n Рік тому
Отличное видео -только регистры только хардкор!! Так держать!. Теперь пришла очередь взяться за наше ВСЁ - FreeRtos.
@Solderingironspb
@Solderingironspb Рік тому
Погодите Вы с FreeRTOS. Это бы разгрести). Я, кстати, пока так и не понял смысл его применения, если работаешь один…
@user-qc7ib5fj9n
@user-qc7ib5fj9n Рік тому
@@Solderingironspb если у вас одна задача или есть задачи которые можно обрабатывать по очереди то , тогда действительно нет смысла , а если есть датчики ,UART .дисплей, таймер ,то есть смысл на каждую задачу выделить отрезок времени маленький и почти одновременно все это дело обслуживать )...
@Solderingironspb
@Solderingironspb Рік тому
@@user-qc7ib5fj9n ну я пока делал проекты, где и дисплей, и обработка сигнала, и датчиков много. Еще меню и обработка энкодера. Все на прерываниях норм отрабатывало. Да, может код не такой читаемый для кого-то, но вполне, работать можно и без freeRTOS. Его наверное в фирмах хорошо использовать, когда над проектом несколько человек трудится.
@OpenFrimeTVcom
@OpenFrimeTVcom Рік тому
как по мне нужно комбинировать хал и CMSIS. Допустим на хале поднимать сложную периферию юсб/езернет. А остальное писать на CMSIS. Это чисто мои домыслы, а так очень полезно. Учусь по вашим урокам и NR.electronics. Но он что то затормозил выход роликов, а вы прям стартанули хорошо)
@Solderingironspb
@Solderingironspb Рік тому
Все зависит от поставленной задачи и от скорости разработчика. А так да, в комбинации нет ничего плохого. Главное уметь с этим работать.
@user-hm7gl7er6z
@user-hm7gl7er6z Рік тому
затормозил, потому что денежки не платят. Олег спасибо . очень полезно. смотрю постоянно твои ролики....
@do-vitas7079
@do-vitas7079 Рік тому
хал эта набор функций которое оперяются на все тот-же cmsis поэтому говорить о том что "или или" это не совсем корректно, cmsis может без HAL а вот hal без cmsis не будет жить. И теперь вот когда сложный проект, требующий большого кол-ва ресурсов мк, его лучше писать только на cmsis т.к. получаешь лучшую оптимизацию и экономию ресурсов и памяти! А вот мигать светодиодом тут hal самое оно...
@OpenFrimeTVcom
@OpenFrimeTVcom Рік тому
@@do-vitas7079 ну чтоб поднять юсб я не знаю сколько нужно потратить времени. я пока не готов к такому)
@user-yo1zj2vl1t
@user-yo1zj2vl1t 9 місяців тому
Спасибо за урок. Было бы неплохо , если такая возможность есть, тоже самое показать, как это сделать для Кейл-а
@Solderingironspb
@Solderingironspb 9 місяців тому
Я очень мало работал в кейл, как-то не зашел с самого знакомства. Но говорят, что там просто создать проект прямо в нем можно, выбрать мк и уже cmsis работает
@SevenNightdreemVeryPavlovny
@SevenNightdreemVeryPavlovny Рік тому
Спасибо за видео! Надо будет тоже в g0 серии Rcc_config переписать, а то Hal 1,5кб кушает на это дело,жалко )
@svbHiTek
@svbHiTek 4 місяці тому
Я уже переписал, сложного ни чего нет, единственное распечатал на принтере схему тактирования из Куба
@SevenNightdreemVeryPavlovny
@SevenNightdreemVeryPavlovny 4 місяці тому
@@svbHiTek Я вообще пошагово из отладчика копирую необходимые команды когда Hal , потом вставляю и готово)
@svbHiTek
@svbHiTek 4 місяці тому
@@SevenNightdreemVeryPavlovny Попробую, спасибо.
@svbHiTek
@svbHiTek 3 місяці тому
Хочу с вами поделиться недавними соображениями, по поводу файлика, где вы описывали функции для CMSIS, собственной библиотеки. Я стал по вашему примеру делать такой же файлик, но столкнулся с проблемой. Когда на создавал несколько проектов, и вношу в этот файлик какие то дополнения, то что бы потом не выискивать файл с крайней версией, приходится копировать этот файл во все проекты. Как выход, нашел где хранятся встроенные библиотеки, создал там свою папочку, положил в нее два файла .c и .h, и теперь везде подключаю единственную копию библиотеки, удобно, нет путаницы.
@Solderingironspb
@Solderingironspb 3 місяці тому
Ну у меня так последняя версия на Github постоянно висит. Единственное надо наверное отделить, чтоб постоянно при скачивании не качало pdf файлы, что тоже в репозитории лежат
@Electronics_In_Source
@Electronics_In_Source Рік тому
Олег, не верьте тем, кто утверждает, что результатом чтения регистра BSRR или BRR может быть мусор. Отправляете их читать мануал! Чтение бита с атрибутом W - "только запись" возвращает значение после сброса (reset value). Для регистров BSRR и BRR это 0x0000 0000. Единственный минус применения операции "ИЛИ" к этому регистру - это две лишние инструкции. В целом видео отличное! Успехов Вам в непростом, но очень полезном деле!
@andrew3482
@andrew3482 Рік тому
ну да в доках так и написано These bits are write-only. A read to these bits returns the value 0x0000. вопрос только а зачем его читать?))) тупость
@Electronics_In_Source
@Electronics_In_Source Рік тому
@@andrew3482 Вы наверно не в курсе, что при операции ИЛИ с регистром BSRR, происходит ЧТЕНИЕ этого регистра, затем его модификация и запись обратно в регистр. Автору видео доброжелатели, сообщили что эту операцию делать нельзя, якобы при операции ЧТЕНИЯ будет записан "мусор", т.е. результат будут непредсказуемым. Я опроверг эту мысль, сославшись на документацию. Читать его действительно бессмысленно, раз он возвращает константу, но почему это тупость? Или вы всех судите по себе...
@ciklomat
@ciklomat Рік тому
Вот это то, что я долго ждал. Написание программы с помощью даташита. Очень интересный и правильный подход, единственно хотелось бы больше подробностей.Но даже в таком духе это будет лучшее обучение по STM. Возник вопрос , я привык писать в mikrichip studio по сути тот же visual , можно ли как то внедрить в него STM?
@Solderingironspb
@Solderingironspb Рік тому
Я бы мог еще подробней, рассказывав про каждый бит с переводом, но тогда бы уроки по 2-3 часа были. Я вон, прошлое видео на час с лишним записал. Средняя продолжительность просмотра 4 мин. 16 сек. Для кого стараюсь... :D Тут как ни крути, придется изучающему тоже брать reference manual и сидеть, читать его, т.к. там много нюансов, которые все не осветить в видео. Про Microchip Studio ничего сказать не могу. Все равно нужно VisualGDB иметь. А он под Visual Studio Community.
@OpenFrimeTVcom
@OpenFrimeTVcom Рік тому
@@Solderingironspb такая средняя продолжительность по тому что полностью смотреть буду только когда начну проект создавать, а так основные тезисы схватил, и знаешь где искать в случае чего)
@user-pp2hz7ic7h
@user-pp2hz7ic7h Рік тому
Видео по настройке Visual Studio как CubeIDE будет ?
@Solderingironspb
@Solderingironspb Рік тому
Что именно интересует?
@user-pp2hz7ic7h
@user-pp2hz7ic7h Рік тому
@@Solderingironspb настроить окружения было приближено к cubIDE (внешне и функционально)
@Solderingironspb
@Solderingironspb Рік тому
@@user-pp2hz7ic7h тут функционал больше. Видео по установке есть на канале. Visual Studio использую 2017, она быстрая. Файл настроек, чтоб сделать все сразу, как у меня есть в группе вконтакте. Ссылка под видео. Делать из VisualGDB CubeIDE нецелесообразно. Переход из одной IDE в другую у меня занял неделю. Потом привык и уже возвращаться в CubeIDE не хочется)
@MicroCode01
@MicroCode01 Рік тому
Добрый день, почему ваш выбор пал именно на stm32 а не esp32 или pi pico, просто пытаюсь понять, вроде щас время iot и esp приходится куда больше к месту.
@Solderingironspb
@Solderingironspb Рік тому
добрый день! Каждой задаче своя железка. STM32 очень распространенные. За 2 года программирования stm32, встречал их и в платах лифта, и в ПЛК, и в лабораторном оборудовании, и еще много где. До сих пор часто встречаю AVR и PIC. ESP8266 и ESP32 встречал пока только в любительских проектах. А по поводу pi pico...как-то не заинтересовала. Время IoT, но далеко не все нуждается в IoT. Можно комбинировать. Как пример, можете глянуть мое видео "Подключаем STM32 к WiFi. Умный дом на STM32. Используем MQTT. Мой протокол." Я там использовал ESP8266, как Wifi модуль для работы по MQTT. Всем основным занимается STM32F103C8T6. Уже 1.5 года работает в щите умного дома. Работает идеально). ukposts.info/have/v-deo/fJyrmo97eqyesGSd.htmlttps://ukposts.info/have/v-deo/fJyrmo97eqyesGQ.html
@MicroCode01
@MicroCode01 Рік тому
@@Solderingironspb Спасибо
@user-yk6tc1ey7x
@user-yk6tc1ey7x Рік тому
В темном лееесе, в темном лееесе... Как все сложно, сижу и думаю, а нужны ли мне STM
@Solderingironspb
@Solderingironspb Рік тому
Максим, если начинать освоение STM32 с CMSIS - то это очень сложно. Самая главная сложность не в том, что битовые операции кругом и настройки на регистрах, а в том, что трудно настраивать периферию, с которой никогда не работали.
@andrew3482
@andrew3482 Рік тому
зачем писать код макросами? очень плохо при отладке, если пишите на CMSIS так пишите нормально
@Solderingironspb
@Solderingironspb Рік тому
Нормально - это как?) я использую их, потому что CMSIS предусматривает работу с макросами.
@andrew3482
@andrew3482 Рік тому
@@Solderingironspb как в обычном си |= &= CMSIS ничего не предусматривает, я только в мире видел вас и народстрим так пишет, вы явно его ученик
@Solderingironspb
@Solderingironspb Рік тому
Макросы с битовыми операциями прописаны в stm32f1xx.h. Этот файл расположен в драйверах CMSIS. Если Вы видели работу с ними только у меня или у народ стрим, то это не означает, что работать так неправильно.)
@user-gp2fg3zb1m
@user-gp2fg3zb1m Рік тому
твои уроки вообще не для новичков
@Solderingironspb
@Solderingironspb Рік тому
CMSIS не для новичков. Это сложная тема. Для новичков у меня уроки "Переходим с Arduino на Stm32".Не лезьте в CMSIS без опыта работы с МК, будет ничего непонятно и желание изучать что-то начнет отпадать....
@user-gp2fg3zb1m
@user-gp2fg3zb1m Рік тому
@@Solderingironspb попробую изучить уж очень сложно это все! как услышал слово дэбаг все не че не понятно пришлось в гоголе искать что это такое вообщем начну изучать как вы написали
@Solderingironspb
@Solderingironspb Рік тому
@@user-gp2fg3zb1m Николай Васильевич тоже про дебаг не знал, можно у него не искать😀
@user-ws8lx5ji8z
@user-ws8lx5ji8z Рік тому
А мне думается CMSIS проще будет чем этот HAL , читать даташиты и менять биты в регстрах. Так и не было желания осилить ардуино, а просто на си в атмел студио даже что-то и получается.
@Solderingironspb
@Solderingironspb Рік тому
Он проще, когда уже знаешь, как работает микроконтроллер и есть опыт работы с ним. А при старте, когда ни навыков, ни знаний нет - то Боже упаси то же тактирование начинать прописывать)
skibidi toilet 73 (part 2)
04:15
DaFuq!?Boom!
Переглядів 17 млн
💪Установи свой Home Assistant за 5 минут! 🏠 Умный Дом это просто!
6:04
STM32. C чего начать? Быстрый старт после Arduino.
13:08
Олег Волков
Переглядів 75 тис.
STM32: PWM шаг за шагом на STM32CubeIDE
10:51
G1Tech
Переглядів 26 тис.
Visual Studio + VisualGDB + STM32. Обзор. Пробный проект.
29:38
Олег Волков
Переглядів 8 тис.
JTAG/Boundary Scan: Basics
2:44
goepeltv
Переглядів 26 тис.
Опасная флешка 🤯
0:22
FATA MORGANA
Переглядів 594 тис.
Що покаже Apple, гнучкі айфони та Windows переходить на ARM
17:49
Ноталка Шелягіна
Переглядів 59 тис.
Распаковка айфона под водой!💦(🎥: @saken_kagarov on IG)
0:20
Взрывная История
Переглядів 10 млн
All New Atlas | Boston Dynamics
0:40
Boston Dynamics
Переглядів 5 млн