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
ST_GND --> STM_GND
ST_3V3 --> STM_3V3
ST_SWCLK --> STM_SWCLK
ST_SWDIO --> 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 STM
32["STM32F103C8T6"]
STM_GND["GND"]
STM_5V["5V"]
STM_A9["A9 (TX1)"]
STM_A10["A10 (RX1)"]
end
TTY_GND --> STM_GND
TTY_5V --> STM_5V
TTY_TX --> STM_A10
TTY_RX --> 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, програма не починає відпрацьовувати автоматично?