STM32 Плата разработчика STM32F103C6T6 / STM32F103C8T6
🔌 Плата разработчика STM32F103C8T6 "Blue Pill"
Мощный 32-битный микроконтроллер ARM Cortex-M3 с частотой 72 МГц для ваших проектов
Общее описание
STM32F103C8T6 "Blue Pill" – это чрезвычайно популярная и доступная плата разработчика на базе 32-битного микроконтроллера STM32 от STMicroelectronics. Известная своей характерной синей платой, она предлагает невероятное соотношение цена/производительность, что делает её идеальным выбором для хоббистов, студентов и профессионалов. Благодаря мощному ARM Cortex-M3 ядру с тактовой частотой до 72 МГц, 128 КБ флеш-памяти (или 64 КБ в версии C6T6) и 20 КБ ОЗУ, эта плата открывает широкие возможности для создания сложных проектов – от систем домашней автоматизации до робототехники и измерительных устройств.
✅ Технические преимущества:
- • Высокопроизводительное ядро ARM Cortex-M3 – с частотой 72 МГц обеспечивает вычислительную мощность, значительно превосходящую Arduino UNO и другие 8/16-битные платы разработки
- • Богатая периферия для любых задач – два 12-битных АЦП, три 16-битных таймера, PWM-таймер, интерфейсы I2C, SPI, USART, USB и CAN для максимальной гибкости проектов
- • Энергоэффективность и надежность – рабочее напряжение 2.0-3.6В и широкий температурный диапазон от -40 до +85°C делают плату идеальной для портативных и промышленных применений
- • Компактные размеры при широких возможностях – два ряда пинов обеспечивают доступ ко всем функциям микроконтроллера при сохранении компактности для интеграции в любые проекты
- • Широкие возможности программирования – поддержка Arduino IDE, Mbed, STM32Cube, PlatformIO и других сред разработки обеспечивает гибкость в выборе программных инструментов
🔧 Идеальное решение для:
Систем домашней автоматизации
Робототехнических проектов
Измерительных систем
Аудио проектов и синтезаторов
Образовательных учреждений
Ремонта электроники и модификаций
📦 Детальные технические характеристики:
- Микроконтроллер: STM32F103C8T6 (также доступна версия STM32F103C6T6)
- Ядро: 32-битное ARM Cortex-M3
- Тактовая частота: До 72 МГц
- Флеш-память:
- STM32F103C8T6: 128 КБ
- STM32F103C6T6: 64 КБ
- Оперативная память (ОЗУ): 20 КБ
- Аналого-цифровые преобразователи (АЦП): Два 12-битных АЦП, до 16 каналов
- Таймеры: Три 16-битных таймера плюс один PWM-таймер
- Интерфейсы связи:
- I2C: до двух интерфейсов
- SPI: до двух интерфейсов
- USART: до трех интерфейсов
- USB: один интерфейс (Full Speed)
- CAN: один интерфейс
- Рабочее напряжение: 2.0-3.6В (плата работает на 3.3В)
- Температурный диапазон: от -40 до +85°C (промышленный) или от -40 до +105°C (расширенный)
- Выводы GPIO: До 37 программируемых выводов общего назначения
- Компоненты платы:
- USB-разъем для питания и связи
- Кнопка сброса (RESET)
- Переключатели BOOT0 и BOOT1 для выбора режима загрузки
- Светодиоды питания и пользовательский LED (PC13)
- Штыревые колодки для доступа ко всем пинам микроконтроллера
- Размеры платы: Примерно 53 x 23 мм
📊 Сравнение моделей STM32F103C6T6 и STM32F103C8T6:
| Характеристика | STM32F103C6T6 | STM32F103C8T6 |
|---|---|---|
| Флеш-память | 64 КБ | 128 КБ |
| ОЗУ | 20 КБ | 20 КБ |
| Частота ядра | До 72 МГц | До 72 МГц |
| Периферия | Идентичная | Идентичная |
| Цена | Ниже | Немного выше |
| Рекомендовано для | Проектов с меньшим объемом кода | Сложных приложений и будущего расширения |
STM32F103C8T6 "Blue Pill" – это мощная, доступная и универсальная платформа для разработки электронных проектов любой сложности. Благодаря высокой производительности, богатой периферии и активному сообществу, эта плата стала незаменимым инструментом для инженеров, хоббистов и студентов по всему миру. Начните свое путешествие в мир 32-битных микроконтроллеров уже сегодня!
Працює добре
Не прошивається через стмкуб
Нет вопросов о данном товаре, станьте первым и задайте свой вопрос.
Инструкция подключения STM32F103C6T6/C8T6 Плата Разработчика
ARM Cortex-M3, 72МГц, для IoT и DIY-проектов
1. Идентификация и подготовка платы
STM32F103C8T6 (также известная как "Blue Pill") — мощная плата разработчика на базе 32-битного микроконтроллера ARM Cortex-M3. Перед началом работы ознакомьтесь с основными компонентами платы и их назначением.
flowchart TD
subgraph BLUEPILL["STM32F103C8T6 (Blue Pill)"]
direction TB
subgraph PINOUT["Контакты"]
direction LR
PA["PA0-PA15
Пины порта A"]
PB["PB0-PB15
Пины порта B"]
PC["PC13-PC15
Пины порта C"]
end
subgraph JUMPERS["Перемычки (Jumpers)"]
BOOT0["BOOT0
Перемычка"]
BOOT1["BOOT1
Перемычка"]
end
subgraph CONNECTORS["Интерфейсы"]
USB["Micro USB
порт"]
SWD["SWD
программатор"]
end
LED["Встроенный
LED (PC13)"]
RESET["Кнопка
RESET"]
PINOUT --- JUMPERS
PINOUT --- CONNECTORS
PINOUT --- LED
PINOUT --- RESET
end
classDef pins fill:#f96,stroke:#333,stroke-width:2px
class PA,PB,PC pins
classDef components fill:#9ef,stroke:#333,stroke-width:2px
class BOOT0,BOOT1,USB,SWD,LED,RESET components
1.1 Ключевые элементы платы
- Перемычки BOOT0 и BOOT1 — определяют режим загрузки микроконтроллера
- Встроенный светодиод — подключён к пину PC13, удобен для демонстрации работы программ
- Micro USB порт — для питания и программирования (после установки загрузчика)
- SWD разъём — для программирования и отладки через ST-Link V2
- Кнопка Reset — для перезапуска микроконтроллера
2. Необходимые инструменты и компоненты
Для начала работы с STM32F103C8T6 вам понадобятся:
2.1 Аппаратное обеспечение
- Плата STM32F103C8T6 (Blue Pill)
- USB-to-TTL конвертер с поддержкой 3.3В логики (для загрузки bootloader)
- ST-Link V2 программатор (альтернативный и более быстрый метод прошивки)
- Кабель Micro-USB для подключения к компьютеру
- Соединительные провода типа Dupont "мама-мама" и "папа-мама"
2.2 Программное обеспечение
- Arduino IDE — для программирования платы (можно скачать с официального сайта)
- STM32 Flash loader demonstrator — для начальной загрузки bootloader (доступен на сайте ST)
- Загрузчик (bootloader) — из репозитория rogerclarkmelbourne/STM32duino-bootloader
- Пакет поддержки плат STM32 — из репозитория rogerclarkmelbourne/Arduino_STM32
3. Подготовка и прошивка загрузчика (bootloader)
Чтобы иметь возможность программировать STM32 через Arduino IDE и USB, необходимо сначала установить специальный загрузчик. Этот процесс выполняется один раз.
3.1 Настройка перемычек для режима прошивки
flowchart LR
subgraph NORMAL["Обычный режим
(для работы программ)"]
BOOT0_0["BOOT0 = 0"]
BOOT1_0["BOOT1 = 0"]
end
subgraph BOOTLOADER["Режим прошивки bootloader
(через USB-TTL)"]
BOOT0_1["BOOT0 = 1"]
BOOT1_X["BOOT1 = 0"]
end
subgraph FLASH["Режим программирования Flash
(через ST-Link)"]
BOOT0_0F["BOOT0 = 0"]
BOOT1_0F["BOOT1 = 0"]
end
- Найдите на плате перемычки BOOT0 и BOOT1 (обычно они жёлтого цвета)
- Для прошивки загрузчика установите следующие положения:
- BOOT0 = 1 (перемычка ближе к кнопке Reset)
- BOOT1 = 0 (перемычка ближе к USB-порту)
3.2 Подключение USB-to-TTL конвертера
flowchart LR
subgraph USBTTY["USB-to-TTL конвертер"]
TTY_GND["GND"]
TTY_5V["5V/3.3V"]
TTY_TX["TX"]
TTY_RX["RX"]
end
subgraph STM32["STM32F103C8T6"]
STM_GND["GND"]
STM_3V3["3.3V"]
STM_SWCLK["SWCLK"]
STM_SWDIO["SWDIO"]
end
TTY_GND --> STM_GND
TTY_5V --> STM_3V3
TTY_TX --> STM_SWCLK
TTY_RX --> STM_SWDIO
- Подключите USB-to-TTL конвертер к STM32 по следующей схеме:
- GND (конвертер) → GND (STM32)
- 5V или 3.3V (конвертер) → 5V (STM32)
- TX (конвертер) → A10/RX1 (STM32)
- RX (конвертер) → A9/TX1 (STM32)
- Подключите USB-to-TTL конвертер к USB-порту компьютера
3.3 Определение COM-порта
- Откройте Диспетчер устройств Windows:
- Нажмите правой кнопкой мыши на "Этот ПК" → "Управление" → "Диспетчер устройств"
- Раскройте раздел "Порты (COM и LPT)"
- Найдите устройство, соответствующее вашему USB-to-TTL конвертеру (например, "USB Serial Port (COM3)")
- Запомните номер COM-порта (например, COM3)
3.4 Прошивка загрузчика (bootloader)
- Скачайте и установите программу STM32 Flash Loader Demonstrator
- Скачайте архив с bootloader с GitHub (rogerclarkmelbourne/STM32duino-bootloader) и распакуйте его
- Запустите программу Flash Loader Demonstrator и выполните следующие шаги:
- Выберите COM-порт вашего USB-to-TTL конвертера
- Нажмите "Next"
- Программа должна подключиться к микроконтроллеру (должен появиться зелёный индикатор)
- Нажмите "Next" → выберите тип микроконтроллера "STM32F1_Medium-density_64K"
- Нажмите "Next" → выберите опцию "Download to device"
- Нажмите "..." рядом с полем пути
- Перейдите в распакованную папку с bootloader, затем в подпапку "binaries"
- Выберите файл "generic_boot20_pc13.bin" (важно выбрать правильный файл!)
- Убедитесь, что установлены флажки "Erase necessary pages" и "Verify after download"
- Нажмите "Next" и дождитесь завершения процесса прошивки
- После успешного завершения закройте программу
4. Настройка Arduino IDE
После установки загрузчика необходимо настроить Arduino IDE для работы с платой STM32.
4.1 Установка пакета плат STM32
- Скачайте архив с GitHub (rogerclarkmelbourne/Arduino_STM32) и распакуйте его
- Перейдите в папку ваших скетчей Arduino (обычно Документы\Arduino)
- Создайте в ней папку "hardware" (если её ещё нет)
- Скопируйте распакованную папку Arduino_STM32-master в папку hardware
- Перезапустите Arduino IDE, чтобы изменения вступили в силу
4.2 Выбор платы в Arduino IDE
- Откройте Arduino IDE
- Перейдите в меню Инструменты → Плата
- Найдите новый раздел "STM32F1 Boards (Arduino_STM32)"
- Выберите "Generic STM32F103C series"
5. Программирование платы через USB-to-TTL (с bootloader)
Теперь, когда загрузчик установлен, вы можете программировать плату через USB-to-TTL конвертер.
5.1 Настройка перемычек для обычного режима
- Установите перемычки в следующие положения:
- BOOT0 = 0 (перемычка ближе к USB-порту)
- BOOT1 = 0 (перемычка ближе к USB-порту)
5.2 Настройка метода загрузки в Arduino IDE
- Перейдите в меню Инструменты → Upload method
- Выберите "Serial"
- Перейдите в меню Инструменты → Порт
- Выберите COM-порт, соответствующий вашему USB-to-TTL конвертеру
5.3 Создание и загрузка первого скетча (пример Blink)
- Перейдите в меню Файл → Примеры → Basics → Blink (или A_STM32_Examples → Digital → Blink)
- Измените пин светодиода на PC13 (стандартный пин для встроенного светодиода на Blue Pill):
// Измените пин светодиода на PC13 const int ledPin = PC13; void setup() { // Устанавливаем пин как выход pinMode(ledPin, OUTPUT); } void loop() { digitalWrite(ledPin, HIGH); // Выключаем светодиод (на Blue Pill встроенный LED работает от инверсной логики) delay(1000); // Пауза 1 секунда digitalWrite(ledPin, LOW); // Включаем светодиод delay(1000); // Пауза 1 секунда }
- Нажмите кнопку "Загрузить" (стрелка вправо) в Arduino IDE
- После успешной загрузки встроенный светодиод на плате должен начать мигать
6. Программирование платы через ST-Link V2
Альтернативный и более быстрый метод программирования через SWD интерфейс с помощью ST-Link V2.
6.1 Подключение ST-Link V2
flowchart LR
subgraph STLINK["ST-Link V2"]
ST_GND["GND"]
ST_3V3["3.3V"]
ST_SWCLK["SWCLK"]
ST_SWDIO["SWDIO"]
end
subgraph STM32["STM32F103C8T6"]
STM_GND["GND"]
STM_5V["5V"]
STM_A9["A9 (TX1)"]
STM_A10["A10 (RX1)"]
end
ST_GND --> STM_GND
ST_3V3 --> STM_5V
ST_SWCLK --> STM_A10
ST_SWDIO --> STM_A9
- Подключите ST-Link V2 к STM32 по следующей схеме:
- GND (ST-Link) → GND (STM32)
- 3.3V (ST-Link) → 3.3V (STM32)
- SWCLK (ST-Link) → SWCLK (STM32)
- SWDIO (ST-Link) → SWDIO (STM32)
- Подключите ST-Link V2 к USB-порту компьютера
6.2 Настройка перемычек для ST-Link
- Установите перемычки в следующие положения:
- BOOT0 = 0 (перемычка ближе к USB-порту)
- BOOT1 = 0 (перемычка ближе к USB-порту)
6.3 Настройка метода загрузки в Arduino IDE
- Перейдите в меню Инструменты → Upload method
- Выберите "STLink"
6.4 Загрузка скетча через ST-Link
- Откройте или создайте скетч для загрузки
- Нажмите кнопку "Загрузить" (стрелка вправо) в Arduino IDE
- После успешной загрузки программа начнёт выполняться автоматически
7. Работа с периферией и интерфейсами
STM32F103C8T6 имеет богатый набор периферии и интерфейсов для разнообразных проектов.
7.1 Цифровые входы/выходы
Работа с цифровыми пинами аналогична Arduino, но используются другие обозначения пинов (PA0, PB1, PC13 и т.д.):
7.2 Аналоговые входы
STM32F103C8T6 имеет несколько аналоговых входов с разрешением 12 бит (0-4095) по сравнению с 10 бит (0-1023) в Arduino:
7.3 I2C интерфейс
STM32F103C8T6 имеет два I2C интерфейса. Для работы с I2C используйте библиотеку Wire:
7.4 SPI интерфейс
Для работы с SPI используйте библиотеку SPI:
8. Устранение неисправностей
| Проблема | Возможная причина | Решение |
|---|---|---|
| Плата не определяется при подключении | Отсутствуют или некорректные драйверы | Установите правильные драйверы для USB-to-TTL конвертера или ST-Link |
| Ошибка прошивки через USB-TTL | Неправильные настройки перемычек, проблемы с подключением | Проверьте положение перемычек BOOT0=1, BOOT1=0 для прошивки bootloader |
| Программа не запускается после прошивки | Неправильные перемычки в режиме запуска | Установите BOOT0=0, BOOT1=0 для обычного режима работы |
| Ошибка программирования через ST-Link | Неправильное подключение, проблемы с питанием | Проверьте подключение SWDIO, SWCLK, GND, 3.3V |
| Встроенный светодиод не работает | Используется неправильный пин или логика | Используйте PC13 с инверсной логикой (LOW для включения) |
9. Полезные ссылки
- Arduino_STM32 — репозиторий с поддержкой STM32 для Arduino IDE
- STM32duino-bootloader — репозиторий с bootloader для STM32
- STM32CubeF1 — официальный пакет разработки от ST Microelectronics
- STM32-base.org — информация о плате Blue Pill
FAQ (частые вопросы)
-
Чем отличается Плата разработчика STM32 на контроллере STM32F103C6T6 от STM32F103C8T6
-
Я получаю ошибку реализации протокола SWD при использовании STM32CubeMonitor с моей платой STM32F103C8T6 и ST-Link v2. Что можно сделать?
-
Как оптимизировать энергопотребление моего STM32F103C6T6 в режиме ожидания, если мои измерения показывают значения выше ожидаемых?
-
В чем основные отличия STM32 по сравнению с Arduino?
-
Можно ли использовать STM32 Arduino IDE для прошивки?
-
Почему после прошивки STM32 программа не запускается автоматически?