Цель этих статей научить основам работы с STM32 и дать необходимую информацию для того, чтобы читатель смог продолжить самостоятельно. Оказалось, что программировать STM32 это вам не PICи прошивать Его лучше как справочник использовать, а не как учебник. Втретьих, контроллеры активно начинают набирать интерес у электронщиков, статьи по освоению STM32 появляются в интернетах. Одним из основных препятствий для перехода на STM32 является обилие текстов, инструкций и мануалов, описывающих работу с. Учебник По Stm32' title='Учебник По Stm32' />STM3. Free. RTOS. Шаг в сторону HAL Хабрахабр. HAL 9. 00. 0 Im completely operational, and all my circuits are functioning perfectly. Виновником этого обилия стала сама STMicroelectronics, которая поначалу планомерно запутывала своих пользователей, а затем предлагала неверные варианты выхода. Проблема заключается в многообразии выпускаемых контроллеров, которые почему то требовали разных процедур инициализации даже для одной и той же периферии. И код, работающий на одном контроллере, отказывался работать на другом. В результате по сети гуляют сборники шаманских рецептов, для понимания которых требуется куча времени и воскуривание даташитов. Но не так давно ST поняла, в какую яму она угодила и начала усиленно из нее выбираться, привлекая новые силы. Alias Игра Карточки. И именно благодаря этому сейчас время старта сократилось до несуразно маленьких величин. Как это выглядит на практике Добро пожаловать под кат. Для начала дам совет, как быстро определить то, что не стоит читать про STM3. Во первых, год публикации раньше 2. Просто поверьте, что то, что тогда и то, что сейчас две большие разницы. SPL и HAL в мире STM не просто очередные аббревиатуры. Во вторых, если встретится подобный код это всего лишь кусочек инициализации ADC, если это кому либо интересно. RCC APB2. ENR. Не скрою, я сам таким же был и только большая нужда заставила меня изучать что же скрыто за аббревиатурами CMSIS и SPL. Повторять мой путь сейчас нет совершенно никакого смысла да и я постарался забыть большую часть того, чего прочитал, ну разве что если у вас очень большое желание добраться до потрохов. Поэтому здесь я рассказываю для тех, кому надо ехать. Итак, в чем проблема
Главная и единственная проблема это инициализация периферии. Вон те шаманские пляски с битами возникли не на пустом месте. И 9. 9 проблем у меня не работает заключаются именно в неправильной инициализации. Не те частоты, попытка использовать выделенное под другое ресурсы и так далее и тому подобное. Что особо обостряет проблему, так это то, что никаких кодов ошибок или там эксепшенов нет. Вообще порт в STM32 МК устроен весьма сложно. Учебник jQuery для начинающих. Купил себе F4Discovery, но вот засада, если у Texas Instruments был отличнейший учебник, который позволял на практике освоить. Все как у сапера что то сделал не так все мертвое. Вам кажется, что это сказки Вот вам рисуночек схемы тактирования STMF3. Подсчетом мест, где можно ошибиться, предлагаю заняться самостоятельно. В итоге ST выкатила сначала SPL Standard Peripheral Library, которая хоть улучшила ситуацию, но не сильно. Учебник По Stm32' title='Учебник По Stm32' />Семейство STM32. Для начала работы и изучения любого микроконтроллера разработчику необходимы три инструмента программная среда. А затем появилась следующая версия, которую обозвали HAL. А что бы еще больше облегчить разработчикам жизнь, была обновлена утилита STM3. Cube. MX, которая позволила буквально парой кликов мышки сгенерировать код инициализации для всего многообразия плат, процессоров и периферии. А рядышком положила так называемые firmware, в которые запихнула кучу примеров работы именно для данного процессора. Учебник По Stm32' title='Учебник По Stm32' />И то, что нажатием двух кнопок можно получить 1. Выбрал одну схему тактирования программа сразу показала частоты и выделила красным те места, которые с такими частотами работать не могут. Попробовали использовать тот функционал, который в данных условиях невозможен например, ножка уже занята чем то другим опять подсветит ошибку. Вот на рисунке слева я показал список функций, которые можно повесить на одну единственную ножку. После подсчета обычно AVRщики где 4 функции на ножку максимум долго хмыкают и что то подсчитывают в уме. А когда я им говорю, что таких ножек может быть больше 1. Но больше всего меня радует тот факт, что теперь благодаря HAL не надо переписывать код работы с периферией. Mikromedia-for-STM32-M3_1.jpg' alt='Учебник По Stm32' title='Учебник По Stm32' />Если где то написано НAL. И даже написанная функция взятия среднего значения нужного канала АЦП тоже не будет сопротивляться при переходе с L1 на F4int Get. ADCValueuint. 32Я тут подсчитал 1. USB, выбрать CDC, сгенерировать и 6 строчек кода в функции CDC. Да, дадут только код инициализации, логику самому писать надо будет, но и это офигенное подспорье. Я даже выкладывать проект не буду, ибо толку тащить то, что надеюсь и так уже есть у Вас на компе, но результат покажу. На вопрос где бы примерчик взять ответ простой в скачиваемой при генерации фирмвари лежит куча примеров. И рекомендую накачать в менюшке найдете фирмварь для других моделей процессоров очень часто примеры не пересекаются и тот же АЦП через DMA есть только в одном месте, хотя прекрасно работает и там и там. Отдельным абзацем замечу, что STM3. Cube хоть и помогает программисту в быстром старте, она по прежнему требует понимания, что же настраивается и почему именно так настраивается. К примеру, по умолчанию прерывания и DMA для USART выключены, поэтому некоторые функции просто не будут работать. В общем, тщательно смотрите за вкладочками, благо программа позволяет перегенерировать проект, сохранив уже написанное. Где то здесь программисты обычно уже уходят поуши в генерацию чего то этакого, смену дескрипторов, размеров буферов и смены отображаемого названия в диспетчере задач на Super Cool Device. Ну и я оставлю Вас с этим. Завершаем и приносим пользу.