Что такое STM32F103. Какие особенности делают его популярным среди разработчиков. Как настроить и начать работу с этим микроконтроллером. Где применяется STM32F103 и почему стоит его изучить.
STM32F103: ключевые характеристики и возможности
STM32F103 — это 32-битный микроконтроллер семейства STM32 от компании STMicroelectronics, построенный на базе ядра ARM Cortex-M3. Данный микроконтроллер обладает рядом особенностей, делающих его популярным выбором для встраиваемых систем:
- Высокая производительность — тактовая частота до 72 МГц
- Объем флэш-памяти от 64 до 1024 КБ
- Объем ОЗУ от 20 до 96 КБ
- Широкий набор периферийных модулей — таймеры, АЦП, ЦАП, интерфейсы и др.
- Низкое энергопотребление
- Доступность и невысокая стоимость
Благодаря этим характеристикам STM32F103 часто используется в промышленных системах управления, бытовой электронике, медицинском оборудовании и других встраиваемых приложениях.

Архитектура и основные блоки STM32F103
Рассмотрим ключевые компоненты архитектуры микроконтроллера STM32F103:
- Ядро ARM Cortex-M3 с тактовой частотой до 72 МГц
- Флэш-память программ объемом 64-1024 КБ
- ОЗУ объемом 20-96 КБ
- До 80 линий ввода/вывода общего назначения
- 12-битные АЦП и ЦАП
- Интерфейсы SPI, I2C, USART, CAN, USB
- Таймеры общего назначения и расширенные таймеры
- Часы реального времени (RTC)
- DMA-контроллер
Такая архитектура обеспечивает высокую производительность и широкие возможности для разработки различных встраиваемых систем на базе STM32F103.
Варианты исполнения и основные характеристики
Микроконтроллер STM32F103 выпускается в нескольких вариантах, различающихся объемом памяти и набором периферии:
- STM32F103x8 — 64 КБ флэш, 20 КБ ОЗУ
- STM32F103xB — 128 КБ флэш, 20 КБ ОЗУ
- STM32F103xC — 256 КБ флэш, 48 КБ ОЗУ
- STM32F103xD — 384 КБ флэш, 64 КБ ОЗУ
- STM32F103xE — 512 КБ флэш, 64 КБ ОЗУ
- STM32F103xF — 768 КБ флэш, 96 КБ ОЗУ
- STM32F103xG — 1024 КБ флэш, 96 КБ ОЗУ
Основные характеристики STM32F103:

- Напряжение питания: 2.0-3.6 В
- Рабочая температура: -40 до +105°C
- Корпуса: LQFP48, LQFP64, LQFP100, LQFP144
- Максимальная тактовая частота: 72 МГц
Такое разнообразие вариантов позволяет выбрать оптимальную конфигурацию для конкретного применения.
Программирование и отладка STM32F103
Для разработки программного обеспечения для STM32F103 используются различные среды и инструменты:
- STM32CubeIDE — бесплатная интегрированная среда разработки от STMicroelectronics
- Keil MDK — профессиональная среда разработки для микроконтроллеров ARM
- IAR Embedded Workbench — мощная среда разработки для встраиваемых систем
- GCC и Eclipse — бесплатные инструменты с открытым исходным кодом
Для программирования и отладки STM32F103 обычно используются JTAG или SWD интерфейсы. Популярные программаторы/отладчики:
- ST-LINK/V2 — официальный инструмент от STMicroelectronics
- J-Link — универсальный отладчик от SEGGER
- Black Magic Probe — открытый проект программатора/отладчика
Широкая поддержка инструментов разработки облегчает создание программного обеспечения для STM32F103.

Преимущества использования STM32F103
Рассмотрим основные преимущества, которые дает применение микроконтроллера STM32F103 в проектах:
- Высокая производительность при низком энергопотреблении
- Богатый набор периферийных модулей
- Хорошая документация и поддержка от производителя
- Наличие недорогих отладочных плат
- Большое сообщество разработчиков
- Совместимость с другими микроконтроллерами семейства STM32
Эти преимущества делают STM32F103 отличным выбором как для обучения, так и для коммерческих проектов. Микроконтроллер позволяет быстро создавать прототипы устройств и легко масштабировать решения.
Популярные отладочные платы на базе STM32F103
Для быстрого старта разработки на STM32F103 удобно использовать готовые отладочные платы. Рассмотрим несколько популярных вариантов:
- Blue Pill — недорогая китайская плата с минимальной обвязкой
- Nucleo-F103RB — официальная отладочная плата от STMicroelectronics
- STM32F103C8T6 Mini — компактная плата с USB-портом
- STM32 Black Pill — улучшенная версия Blue Pill с большим объемом памяти
Эти платы позволяют быстро начать разработку без необходимости проектирования собственной печатной платы. Они содержат всю необходимую обвязку микроконтроллера и средства для программирования.

Применение STM32F103 в реальных проектах
STM32F103 широко применяется в различных областях электроники и встраиваемых систем. Вот некоторые примеры использования этого микроконтроллера:
- Промышленные системы управления и автоматизации
- Медицинское оборудование
- Потребительская электроника
- Автомобильная электроника
- Системы «умного дома»
- Портативные устройства с батарейным питанием
Благодаря своей универсальности и доступности, STM32F103 часто выбирают для прототипирования и мелкосерийного производства. Этот микроконтроллер позволяет быстро реализовать различные функции и интерфейсы в компактном устройстве.
Заключение: почему стоит изучать STM32F103
STM32F103 остается популярным выбором среди разработчиков встраиваемых систем по ряду причин:
- Оптимальное соотношение цены и возможностей
- Широкая доступность и поддержка
- Большое сообщество и обилие обучающих материалов
- Возможность легкого перехода на более мощные микроконтроллеры STM32
Изучение STM32F103 дает solid foundation для работы с современными 32-битными микроконтроллерами. Знания и навыки, полученные при работе с этим микроконтроллером, будут полезны в разработке широкого спектра встраиваемых систем.

STM-32 Минимальная аудио плата / Хабр
В ожидании часов спроектировал девайс на STM32. По функциональности задумывалось реализовать простой диктофон или плеер и посмотреть на сколько возможна обработка звука на STM32F103 семействе, хотя бы с использованием Fixed-Point.
Для реализации минимальной аудио платы я взял контроллер который имеет ЦАП, АЦП и может работать с СД картой не только по SPI но и желательно через SDIO. STM32F103RCT6 подходит. Заказал 5 штук на Али за 7$ с копейками, на случай если что-то пойдет не так. Дисплей и горсть электретных микрофонов лежит в запасах. Кварцевые резонаторы думаю взять в ЧипДип.
Разрабатывать в среде разработки STM32CubeIDE32 очень удобно. Можно сконфигурировать HAL в CubeIDE, а потом делать схемотехнику соединений.
Характеристики контроллера
STM32F103RCT6 3xADC 1xDAC, SDIO, USB. На нем есть еще I2S. В дальнейшем можно подключить аудио чип.
Для дебага и заливки используем выводы SWDIO SDCLK. Можно прошивать через UART или USB, но я не пробовал STM32F103 Bootloader (загрузчик). STM32 — входим в bootloader по кнопке.
STM32F103RCT6
Схема подключения контроллера. Дисплей подключается по I2C1. Перемычкой SJ3 можно выставить адрес по которому можно обращаться к дисплею 0x7A или 0x78.
128×64 OLED
Карточка подключается по SDIO. Можно также подключить по SPI, но скорость обмена будет медленнее. SDIO в моем случае работает по 4-ем линиям и коме того SPI интерфейс для карты памяти не «родной» Я подтянул кверху часть выводов, остальные подтянутся программно. Без программной подтяжки будет задействована одна линия.
SD CARD
Усилитель для микрофона и наушников это TS922 двойной операционный усилитель. Как я уже писал в статье он тянет до 80 мА, что вполне достаточно для наушников. Вторая часть микросхемы это усилитель микрофона. Конденсаторы в цепи обратной связи это фильтр высоких частот. Коэффициент усиления K = 1 + Rос/R или 1 + 5100 / 510 = 11 на примере усилителя для наушников. Как рассчитать другие элементы есть в той же статье. Я сделал общий делитель напряжения для задания смещения на входе операционника. тем самым сэкономив пару-тройку компонентов.
Хорош ли такой подход? Было исправлено по совету Хабровчан
Amplifiers
Питание сделано через USB LM1117-3.3V.
Добавлено 6 кнопок и некоторые выводы выведены наружу.
P.S. Пока проектировал плату на stm32f103 наткнулся на серию STM32F411. По цене в 2-3 доллара полноценное ядро CortexM4!
Arm Cortex-M4 32b MCU+FPU, 125 DMIPS, 512KB Flash, 128KB RAM, USB OTG FS, 11 TIMs, 1 ADC, 13 comm. interfaces
На нем уже можно и с DSP поиграться. Реализовать IIR фильтр и ревербератор и много еще чего.
Realtime Audio DSP on STM32F4
Но это уже будет другая история.
Autodesk Eagle:
→ STM32AudioLCDMinimal
Замечания и предложения приветствуются.
Серия stm32f103 (STMicroelectronics)
STMicroelectronics
Общие характеристики
Раздел | Микроконтроллеры широкого назначения | |
Напряжение питания | ||
---|---|---|
Максимальная частота ядра | ||
Тип памяти программ |
Документация на серию stm32f103
- найти stm32f103.pdf
Товары серии stm32f103
Наименование | i | Упаковка | Ядро | Память программ | RAM | T раб | Корпус | Порты |
---|---|---|---|---|---|---|---|---|
STM32F103C4T6 (ST)
|
| — | — | |||||
| — | — | — | — | — | — | ||
STM32F103C8T6 PBF (ST)
| LQFP-48 48-LQFP (7×7) | |||||||
— | — | — | — | — | — | |||
| — | — | — | — | — | — | ||
| — | — | — | — | — | — | ||
| — | — | — | — | — | — | ||
| — | — | — | — | — | — | ||
| — | — | — | — | — | — | ||
STM32F103RBT6 PBF (ST) | LQFP-64 | |||||||
| — | — | — | — | — | — | ||
| — | — | — | — | — | — | ||
| — | — | — | — | — | — | ||
STM32F103T4U6 (ST)
|
| QFN-36 VFQFPN36 | — | |||||
| — | — | — | — | — | — | ||
| — | — | — | — | — | — | ||
| — | — | — | — | — | — | ||
| — | — | — | — | — | — | ||
| — | — | — | — | — | — | ||
| — | — | — | — | — | — | ||
| — | — | — | — | — | — | ||
| — | — | — | — | — | — | ||
| — | — | — | — | — | — | ||
| — | — | — | — | — | — | ||
| — | — | — | — | — | — | ||
| — | — | — | — | — | — | ||
| — | — | — | — | — | — | ||
| — | — | — | — | — | — | ||
| — | — | — | — | — | — | ||
| — | — | — | — | — | — | ||
| — | — | — | — | — | — |
stm32f103 публикации
14 декабря 2021
статья
Софья Букреева (г. Протвино)
Компания STMicroelectronics предлагает все необходимые компоненты для систем управления коллекторными, бесколлекторными, синхронными и шаговыми двигателями. К услугам разработчиков – драйверы STSPIN, широкий выбор… …читать
18 июня 2021
новость
Программа показатьсвернуть Приглашаем всех желающих принять участие в вебинаре, посвященном работе с графической библиотекой TouchGFX и новой линейке высокопроизводительных микроконтроллеров STM32H7A/B производства STMicroelectronics. Созданные… …читать
21 июня 2018
статья
Данная статья является третьей в серии публикаций, посвященных построению графических приложений на базе микроконтроллеров STM32. На этот раз основное внимание уделено специализированным периферийным блокам, которые используются для работы с… …читать
15 января 2018
статья
Продолжаем серию статей «STM32 + периферия = LOVE», начатую в конце прошлого года.
Простейшие TFT–дисплеи можно подключать к микроконтроллерам STMicroelectronics уже младшей линейки – STM32L0. А такие встроенные в изделия старших линеек… …читать
21 декабря 2016
статья
Чтобы помочь разработчикам при cоздании промышленных контроллеров, производители электронных компонентов предлагают различные референсные схемы. В компании Maxim Integrated пошли дальше и выпустили платформу Pocket IO™ – референсный… …читать
15 июля 2015
новость
Компания STMicroelectronics выпустила на рынок линейку недорогих микроконтроллеров STM32F301 / STM32F302 / STM32F303, которая является продолжением развития микроконтроллеров серий STM32F101 / STM32F102 / STM32F103. Обладая схожими… …читать
A Blue Pill Датчик температуры LMT01 — неофициальная документация Mecrisp Stellaris 1.0
Это переписанный предыдущий проект датчика температуры LMT01. Теперь он использует арифметику с фиксированной запятой для вычисления температуры с точностью до одного десятичного знака и имеет некоторые дополнительные функции, такие как доступ к терминалу USB/USART2, считыватель электронной подписи устройства MCU и т. д.
Он содержит готовый к запуску двоичный файл для 64 КБ. Флэш-версия микроконтроллера STM32F103 Cortex-M3, используемая в Blue Pill, которая загружается с USB при включении питания.
Подключите несколько компонентов, показанных на схеме ниже, чтобы считать температуру. Он отлично работает без них, но должен жаловаться на отсутствие датчика, если вы попытаетесь прочитать температуру.
USB
Используется USB-драйвер Mecrisp-Stellaris для STM32F103 от Jean-Claude Wippler, основанный на USB-драйвере Coreforth от Eckhart Köppen.
Примечание
От Виктора Дворжака. Для USB требуется драйвер на стороне ПК idVendor = 0x0483 idProduct = 0x7540, который представляет собой драйвер виртуального COM-порта STM32, описанный в en.DM00478229..pdf. Драйвер en.stsw-stm32102.zip (24755 kB) доступен непосредственно на сайте st.com
- . Подключите USB-порт «Blue Pill» к ПК и найдите устройство «
» в вашей системе. - Подключите последовательный терминал ПК к указанному выше USB-устройству, вы можете выбрать любую скорость передачи данных.
Примечание
Терминал USB может переключиться на USART2, введя «-usb». Скорость 460800 бод.
USART2
Подключите последовательный терминал для считывания температуры.
USART2 | Сигнал микроконтроллера | 3,3 В/USB-адаптер |
---|---|---|
ПА1 | РТС | КТС |
ПА2 | ТХ | РХ |
ПА3 | РХ | ТХ |
Примечание
Терминал USART2 может переключиться на USB, введя «+usb».
Инструкции
- Запишите образ ae9236b921613c07b1967f21ff20ee97.
bin из этого архива на плату STM32F103RBT6 (128 КБ Flash-версия).
- Загрузите его здесь: https://sourceforge.net/projects/mecrisp-stellaris-folkdoc/files/ae9236b921613c07b1967f21ff20ee97.tar.gz/скачать
- Подключите несколько компонентов, как показано на схеме ниже, и включите плату.
- Температуру можно прочитать на терминале, нажав кнопку или введя «T» на терминале.
- Плата работает на частоте 72 МГц с использованием встроенного кристалла 8 МГц.
Схема
Примечание
Нажмите «C» или «F» для считывания температуры, а не «C», как показано ниже на этой схеме более ранней версии.
Схема синей таблетки
Макет предоставлен Майклом Джеффри.
Содержимое архива
ae9236b921613c07b1967f21ff20ee97.tar.gz
. ├── ae9236b921613c07b1967f21ff20ee97.DELETE.sh ├── ae9236b921613c07b1967f21ff20ee97.README.md ├── ae9236b921613c07b1967f21ff20ee97.bin ├── ae9236b921613c07b1967f21ff20ee97.flashme ├── ae9236b921613c07b1967f21ff20ee97.words4.txt ├── f103-lmt01.jpeg ├── image.bin └── lmt01-blue-pill-layout-1.jpg
Исходный код
Этот исходный код сам по себе не запустит датчик температуры, однако это не проблема, так как все необходимые слова поддержки установлены в загружаемом готовом к запуску изображении выше. Больше ничего не требуется, просто введите «C» или «F» в терминал или нажмите кнопку, чтобы считать температуру.
Исходный код
~/projects/programming-languages/forth/mecrisp-stellaris/f103-lmt01/f103-lmt01.fs.html1 \ Имя программы: f103-lmt01.fs 2 \ Дата: Пт, 1 ноября 2019 г., 21:02:00 AEDT 3 \ Copyright 2019 by t.j.porter, под лицензией GPLV2 4 \ Для этой программы могут потребоваться предварительно загруженные файлы поддержки 5 \ Для Mecrisp-Stellaris Матиаса Коха. 6 \ https://sourceforge.net/projects/mecrisp/ 7 \ Чип: STM32F103RBT6, Плата: Olimex P103 8 \ Часы: 8 МГц с использованием внутренних часов RC, если не указано иное 9\ Все имена регистров соответствуют CMSIS-SVD 10 \ Примечание: gpio a,b,c,d,e и uart1 включены в Mecrisp-Stellaris Core. 11 \ Требуются предварительно загруженные программы поддержки: 12 \ Standalone: предварительно загруженные файлы поддержки не требуются 13 \ 14 \ Эта программа: считыватель датчика температуры Texas Instruments LMT01 для микроконтроллера STM32F103 128 КБ 15 \ Печатает DegC и DegF отдельно через терминал или вместе при нажатии кнопки (PB0). 16 \ Использует математику с фиксированной точкой: https://mecrisp-stellaris-folkdoc.sourceforge.io/fixed-point.html?highlight=fixed 17 \ 18 \ Часы установлены на 72 МГц в upload.main.sh для более быстрой загрузки 19\ -------------------------------------------------- --------------------------\ 20 \ LMT01: Выходная передаточная функция: Temp (C) = ((count/4096) *256) -50 21 \ Температура (°C) Количество импульсов 22\-49,9375 1 23\-49,875 2 24\-40 160 25\-20 480 26 \ 0 800 27\30 1280 28\50 1600 29\100 2400 30\150 3200 31 \ 32 \ ------------------------------------------------ ---------------------------\ 33 \ Описание GPIO 34 \ ---- ----------- 35 \ PA0 Wake Up PB, обычно низкий: irq$ = 6 36\PC12 LED (открытый сток к катоду светодиода): здесь не используется 37 \ PB12 Вход счетчика: irq# = 40 38 \ PB13 LMT01-1 Активировать 39\ -------------------------------------------------- --------------------------\ 40 компиляторам 41 \ скомпилировать прошивку 42 43 \ Переменные 44 0 переменная count.
lmt01 45 46 47 \ Слова GPIO 48 : GPIOB_CRH_MODE13 ( %XX -- ) 20 lshift GPIOB_CRH bis! ; \ GPIOB_CRH_MODE13 Биты режима порта n.13 49 : GPIOB_CRH_CNF13 ( %XX -- ) 22 lshift GPIOB_CRH bic! ; \ GPIOB_CRH_CNF13 Биты конфигурации порта n.13 50 : GPIOB_BSRR_BS13 %1 13 lshift GPIOB_BSRR bis! ; \ GPIOB_BSRR_BS13 Установить бит 13 51 : GPIOB_BSRR_BR13 %1 29lshift GPIOB_BSRR bis! ; \ GPIOB_BSRR_BR13 Сбросить бит 13 52 : GPIOA_CRL_CNF0 ( %XX -- ) 2 lshift GPIOA_CRL bis! ; \ GPIOA_CRL_CNF0 Биты конфигурации порта n.0 53 : GPIOA_BRR_BR0 %1 0 lshift GPIOA_BRR bis! ; \ GPIOA_BRR_BR0 Сбросить бит 0 54 55 \ Слова прерывания для LMT01 на PB12, падающий триггер. Прерывание №40 56 : AFIO_EXTICR4_EXTI12 ( %XXXX -- ) 0 lshift AFIO_EXTICR4 bis! ; \ AFIO_EXTICR4_EXTI12 Конфигурация EXTI12 57 : line.12.unmask %1 12 lshift EXTI_IMR bis! ; \ EXTI_IMR_MR12 Маска прерывания в строке 12 58 : line.12.mask %1 12 lshift EXTI_IMR bic! ; \ EXTI_IMR_MR12 Маска прерывания в строке 12 59: EXTI_RTSR_TR12 %1 12 lshift EXTI_RTSR bis! ; \ EXTI_RTSR_TR12 Восходящая триггерная строка 12 60 : EXTI_FTSR_TR12 %1 12 lshift EXTI_FTSR bis! ; \ EXTI_FTSR_TR12 Спадающая строка триггера 12 61 : EXTI_PR_PR12 %1 12 lshift EXTI_PR bis! ; \ EXTI_PR_PR12 Ожидание бит 12 62 : NVIC_ISER1_SETENA ( %XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -- ) 0 lshift NVIC_ISER1 bis! ; \ NVIC_ISER1_SETENA СЕТЕНА 63 64 \ Прерывание для PB по заднему фронту PA0 в качестве триггера.
Прерывание № 6 65 : AFIO_EXTICR1_EXTI0 ( %XXXX -- ) 0 lshift AFIO_EXTICR1 bis! ; \ EXTI0 конфигурация 66 : line.0.unmask %1 0 lshift EXTI_IMR bis! ; \ EXTI_IMR_MR0 Маска прерывания на линии 0 67 : line.0.mask %1 0 lshift EXTI_IMR bic! ; \ EXTI_IMR_MR0 Маска прерывания на линии 0 68 : EXTI_RTSR_TR0 %1 0 lshift EXTI_RTSR bis! ; \ EXTI_RTSR_TR0 Восходящая триггерная линия 0 69: EXTI_PR_PR0 %1 0 lshift EXTI_PR bis! ; \ EXTI_PR_PR0 Бит ожидания 0 70 : NVIC_ISER0_SETENA ( %XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -- ) 0 lshift NVIC_ISER0 bis! ; \ NVIC_ISER0_SETENA СЕТЕНА 71 72 \ Общие слова 73 : >s31.32 ( u -- s31.32 ) 0 поменять местами ; \ преобразовать целое число в число с фиксированной точкой s31.32 74 : nvic-priority ( приоритет irq# -- ) 75$E000E400 + c! 76; 77 78 : pa0.pulldown ( -- ) \ PA0 - это кнопка считывания температуры, срабатывающая при поднятии вверх, поэтому добавьте понижение. 79\ 3 2 1 0 80 \ CNF0 MOD0 81 \ 0 1 0 0 ввод по умолчанию, плавающий 82 \ 1 0 0 0 требуется %10 константа cnf.
input.pull.up.down 83 2 бит GPIOA_CRL bic! \ очистить бит 2 84 3-битный GPIOA_CRL bis! \ установить бит 3 85 GPIOA_BRR_BR0 \ с F103, включено понижение, установка выходного бита на низкий уровень 86; 87 88 : pb13-> вывод ( -- ) 89 \ 23 22 21 20 90 \ CNF13 MODE13 91 \ 0 1 1 1 92 %11 GPIOB_CRH_MODE13 \ установить оба бита режима в режиме вывода 50 93 %11 GPIOB_CRH_CNF13 \ очистить оба бита = push/pull в режиме вывода 94; 95 96 : lmt01.power.on ( -- ) 97 ГПИОБ_БСРР_БС13 98; 99 100 : lmt01.power.off ( -- ) 101 GPIOB_BSRR_BR13 102; 103 104 : lmt01-ошибка? ( -- ) count.lmt01 @ 0 = ; \ если count.lmt01 >0, ошибки нет 105 106 : lmt01.interrupt.handler ( -- ) 107 line.12.mask \ предотвратить повторный запуск line.12 до полной обработки 108 EXTI_PR_PR12 \ сброс триггера в строке 12 1091 счет.lmt01 +! \ увеличить count.lmt01 на единицу 110 line.12.unmask\line.12 теперь можно перезапускать 111; 112 113: lmt01.interrupt.init (#40) 114 1 AFIO_EXTICR4_EXTI12 \ строка PB12 115 строка.12.
размаскировать 116 EXTI_FTSR_TR12\падающий триггер на 12 строке 117 ['] lmt01.interrupt.handler irq-exti10 ! \ ссылка exti10 ( на pb.interrupt.handler 118 %100000000 NVIC_ISER1_SETENA \ включить ввод #40 119; 120 121 : read.lmt01 ( lmt01 -- count ) \ чтение датчика, включение, задержка, выключение 122 0 счет.lmt01 ! 123 мс.счетчик.сброс 124 lmt01.power.on 125 100 мс.задержка 126 lmt01.power.off 127 lmt01-ошибка? если окно \count закончилось, если нет counts произошла ошибка. 128. "LMT01 НЕИСПРАВЕН ИЛИ НЕ ПРИСУТСТВУЕТ!" 129 еще 130 отсчет.lmt01 @ 131 тогда 132 line.0.unmask\pb.interrupt теперь может срабатывать снова 133; 134 135 : convert.count.to.grades.c ( count -- degC ) \ convert count.lmt01 to градусы C 136 >s31.32 \ Temp (C) = ((count.lmt01/4096) *256)-50 137 4096,0 ж/ 256,0 ж* 50,0 д- 138; 139 140 : преобразовать.число.в.градусы.f ( -- ) 141 преобразовать.число.в.градусы.c 142 1,8 f* 32 >s31,32 d+ \ °F = °C * 1,8000 + 32,00 143 144; 145 146 : C ( -- ) \ Ярлык печати Deg C 147 читать.
lmt01 148 преобразовать.число.в.градусы.c 149 2 л.н. "С" кр 150 ; 151 152 : F ( c -- ) \ Ярлык печати Deg F. 153 читать.lmt01 154 преобразовать.число.в.градусы.f 155 2 ф.н."Ж"кр 156; 157 158 : pb.interrupt.handler ( -- ) 159line.0.mask \ предотвратить повторный запуск до полной обработки 160 EXTI_PR_PR0 \ очистить триггер 161 C F cr \ читать температуры 162; 163 164: pb.interrupt.init (#6) 165 0 AFIO_EXTICR1_EXTI0 \ строка PA0 166 line.0.unmask \ размаскировать строку 0 167 EXTI_RTSR_TR0 \ восходящий триггер в строке 0 168 ['] pb.interrupt.handler irq-exti0 ! \ связать exti0 с pb.interrupt.handler 169%1000000 NVIC_ISER0_SETENA \ разрешить прерывание №6 170 ; 171 172 : interrupt.priorities ( -- ) \ самое высокое число имеет самый низкий приоритет 173 100 40 nvic-priority \ lmt01 датчик импульса обнаружения 174 200 6 nvic-приоритет \ кнопка 175 ; 176 177 : инициализация ( -- ) 178 72 МГц 179 прерываний.приоритеты 180 systick.init 181 lmt01.interrupt.init 182 пб.interrupt.init 183 pa0.pulldown 184 pb13-> вывод 185 ; 186 187 инициал 188 189компилятор 190 191 192 \ Скриншоты 193 \ 194 об/с 35,68 С 195\ ок.
196\ф 96,23 ф 197\ ок. 198 \ нажать кнопку 199 \ 35,68 С 200 \ 96,34 Ф 201 \ 202 \ 35,68 С 203 \ 96,34 Ф 204 \ 205 \ read.lmt01 . 1371 ок. <-- необработанный счет @ 35,68 C = 96,34 F 206
Играть с Фортом ?
Этот образ представляет собой законченную систему, он содержит компилятор и множество внутренних периферийных регистров, см. файл ae9236b921613c07b1967f21ff20ee97.words4.txt для получения списка того, что там есть.
Интересно, что все они означают? см. Словарь.
Вы можете читать, записывать и проверять регистры, запускать программы и даже фиксировать их во флэш-памяти.
Примечание
, чтобы стереть всю флэш-память, кроме системы Mecrisp-Stellaris Forth по умолчанию, введите «eraseflash» на терминале. Это удалит все из этого проекта, включая USB, и только USART2 будет работать с терминалом. Чтобы переустановить все, просто перепрошейте образ ae9236b921613c07b1967f21ff20ee97.bin на вашу плату.
базовых плат STM32F103
базовых плат STM32F103 23 сентября 2016 г.
Лаборатории клена и листьев
Это дело прошлого. Вероятно, лаборатории Листа опередили свое время.Идея заключалась в том, чтобы поместить 32-битный ARM в установку в стиле Arduino. Звуки «Клен» были разработаны, чтобы иметь те же физические размеры. и некоторая степень совместимости контактов с Arduino. Какая отличная идея! Почему не полетело? Это выглядело так:
Позже они выпустили изящный маленький «клен_мини», который отказался от физическая совместимость с Arduino, но сохранена Maple IDE система развития. Это выглядело так:
Внимательный читатель заметит, что оригинальный Maple использовал STM32 с большим пакет (с 64 контактами), чем тот, который использовался для Maple-mini (48 контактов). И Maple mini, и китайские «голубые таблетки», с которыми я работал используйте STM32 с меньшим 48-контактным корпусом.
- Детали кленовой булавки
Платы «сделано в Китае» STM32F103 «синяя таблетка», с которыми я работаю. имеют много общего с Maple Mini, но есть и отличия.
Платы Maple имеют кнопку загрузки, а не две перемычки.
Загрузочная "кнопка" на maple-mini подключена к PB8,
и есть схема отключения USB, управляемая PB9.
На большом клене кнопка загрузки подключена к PC9
и отключение USB на ПК12.
- Схема Maple_mini
- Github — Leaf labs, Maple Mini
- Sparkfun: клен
- Sparkfun: Maple Mini
- Форум Arduino: Обсуждение Maple (ДОЛГО!)
- Вики, порожденная выше
- Форум Arduino: Обсуждение Maple
Клен против Клена Мини
Я искал плату с чипом bona fie SMT32F103 производства ST. Итак, я сделал ставку на три платы Maple r5 на Ebay и получил их за 10 долларов (плюс 10 долларов за доставку). Таким образом, каждый из них будет стоить мне около 7 долларов. Maple использует STM32F103C8T6, как и Maple-mini, что меня удивило. Maple поместил STM32F103 в форм-фактор Arduino Pro, обеспечив некоторую совместимость.
с шилдами Arduino и тому подобным. Наряду с IDE в стиле Arduino, это, безусловно, выглядит как превосходный
выбор для меня с этого момента далеко в будущем, но все, что мы можем сделать, это пролить слезу.
Первые платы были проданы в 2009 году, r5 продавался в 2010 году.
- Архив документов Leaf Labs: Maple
- Кленовая схема
- BQ24010 техпаспорт (TI, pdf, 22 стр.)
- MCP1703 техпаспорт (pdf, 32 стр.)
Он может питаться от USB, от бочкообразного разъема или от литий-ионного аккумулятора. Перемычка должна быть размещена на соответствующей паре контактов в зависимости от источника питания. Через штекерное гнездо можно подать до 12 вольт, но ближе к 3,3 позволит увеличить ток. без тепловых проблем с бортовыми регуляторами. Бортовые регуляторы - MCP1703 от Microchip. Они имеют падение напряжения 0,625 В (поэтому, когда напряжение литий-ионной батареи падает до 3,9 В).25, игра окончена)
Плата может заряжать литий-ионный аккумулятор (для этого предназначена BQ24010).