STM32F103. Начало работы в Keil

Статья носит характер небольшого мануала о том, как начать программировать микроконтроллеры STMicroelectroniks на примере популярного и простого в освоении семейства stm32f1

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

Основные вопросы этой заметки:

  • как начать разрабатывать ПО для stm32 в Keil;
  • что для этого необходимо.

Начать необходимо со второго вопроса. Необходимый минимум это среда программирования (Keil), программатор и отладочная плата. Можно конечно и в симуляторе запускать программу, но это не так инетресно, так что плата и программатор нужны. Где брать писать не буду, не моя это забота.

Keil, Milandr, FreeRTOS. Нет ничего проще.

Создаем и проект для Миландр и подключаем с помощью Manage Run-Time Environment операционную систему FreeRTOS

Cover Image

Вы также часто пользуетесь кейлом как и я? Программируете микроконтроллеры компании Миландр? Вы хотите легко и просто подключить и использовать в своём проекте FreeRTOS? Тогда эта маленькая заметка для вас.

План действий:

  • создаём проект;
  • выбираем используемые пакеты;
  • конфигурируем операционку;
  • запускаем и пользуемся.

Делаем простой и универсальный кольцевой буфер.

Делаем простой кольцевой буфер

Постоянно приходится передавать и принимать данные из/в UART, SPI, I2C и др. Всё просто и понятно когда посылки идут редко и есть время на их обработку, а что же делать если посылки могут идти пачками за один раз, а потом долгое время отсутствовать и мы при обработке первой не успеваем обрабатывать остальные и они теряются или портятся. Значит нужно использовать какой-то буфер, откуда потом понемногу брать и обрабатывать данные, а что делать если мы уже заполнили буфер и нам уже некуда писать? Писать дальше начиная с первого (на самом деле с нулевого) элемента буфера, дополнительно нужно учитывать место с которого можно читать данные и место с которого можно писать. Вот мы и получаем наш кольцевой буфер.