Плата STM32 Blue Pill на STM32F103C8T6: обзор и подключение
Что это за плата
Blue Pill — народное название дешёвой отладочной платы на STM32F103C8T6: плитка ~53×23 мм с шагом выводов 2,54 мм, по размеру ближе к Arduino Pro Mini, чем к Uno. Артикул по системе ST: 103 — семейство Performance line на ядре Arm Cortex-M3, C — корпус на 48 выводов, 8 — 64 КБ флеша (у старшего STM32F103RB её 128 КБ), T — корпус LQFP. Все цифры ниже — из действующего datasheet ST (DS5319 Rev 20, июль 2025), не из описаний магазинов.
Характеристики по datasheet ST
| Параметр | Значение |
|---|---|
| Ядро | Arm Cortex-M3, 72 МГц, 1,25 DMIPS/MHz, аппаратные умножение и деление |
| Флеш / ОЗУ | 64 КБ / 20 КБ |
| Питание | 2,0–3,6 В |
| GPIO | 37 на этом корпусе, почти все толерантны к 5 В, мапятся на 16 линий внешних прерываний |
| АЦП | 2 × 12 бит, до 16 каналов, преобразование 1 мкс, встроенный датчик температуры |
| Таймеры | 3 универсальных 16-битных по 4 канала + продвинутый TIM1 с dead-time для управления моторами, SysTick, два watchdog |
| Связь | 2 × SPI до 18 Мбит/с, 2 × I2C, 3 × USART (один до 4,5 Мбит/с), USB full-speed 12 Мбит/с, CAN 2.0B до 1 Мбит/с |
| DMA | 7 каналов: таймеры, АЦП, SPI, I2C, USART |
| Потребление | Run: тип. 36 мА на 72 МГц (27 мА с выключенной периферией); Sleep: 14,4 мА; Stop: 14–24 мкА; Standby: 2–3,4 мкА |
| Корпус чипа | LQFP48 |
Для сравнения: Nano во сне потребляет миллиамперы, а у Blue Pill режим Stop уже на уровне микроампер — на батарейках это решает.
Что на плате помимо чипа
- Кварц 8 МГц на входе HSE: без него PLL не разгонит ядро до 72 МГц. Рядом стоит второй кварц 32,768 кГц на LSE для часов RTC. Отдельная деталь: для работы USB источником тактов обязан быть именно HSE-кварц — это прямо требование datasheet.
- Стабилизатор AMS1117-3.3 — на вход VIN (пин 5V) можно подавать до 12 В, сам чип питается строго 3,3 В.
- Кнопки RESET и BOOT0 (на части ревизий — джамперы). BOOT0 при включении решает, откуда стартовать: с флеша или с системного загрузчика.
- Светодиод на PC13 — и это главный занятый пин платы. По datasheet PC13–PC15 держат максимум ±3 мА и скорость не выше 2 МГц при нагрузке 30 пФ: реле или мощный светодиод туда вешать нельзя, только сигнальный индикатор.
- Micro-USB на PA11/PA12 с подтяжкой 1,5 кОм на D+, как требует спецификация USB из того же datasheet. На бракованных платах этот резистор стоит с неверным номиналом — тогда устройство в компьютере не определяется.
Чем отличается от привычных плат
| Blue Pill | Arduino Nano | ESP32 DevKit | |
|---|---|---|---|
| Ядро | Cortex-M3, 72 МГц, 32 бита | AVR, 8 бит, 16 МГц | 2 × LX6, 240 МГц |
| Флеш / ОЗУ | 64 КБ / 20 КБ | 32 КБ / 2 КБ | обычно 4 МБ / 520 КБ |
| Радиомодуль | нет | нет | Wi-Fi + Bluetooth |
| АЦП | 2 × 12 бит | 1 × 10 бит | 12 бит |
| USB | собственный USB device | только через USB-мост | только через мост |
| Токи сна | до единиц мкА | миллиамперы | миллиамперы |
Как прошивать
Заводской загрузчик в системной памяти по datasheet умеет перепрошивать флеш только через USART1 (PA9 — TX, PA10 — RX). Загрузки по USB «как в ESP32» из коробки нет. Рабочие пути такие:
- ST-Link V2 по SWD — основной и самый удобный. Подключаешь SWDIO (PA13), SWCLK (PA14), GND и 3.3V. В Arduino IDE ставишь ядро STM32 от STMicroelectronics, выбираешь плату Generic STM32F103C-серии, Upload method — STM32CubeProgrammer (SWD). Тот же программатор работает и в PlatformIO, и в STM32CubeProgrammer напрямую.
- Через UART-переходник — без программатора. Джампер BOOT0 на 1, нажать RESET, заливка из STM32CubeProgrammer по USART1. После прошивки вернуть BOOT0 на 0, иначе плата снова уйдёт в загрузчик.
- Загрузчик maple — один раз прошивается по SWD, после чего скетчи заливаются по USB-порту без программатора, но с ручным нажатием RESET.
Подключение периферии
Логика — 3,3 В. Почти все цифровые пины толерантны к 5 В (маркировка FT в datasheet), но аналоговые входы АЦП лишний вольт не переживут: их диапазон 0–VDD. Основные шины разведены так:
| Интерфейс | Пины | Что подключать |
|---|---|---|
| I2C1 | PB6 (SCL), PB7 (SDA) | датчики освещённости BH1750, MPU-6050, OLED на SSD1306 |
| SPI1 | PA4 (NSS), PA5 (SCK), PA6 (MISO), PA7 (MOSI) | RFID-модуль RC522, TFT-дисплеи ST7735, SD-карты |
| USART1 | PA9 (TX), PA10 (RX) | загрузчик, GSM-модули, MAX485 и RS-485 |
| АЦП | PA0–PA7, PB0, PB1 | аналоговые датчики, 12 бит вместо 10 у Nano |
По силе выхода пин держит ±8 мА гарантированно и ±20 мА с просадкой уровней, суммарный предел по питанию — 150 мА. Реле, моторы и длинные ленты — только через реле-модули или драйверы.
Пример: мигаем и шлём в UART
// Blue Pill: светодиод на PC13, Serial на USART1 (PA9 TX, PA10 RX).
// Ядро STM32duino (STMicroelectronics), плата Generic STM32F103C.
void setup() {
pinMode(PC13, OUTPUT);
Serial.begin(115200);
}
void loop() {
digitalWrite(PC13, LOW); // светодиод включается низким уровнем
Serial.println("LED on");
delay(500);
digitalWrite(PC13, HIGH);
Serial.println("LED off");
delay(500);
}
Частые ошибки
- Ждут заливку скетча по USB без подготовки. Заводской загрузчик работает только через USART1. Купи ST-Link — стоит копейки и решает все вопросы, включая восстановление «кирпича».
- Подают 5 В на пины как на Arduino. Рабочее напряжение чипа 2,0–3,6 В. Пять вольт допустимы только как цифровой сигнал на FT-пинах и на вход VIN через стабилизатор.
- Нагружают PC13. Лимит ±3 мА и 2 МГц. Реле с PC13 не переключить — бери любой другой GPIO.
- Кормят 5 В во входы АЦП. Толерантность к 5 В — про цифровые режимы. Аналоговый вход живёт в диапазоне 0–3,3 В.
- Не проверяют резистор USB. Подтяжка 1,5 кОм на PA12 обязательна; на части плат номинал другой, и ПК плату не видит. Лечится перепайкой.
- Прочитай чип перед использованием. Есть клоны (CS32, CH32F103) и подделки с реальной флешой меньше 64 КБ и капризным USB. Подключи ST-Link и проверь идентификатор и объём памяти в STM32CubeProgrammer.
Кому подходит
Blue Pill берут, когда нужен дешёвый 32-битный контроллер без беспроводной связи: управление моторами через TIM1 с dead-time, шина CAN в автомобильных самоделках, собственные USB-устройства вроде HID-гаджетов, экономные приборы на батарейках. Если нужен Wi-Fi или Bluetooth — это к ESP32; если максимально простая экосистема под обучение — к Arduino Uno и Nano; если много памяти и необычная периферия — к Raspberry Pi Pico.
Информация собрана из открытых источников и паспортов производителей и не является истиной в последней инстанции. Характеристики, распиновку и совместимость проверяйте по документации конкретной партии модуля перед покупкой и подключением.