Рубрика «stm32» - 11

Привет!

Вот уже несколько лет все свои проекты для линейки микроконтроллеров stm32 я делаю на C++.

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

Во избежание лишних вопросов: я использую связку QtCreator+gcc+gdb+openocd. Как с ней работать, описано многократно, поэтому не буду на этом останавливаться, а вот о своих подходах к работе с микроконтроллерами расскажу подробнее.

На нижнем уровне проекта, как правило, находятся драйвера периферии. С них и начнём.

Читать полностью »

В этой статье я хочу рассказать про свой проект импульсного (TOF) Open Source лидара — о том как я его делал, и каких результатов удалось добиться.
top-picture

Читать полностью »

Проблема обратной совместимости, вероятнее всего, будет всегда.
В области разработки электроники порой приходится поддерживать устройства 30-летней давности (а иногда и старше).
В таких аппаратах иногда всё собрано на логике, без каких-либо программируемых элементов.
Кроме того, в старой технике существуют доморощенные интерфейсы, которые не реализуются какими-либо серийно выпускаемыми контроллерами.
В таких случаях совместимые контроллеры приходится реализовывать на CPLDFPGAASIC.

Я подумал, что можно обойтись без указанных выше средств, а именно реализовать контроллер интерфейса программно на микроконтроллере серии STM32F4.

Читать полностью »

Мы наблюдаем общество, которое все больше зависит от машин, но при этом использует их все неэффективнее. — Douglas Rushkoff

Эта фраза должна служить мотивацией для каждого программиста. Ведь именно вы решаете как машина использует свои ресурсы. Но как и с начала времен, человек вверяет свое право решать третьим лицам взамен легкого пути. Перед тем как спрашивать меня о пользе моих статей, когда есть «Куб», задайте вопрос себе, почему «куб» решает за меня.

Итак, продолжим наше приключение. Мы уже написали скрипт инициализации, разобрались с линкером и компилятором. Настало время мигнуть светодиодом. В этой статье мы бегло пробежимся по основам блока RCC и GPIO, а также добавим парочку хедеров, которые мы будем использовать в следующих проектах. Поехали.
Читать полностью »

Программирование — это разбиение чего-то большого и невозможного на что-то маленькое и вполне реальное.

Всем привет, для начала я хотел бы поблагодарить модераторов за то что пропустили мой первый (отвратительный) пост, и передать привет маме! А также я хотел бы поблагодарить всех читателей и людей которые указали на мои ошибки и помогли их исправить. Я сразу оговорюсь что по русски я не писал с 6 класса, в общем не серчайте.

Итак, давайте приступим. В прошлой статье я бегло пробежался по самым первым пунктам. Это был наш startup.c файл, который отвечал за 2 вектора (stack, Reset_Handler) и немного про линкер скрипт. Сегодня мы дополним наш код инициализации, разберем линкер на запчасти и узнаем как все устроено.
Читать полностью »

Расстановка точек над датчиками газа серии MQ – глубокое понимание даташита и настройка - 1

После покупки копеечного датчика утечки газа появилось желание разобрать все по полочкам и узнать, что происходит внутри. Информации и статей по датчикам очень много, но большинство ограничено распиновкой стандартного китайского модуля, иногда принципов работы. Про относительно точное определение абсолютных значений информации нет. Забегая наперед скажу, что мы попробуем выжать все из даташита, включая: точные функции определения «попугаев», температурно-влажностной коррекции, некоторых возможностей селекции.
Читать полностью »

Нельзя доверять коду, который вы не написали полностью сами. — Кен Томпсон

Пожалуй, моя самая любимая цитата. Именно она и стала причиной по которой я решил нырнуть в самую глубь кроличьей норы. Свой путь в мир программирования я начал совсем недавно, прошло всего около месяца и я решил писать статьи для закрепления материала. Все началось с простой задачи, синхронизировать лампы в своей фото студии с помощью Ардуины. Задача была решена, но в фото студию я больше не заходил, времени нет. С того момента я решил основательно заняться программированием микроконтроллеров. Ардуина, хоть и привлекательна в своей простоте, как платформа мне не понравилась. Выбор пал на компанию ST и их популярную продукцию. В тот момент я еще не представлял в чем особо разница, но как типичный потребитель я сравнил скорость «процессора» и количество памяти, купил себе внушительную плату с дисплеем STM32F746NG — Discovery. Я пропущу моменты отчаяния и сразу перейду к делу.
Читать полностью »

В данной статье я расскажу вам как можно использовать регистры отладки и breakpoint'ов в микроконтроллерах, построенных на ядрах ARM Cortex-M
Читать полностью »

Студенты пишут Uart драйвер для STM32F411 - 1

Доброго здравия всем!

Сегодня я хочу вам рассказать, как постепенно студенты учатся разрабатывать ПО для микроконтроллера на примере драйвера UART на STM32F411. Код и архитектуру с небольшими моими изменениями и доработками я попытаюсь привести здесь.

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

Данная статья не претендует на истину, а лишь показывает подход к реализации некоторых задач, в данном случае реализацию Uart драйвера на С++.

Читать полностью »

Привет!

Данный пост посвящён DIY разработке Ethernet-RS485 шлюза. Цель данного шлюза – обеспечение централизованного управления нодами Mysensors со стороны контроллера умного дома.

imageНедавно меня таки достали провода, дюпоны, навесная пайка и т.п. и было принято давно оттягиваемое решение — сделать свои платы с нуля, т.е. всё по серьёзному. :)
Сказано — сделано!

Первым делом была разработана и нарисована принципиальная схема шлюза, в которой я постарался учесть все свои хотелки и пожелания. Далее произведена компоновка и подгонка платы под требуемые размеры (50x50мм). И последний этап, это заказ плат на производстве. Я заказывал на фабрике JLCPCB, 5 плат — 2$ + доставка.

Данный шлюз построен на базе МК STM32F103CB(8)T6. В качестве Ethernet чипа выступает достаточно известная микросхема от WIZnet — W5500. Транспортом данного шлюза в сети Mysensors является проводной интерфейс RS485. В качестве драйвера RS485 был выбран чип — MAX13488EESA+T, в том числе и в связи с наличием у него режима автоматического выбора направления приёма/передачи.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js