The STM32F103C8T6 is one of the most widely designed-in Cortex-M3 microcontrollers: 64 KB Flash, 20 KB SRAM, 72 MHz, in a 7 x 7 mm LQFP48. When a build is short on parts, needs more memory, or is being cost-reduced, engineers usually look at two groups of alternatives: other members of ST's own STM32F103 line, and Cortex-M3 parts from Chinese MCU vendors that use similar part numbering. This guide compares both groups using only figures published by the manufacturers, and explains what you have to validate before swapping anything.
Baseline: what the STM32F103C8T6 actually is
According to ST's product page, the STM32F103C8 is a "Mainstream Performance line, Arm Cortex-M3 MCU with 64 Kbytes of Flash memory, 72 MHz CPU, motor control, USB and CAN." Key points from ST's feature list:
- Arm Cortex-M3 core, 72 MHz maximum, 1.25 DMIPS/MHz (Dhrystone 2.1)
- 64 or 128 KB Flash (C8 = 64 KB) and 20 KB SRAM
- 2.0 to 3.6 V application supply and I/Os
- 4 to 16 MHz crystal oscillator, internal RC oscillators, PLL
- USB full-speed device, CAN, two 12-bit ADCs, four timers including one advanced-control PWM timer
The "T6" suffix denotes the LQFP package and the -40 to 85 °C industrial range. ST documents the C8 and the 128 KB variants together in a single datasheet, DS5319 ("Medium-density performance line ... with 64 or 128 KB Flash"), which matters for the first alternative below.
Same-family ST options
STM32F103CBT6: double the Flash, same LQFP48
The STM32F103CB is described by ST as the same Mainstream Performance line Cortex-M3 at 72 MHz, but with 128 KB of Flash. SRAM stays at 20 KB and the package is the same LQFP48 7 x 7 mm. Because the C8 and CB share the DS5319 datasheet and the same LQFP48 pinout, the CBT6 is the lowest-risk upgrade when firmware has outgrown 64 KB: same footprint, same peripheral set, same reference manual. In firmware, change the linker script's Flash size and the device define (for example the medium-density target used by your HAL or toolchain) and re-test anything that depends on Flash page addresses, such as EEPROM emulation or a bootloader that writes near the top of Flash.
STM32F103RBT6: same silicon class, more pins
The STM32F103RBT6 is also a 128 KB Flash / 20 KB SRAM, 72 MHz member of the medium-density line, but in an LQFP64 (10 x 10 mm) package. ST's ordering data lists 51 I/Os for the RB versus 37 for the 48-pin parts. It is not a drop-in for a C8 board, since the footprint is different, but it is the natural choice on a new layout or a board revision that needs more GPIO or extra ADC channels while keeping the same firmware base.
Third-party Cortex-M3 alternatives
Several vendors sell Cortex-M3 MCUs with part numbers that mirror the STM32F103C8T6. They are separate designs from separate manufacturers, not licensed copies. The figures below come from each vendor's own website or datasheet. Similar numbering and an LQFP48 package do not guarantee pin, register or timing compatibility.
GigaDevice GD32F103C8T6
GigaDevice's MCU selector lists the GD32F103C8T6 as a Cortex-M3, LQFP48, 108 MHz maximum speed, 64 KB Flash, 20 KB SRAM, up to 37 GPIOs, rated -40 to 85 °C. The higher maximum clock is the obvious difference. If you run the part at 108 MHz, every clock-derived setting (PLL multipliers, Flash wait states, APB prescalers, UART baud generators, timer periods and the USB 48 MHz clock) must be recalculated and verified against GigaDevice's datasheet and user manual, not ST's.
Geehy APM32F103C8T6
Geehy's APM32F103x4x6x8 datasheet (V1.5) lists the APM32F103C8T6 with 64 KB Flash, 20 KB SRAM, LQFP48 package, 37 GPIOs, a Cortex-M3 core up to 96 MHz, a 2.0 to 3.6 V supply and a 4 to 16 MHz external crystal. The datasheet also points out some details that differ from ST's figures:
- APB1 is limited to 48 MHz and AHB/APB2 to 96 MHz.
- Geehy's Flash wait-state table used for its power measurements goes up to 3 wait states for 72 to 96 MHz.
- When USB device is used, the system clock must be 48, 72 or 96 MHz so the 48 MHz USB clock can be derived.
Geehy's LQFP48 pin table follows the familiar layout (for example VBAT on pin 1, NRST on 7, PA9/PA10 on 30/31, BOOT0 on 44). Even so, compare it line by line with ST's DS5319 for every pin your board uses.
WCH CH32F103C8T6
WCH's CH32F103 datasheet (V1.3) lists the CH32F103C8T6 as a Cortex-M3 up to 72 MHz with 64 KB CodeFlash, 20 KB SRAM, 37 GPIOs in LQFP48, rated -40 to 85 °C. It differs from the STM32F103C8T6 in ways that matter:
- Supply range of 2.7 to 5.5 V, with GPIO levels following the supply voltage. ST specifies 2.0 to 3.6 V. If you run a CH32F103 at 5 V, its I/O levels change with it.
- Two USB 2.0 full-speed controllers (a device controller and a host/device controller), a 2-channel 12-bit DAC and 16-channel TouchKey detection, none of which the STM32F103C8T6 has.
- USBD and CAN share a dedicated 512-byte SRAM buffer. When both run at once, the datasheet restricts USBD to the lower 384 bytes.
Comparison table
| Part | Maker | Flash | RAM | Max clock | Package | Notes |
|---|---|---|---|---|---|---|
| STM32F103C8T6 | STMicroelectronics | 64 KB | 20 KB | 72 MHz | LQFP48 | Baseline; 2.0–3.6 V; DS5319 |
| STM32F103CBT6 | STMicroelectronics | 128 KB | 20 KB | 72 MHz | LQFP48 | Same datasheet and LQFP48 pinout as C8; easiest upgrade |
| STM32F103RBT6 | STMicroelectronics | 128 KB | 20 KB | 72 MHz | LQFP64 | 51 I/Os; different footprint |
| GD32F103C8T6 | GigaDevice | 64 KB | 20 KB | 108 MHz | LQFP48 | Up to 37 GPIO; re-derive all clock settings |
| APM32F103C8T6 | Geehy | 64 KB | 20 KB | 96 MHz | LQFP48 | 2.0–3.6 V; APB1 max 48 MHz; USB needs 48/72/96 MHz SYSCLK |
| CH32F103C8T6 | WCH | 64 KB | 20 KB | 72 MHz | LQFP48 | 2.7–5.5 V supply; dual USB FS; DAC; TouchKey |
Qualifying a third-party part: a practical checklist
Treat GD32, APM32 and CH32 parts as new components that need qualification, not as alternate sources of the same part. Before you release one to production:
- Pinout: compare every used pin, including power, VDDA/VSSA, BOOT0, NRST and oscillator pins, against the vendor's own pin table.
- Clock tree and Flash timing: recompute PLL settings, wait states and bus prescalers from the vendor's datasheet. Settings copied from STM32 code can be out of specification on another die.
- Firmware and toolchain: use the vendor's device headers and libraries. Confirm your debugger or programmer and the Flash algorithm support the part, and check the device ID if your code reads it.
- Peripheral timing: re-verify UART baud accuracy, ADC sampling and conversion timing, I2C/SPI timing, USB enumeration and CAN bit timing on real hardware.
- Electrical: check supply range, I/O voltage tolerance, current consumption and reset/brown-out thresholds against your power design.
- Documentation: keep the exact vendor datasheet revision in your qualification file. These datasheets are revised often.
If you need to stay on ST silicon, the STM32F103CBT6 (same footprint) and STM32F103RBT6 (new layout) are the lowest-risk paths. If cost or availability pushes you to a second source, budget time for firmware porting and hardware validation instead of assuming a drop-in swap.
Sourcing
Need STM32F103C8T6 in volume? Send an RFQ with your quantity, target date and any date-code or packaging requirements, and we will reply with available options for the STM32F103C8T6 and its ST family alternatives.
Sources
- https://www.st.com/en/microcontrollers-microprocessors/stm32f103c8.html
- https://www.st.com/en/microcontrollers-microprocessors/stm32f103cb.html
- https://www.st.com/en/microcontrollers-microprocessors/stm32f103rb.html
- https://www.gigadevice.com/product/mcu/arm-cortex-m3/gd32f103c8t6
- https://global.geehy.com/uploads/tool/APM32F103x4x6x8%20datasheet%20V1.5.pdf
- https://www.wch-ic.com/downloads/CH32F103DS0_PDF.html
- https://www.wch-ic.com/download/file?id=337
Parts in This Article
- STM32F103C8T6 datasheet, pinout & specs – STMicroelectronics
- STM32F103RBT6 datasheet, pinout & specs – STMicroelectronics