Home > Blog > Blog

STM32F103C8T6 Pinout, Pin Functions & Common Mistakes

2026/9/3 19:39:36

The STM32F103C8T6 is the 64KB-flash member of ST's F103 medium-density family — Cortex-M3 at 72MHz, 20KB SRAM, in a 48-pin LQFP. It's the chip on every "Blue Pill" board and half the custom ARM prototypes of the last decade.

Per the ST DS5319 datasheet, the part runs from 2.0-3.6V and nearly all PA/PB GPIO tolerate 5V logic — the two facts behind most wiring questions.

But the pins that kill custom boards aren't the GPIO. From what we see in Shenzhen lots (2025–2026) and on the forums, it's the pins designers skip: VDDA, BOOT0, NRST, and the oscillator pins. This guide covers the full pinout and those failure points.

STM32F103C8T6 Pinout (LQFP48)

Numbering convention: pin 1 sits at the top-left of the package (dot side), counting counter-clockwise: left side 1-12 top to bottom, bottom side 13-24 left to right, right side 25-36 bottom to top, top side 37-48 right to left.

PinNameTypeFunction & Notes
1VBATPowerBackup/RTC supply — tie to VDD (3.3V) when unused
2PC13I/OTAMPER-RTC pin — 3.3V only, not 5V-tolerant; the Blue Pill's on-board LED
3PC14I/OOSC32_IN / RTC 32.768kHz crystal input
4PC15I/OOSC32_OUT / RTC crystal output
5PD0I/OOSC_IN — main 8MHz crystal input (or GPIO, FT)
6PD1I/OOSC_OUT — main crystal output (or GPIO, FT)
7NRSTInputReset, active low — internal pull-up; add 100nF to GND
8VSSAPowerAnalog ground — tie to VSS
9VDDAPowerAnalog supply 2.0-3.6V — must be bridged to VDD (0Ω)
10PA0I/OWKUP / ADC12_IN0 — 5V-tolerant; the wake-up pin
11PA1I/OADC12_IN1 — 5V-tolerant
12PA2I/OUSART2_TX / ADC12_IN2 — 5V-tolerant
13PA3I/OUSART2_RX / ADC12_IN3 — 5V-tolerant
14PA4I/OSPI1_NSS / ADC12_IN4 — 5V-tolerant
15PA5I/OSPI1_SCK / ADC12_IN5 — 5V-tolerant
16PA6I/OSPI1_MISO / ADC12_IN6 / TIM3_CH1 — 5V-tolerant
17PA7I/OSPI1_MOSI / ADC12_IN7 / TIM3_CH2 — 5V-tolerant
18PB0I/OADC12_IN8 / TIM3_CH3 — 5V-tolerant
19PB1I/OADC12_IN9 / TIM3_CH4 — 5V-tolerant
20PB2I/OBOOT1 — boot-mode select at reset; GPIO after boot (FT)
21PB10I/OI2C2_SCL / USART3_TX — 5V-tolerant
22PB11I/OI2C2_SDA / USART3_RX — 5V-tolerant
23VSS_1PowerGround
24VDD_1Power2.0-3.6V supply
25PB12I/OSPI2_NSS / I2C2_SMBA — 5V-tolerant
26PB13I/OSPI2_SCK — 5V-tolerant
27PB14I/OSPI2_MISO — 5V-tolerant
28PB15I/OSPI2_MOSI — 5V-tolerant
29PA8I/OMCO / TIM1_CH1 — 5V-tolerant; MCO can output the clock
30PA9I/OUSART1_TX — 5V-tolerant; the bootloader UART
31PA10I/OUSART1_RX — 5V-tolerant
32PA11I/OUSB_DM / USART1_CTS — 5V-tolerant (USB spec limits apply)
33PA12I/OUSB_DP / USART1_RTS — 5V-tolerant
34PA13I/OSWDIO — SWD data, 5V-tolerant
35VSS_2PowerGround
36VDD_2Power2.0-3.6V supply
37PA14I/OSWCLK — SWD clock, 5V-tolerant
38PA15I/OJTDI / TIM2_CH1 — 5V-tolerant
39PB3I/OJTDO / TIM2_CH2 — 5V-tolerant
40PB4I/ONJTRST / TIM3_CH1 — 5V-tolerant
41PB5I/OI2C1_SMBA / TIM3_CH2 — 5V-tolerant
42PB6I/OI2C1_SCL / TIM4_CH1 / USART1_TX alt — 5V-tolerant
43PB7I/OI2C1_SDA / TIM4_CH2 / USART1_RX alt — 5V-tolerant
44BOOT0InputBoot-mode select — 3.3V only, not 5V-tolerant; needs a defined level
45PB8I/OCAN_RX / I2C1_SCL alt — 5V-tolerant
46PB9I/OCAN_TX / I2C1_SDA alt — 5V-tolerant
47VSS_3PowerGround
48VDD_3Power2.0-3.6V supply

Per the ST DS5319 datasheet: the three VDD/VSS pairs are all internally connected, but each needs its own decoupling capacitor placed at the pin.

FT marking in the datasheet means 5V-tolerant input — on this part that covers nearly all PA/PB GPIO, but not PC13-15, BOOT0, or the power pins.

LQFP48 7mm x 7mm 1 12 13 24 25 36 37 48 pins 1-12 top to bottom pins 13-24 left to right pins 25-36 bottom to top pins 37-48 right to left

LQFP48 numbering: the dot marks pin 1 at the top-left; count counter-clockwise with 12 pins per side. PA0 lands at pin 10 on the left side, BOOT0 at pin 44 on the top side — easy to find once the quadrant is clear.

Key Specifications

ParameterValue
CoreARM Cortex-M3, 72MHz max (per DS5319)
Flash / SRAM64KB / 20KB
PackageLQFP48, 7×7mm, 0.5mm pitch
Supply Range2.0-3.6V (typical 3.3V)
GPIO37 I/Os, most 5V-tolerant (FT)
ADC2 × 12-bit, 10 external channels each
TimersTIM1 (16-bit advanced), TIM2/3/4 (16-bit general)
USARTUSART1/2/3
SPI / I2CSPI1/2, I2C1/2
USBUSB 2.0 Full-Speed device (PA11/PA12)
CANCAN1 (PB8/PB9)
DebugSWD (PA13/PA14) + JTAG
ClocksHSE 4-16MHz (8MHz typical), HSI 8MHz internal, LSE 32.768kHz RTC
Temperature Grade-40 to +85°C (T suffix)

Key numbers that matter: the 72MHz core needs the HSE crystal + PLL — without an 8MHz crystal the chip runs on the 8MHz HSI oscillator, which works for blink tests and fails hard for USB timing and 72MHz performance.

The 20KB SRAM is the real constraint on this part, not flash — 64KB of code space fits more than most designs need, and 20KB of RAM fills fast with buffers and USB stacks.

Pin Functions That Actually Matter

Why do the small pin groups get most of this guide? Because they're where custom boards fail.

BOOT0 (pin 44) and PB2/BOOT1 (pin 20) — the boot-mode pair. Sampled at reset, they select the boot source: BOOT0=0 runs flash; BOOT0=1 with BOOT1=0 runs system memory (the factory UART bootloader); BOOT0=1 with BOOT1=1 runs SRAM.

On custom boards, BOOT0 needs a defined level — a 10k pull-down to GND with a jumper to 3.3V is the standard circuit.

VDDA (pin 9) — the pin that blocks programming. VDDA supplies the analog section and the GPIOA/SWD path on this family.

Per the ST community threads, a custom board with VDDA unconnected gives "no response from target" no matter what the debugger does. Bridge VDDA to VDD with 0Ω; add a ferrite bead plus 1µF and 100nF when ADC accuracy matters.

PA13 (pin 34) and PA14 (pin 37) — SWD. The two-wire debug interface needs no clock configuration to connect — but it dies if VDDA is missing or NRST floats.

Keep NRST pulled up (it has an internal pull-up; don't fight it) with a 100nF cap to ground.

PA9 (pin 30) and PA10 (pin 31) — USART1, the bootloader UART. The factory ROM bootloader speaks USART1 only. Adapter TX goes to PA10, adapter RX comes from PA9 — crossed the other way is the classic no-response cause.

Boot protocol per AN2606: 38400 baud, even parity, 8 data bits, echo disabled.

PA11 (pin 32) and PA12 (pin 33) — USB. The F103 has an internal 1.5kΩ D+ pull-up controlled by firmware (SOF-type connection). If firmware never enables it, the device won't enumerate — a software issue, not a missing resistor.

PD0 (pin 5) and PD1 (pin 6) — the 8MHz crystal. HSE runs through these pins with two ~20pF load caps to ground. A bad crystal or missing load caps is the classic "uploads fine, runs wrong" failure.

PC13 (pin 2) — the 3.3V-only trap. It drives the Blue Pill's LED, and it is not 5V-tolerant. Neither are PC14/15. Driving any of them from 5V logic is the fastest way to damage a board that "should be fine."

Typical Application Circuit (Blue-Pill Reference)

VDD 3.3V GND VDDA (9): 0Ω bridge to VDD + 1µF / 100nF STM32F103C8T6 LQFP48 · 100nF on each VDD pin 8MHz XTAL 2 x 20pF to GND PD0/PD1 BOOT0 jumper 10k pull-down BOOT0 SWD UART1 USB SWD PA13/14 · UART1 PA9/10 (38400-E-8) USB: internal 1.5k pull-up (firmware)

Minimal system: 3.3V with a 100nF cap at every VDD/VSS pair, VDDA bridged to VDD through 0Ω, an 8MHz crystal on PD0/PD1, BOOT0 held low by a 10k pull-down, and the SWD pair free for the debugger.

The UART1 header (PA9/PA10) doubles as the factory-bootloader port when BOOT0 is pulled high and the chip is reset. USB needs no external pull-up resistor — firmware controls the internal 1.5k on D+.

What the 48 pins are — where the LQFP48 budget goes:

GPIO and alternate functions (PA/PB/PC/PD)32 pins
Power and analog (VDDx3 VSSx3 VDDA VSSA VBAT)9 pins
Clock, boot, and reset (PD0/1 PC14/15 BOOT0 PB2 NRST)7 pins

Two-thirds of the package is GPIO; the pins that brick custom boards — VDDA, BOOT0, NRST, the crystal pair — all sit in the small groups.

Common Mistakes When Using STM32F103C8T6

Here's the thing: every one of these failures shows up in forum threads weekly, and each traces back to one small pin group.

1. VDDA left unconnected — "No response from target". The #1 custom-board error. VDDA supplies GPIOA and the SWD unit; without it the debugger can't see the chip (mikrocontroller.net and SE threads document the exact symptom).

2. BOOT0 floating or wrong. On a custom board, a floating BOOT0 makes startup random. For flash run, BOOT0 must be low (10k to GND); for the UART bootloader, BOOT0 high then reset.

3. UART bootloader wiring crossed. The ROM bootloader is on USART1 (PA9 TX / PA10 RX). TX-to-TX wiring gives silence; so does using USART2/3, which the bootloader doesn't listen on. Boot protocol: 38400 baud, even parity, echo off (per AN2606).

4. 5V into a 3.3V-only pin. 2.0-3.6V on the supply; FT GPIO tolerate 5V logic — but PC13/14/15, BOOT0, and every power pin don't. A 5V signal into BOOT0 is the silent killer on custom boards.

5. NRST floating. Intermittent debugger connection and missed breakpoints trace back to a floating reset pin. It has an internal pull-up; add the 100nF cap to GND and route it to a header.

6. Bad or missing 8MHz crystal. Uploads succeed, then the code runs at wrong speed or not at all. Check the crystal, its load caps, and the soldering before suspecting the firmware.

7. Counterfeit F103s on cheap boards. Marking without an ST logo, wrong die reading, and ST Flash Loader failures are the pattern. For production, buy from an authorized line and verify the part marking (from what we see in Shenzhen, 2025–2026).

Frequently Asked Questions About STM32F103C8T6 Pinout

Q1: Can I power it with 5V?

A: No — the chip runs from 2.0-3.6V, typically 3.3V. The Blue Pill takes 5V at its USB/5V pins only because an onboard regulator drops it. What tolerates 5V is most of the GPIO (FT-marked), not the supply. A 5V rail into VDD is damage; a 5V logic signal into an FT pin is fine.

Q2: Which pins are 5V-tolerant?

A: Nearly all PA/PB GPIO carry the FT (5V-tolerant) mark in DS5319. The exceptions that bite: PC13/14/15 are 3.3V-only, BOOT0 is 3.3V-only, and the power/analog pins are supply. PA11/PA12 are FT-marked but still subject to USB electrical limits when used as USB.

Q3: How do I flash it over UART?

A: BOOT0 to 3.3V, reset, then talk to USART1 at 38400 baud, even parity, 8 data bits, echo off. Adapter TX → PA10, adapter RX ← PA9. After flashing, BOOT0 back to GND and reset to run from flash. The ROM bootloader only listens on USART1 — USART2/3 are ignored.

Q4: What do BOOT0 and BOOT1 actually select?

A: They pick the boot source, sampled once at reset. BOOT0=0 boots flash (normal run). BOOT0=1 with BOOT1=0 boots system memory (the factory UART bootloader). BOOT0=1 with BOOT1=1 boots SRAM (for RAM debugging). PB2 doubles as BOOT1 but works as normal GPIO after boot.

Q5: Does it need the 8MHz crystal?

A: For blinking, no — the internal 8MHz HSI runs it. For 72MHz and USB, yes. The PLL needs HSE to reach 72MHz with calibrated accuracy, and USB timing depends on a precise 48MHz clock. RTC needs the separate 32.768kHz LSE crystal on PC14/PC15. Projects that "work on the bench" and fail in the field are usually missing one of these.

Q6: Why does my custom board give "no response from target"?

A: Check VDDA first, then NRST, then the SWD pins. VDDA unconnected starves GPIOA and the SWD unit — the documented #1 cause (SE and mikrocontroller.net threads). NRST floating causes intermittent drops. Then confirm PA13/PA14 aren't reassigned by leftover firmware.

Q7: How do I spot a counterfeit STM32F103C8T6?

A: Check marking, die reading, and bootloader behavior. Genuine parts carry clean ST marking and read a real ID. Clones often fail ST's Flash Loader with a "chip protection" style error, show wrong or erasable ID, and behave differently at the bootloader UART. From what we see in Shenzhen (2025–2026), remarked F103s concentrate in "too cheap" lots — verify the lot before volume.

Subscribe to IC-MAX!
Contact Name
*Email
Featured PartsMore
LNK304DN-TL
LNK304DN-TL Power Integrations
LNK304GN-TL
LNK304GN-TL Power Integrations
LNK304DG-TL
LNK304DG-TL Power Integrations
TNY277PN
TNY277PN Power Integrations
TNY276PN
TNY276PN Power Integrations
TNY278PN
TNY278PN Power Integrations
TNY278GN-TL
TNY278GN-TL Power Integrations
TNY280GN-TL
TNY280GN-TL Power Integrations
TOP266KG-TL
TOP266KG-TL Power Integrations
TOP258PN
TOP258PN Power Integrations
TOP253PN
TOP253PN Power Integrations
TOP253PNAU
TOP253PNAU Power Integrations
index: 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
ICMASS.COM

HOME

ICMASS.COM

PRODUCT

ICMASS.COM

PHONE

ICMASS.COM

USER