MCU32F1: Difference between revisions

From BlaatSchaap Wiki
Jump to navigationJump to search
Adding System Memory
Adding notes about not-dropin-compatible xx32F103 parts
Line 1: Line 1:
This page discusses [[STM32F1]] compatible microcontrollers, sometimes referred to as clones.
This page discusses [[STM32F1]] compatible microcontrollers, sometimes referred to as clones.
While most of the xxx32F103 MCUs are drop-in replacements, there are exceptions to this rule.


Data needs to be copies from the old wiki ( https://pmwiki.blaatschaap.be/pmwiki.php/Microcontrollers/MCU32F1 ) and updated.
Data needs to be copies from the old wiki ( https://pmwiki.blaatschaap.be/pmwiki.php/Microcontrollers/MCU32F1 ) and updated.
Line 6: Line 8:


* APM32F103
* APM32F103
* BLM32F103 (not drop-in compatible)
* CH32F103
* CH32F103
* CKS32F103
* CKS32F103
Line 12: Line 15:
* GD32F103
* GD32F103
* HK32F103
* HK32F103
* MG32F103
* MG32F103 (not drop-in compatible)
* MH32F103
* MH32F103
* MM32F103
* MM32F103 (not drop-in compatible)
* MS32F103
* MS32F103
* RX32F103
* RX32F103 (not drop-in compatible)


==== Memory Map ====
==== Memory Map ====

Revision as of 10:32, 18 April 2026

This page discusses STM32F1 compatible microcontrollers, sometimes referred to as clones.

While most of the xxx32F103 MCUs are drop-in replacements, there are exceptions to this rule.

Data needs to be copies from the old wiki ( https://pmwiki.blaatschaap.be/pmwiki.php/Microcontrollers/MCU32F1 ) and updated.

  • STM32F103
  • APM32F103
  • BLM32F103 (not drop-in compatible)
  • CH32F103
  • CKS32F103
  • CS32F103
  • FCM32F103
  • GD32F103
  • HK32F103
  • MG32F103 (not drop-in compatible)
  • MH32F103
  • MM32F103 (not drop-in compatible)
  • MS32F103
  • RX32F103 (not drop-in compatible)

Memory Map

System Memory

The system memory is located at 0x1FFFF000 to 0x1FFFF7FF.

It contains the boot rom, this is the internal bootloader which can be entered using the BOOT pins.

At location 0x1FFFF7E0 the flash size is stored.

At location 0x1FFFF7E8 the serial number is stored.

This memory is programmed during production and cannot be altered by the user.


The content of this memory area is one way to identify the MCU we are running on, as it contains the internal bootloader, a different manufacturer puts their own code in there, however, some of them have copied ST's bootloader.

Furthermore, there may be some more identifying bytes in there. It seems for MegaHunt's MCUs the Serial Number contains some identifying information. Also on the APM32, there is a value at location 0x1FFFF7D0. While Geehy has their own bootloader, older ApexMic versions has ST's.

Option Bytes

The option bytes are located at 0x1FFFF800