Deutsch
Zeit: 2026/08/28
Durchsuchen: 502

Abbildung 1. STM32F103C6T6
Der STM32F103C6T6 verwendet ein 48-poliges LQFP-Gehäuse und bietet 37 GPIO-Pins. Viele GPIO-Pins unterstützen alternative Funktionen, darunter ADC-Eingänge, PWM-Ausgänge, USART, SPI, I²C, CAN, USB, Taktsignale und Debugging. Diese Funktionen werden ausgewählt, indem das relevante Peripheriegerät, der GPIO-Modus und die AFIO-Register konfiguriert werden, wenn eine Neuordnungsanforderung besteht. Funktionen, die demselben physischen Pin zugewiesen sind, können nicht gleichzeitig verwendet werden.

Abbildung 2. LQFP48-Pinbelegung für STM32F103x4/x6 Geräte mit niedriger Dichte
| Pin |
Pinname |
Haupt- und alternative Funktionen |
| 1 |
VBAT |
Backup-Stromversorgungseingang für die RTC, 32,768 kHz Oszillator und Backup-Register, wenn VDD nicht verfügbar ist. |
| 2 |
PC13-TAMPER-RTC |
GPIO PC13; RTC-Tamper-Eingang oder RTC-Uhrenausgang. |
| 3 |
PC14-OSC32_IN |
GPIO PC14; Eingang für den 32,768 kHz LSE-Kristall oder externen Takt. |
| 4 |
PC15-OSC32_OUT |
GPIO PC15; Ausgang für den 32,768 kHz LSE-Kristall. |
| 5 |
PD0-OSC_IN |
HSE-Kristall oder externer Hochgeschwindigkeits-Takteingang nach dem Reset; kann als GPIO PD0 neu zugeordnet werden. |
| 6 |
PD1-OSC_OUT |
HSE-Kristallausgang nach dem Reset; kann als GPIO PD1 neu zugeordnet werden. |
| 7 |
NRST |
Aktiver Niedrig-Reset-Eingang und Reset-Ausgang. |
| 8 |
VSSA |
Analoger Masseanschluss für den ADC und interne analoge Schaltungen. |
| 9 |
VDDA |
Analoge Versorgung für den ADC, Reset-Schaltungen, interne RC-Oszillatoren und PLL. |
| 10 |
PA0-WKUP |
GPIO; Standby-Weck-Eingang; USART2_CTS; ADC1/ADC2 Kanal 0; TIM2_CH1 oder externer Trigger. |
| 11 |
PA1 |
GPIO; USART2_RTS; ADC1/ADC2 Kanal 1; TIM2_CH2. |
| 12 |
PA2 |
GPIO; USART2_TX; ADC1/ADC2 Kanal 2; TIM2_CH3. |
| 13 |
PA3 |
GPIO; USART2_RX; ADC1/ADC2 Kanal 3; TIM2_CH4. |
| 14 |
PA4 |
GPIO; SPI1_NSS; USART2_CK; ADC1/ADC2 Kanal 4. |
| 15 |
PA5 |
GPIO; SPI1_SCK; ADC1/ADC2 Kanal 5. |
| 16 |
PA6 |
GPIO; SPI1_MISO; ADC1/ADC2 Kanal 6; TIM3_CH1; remappiertes TIM1_BKIN. |
| 17 |
PA7 |
GPIO; SPI1_MOSI; ADC1/ADC2 Kanal 7; TIM3_CH2; remappiertes TIM1_CH1N. |
| 18 |
PB0 |
GPIO; ADC1/ADC2 Kanal 8; TIM3_CH3; remappiertes TIM1_CH2N. |
| 19 |
PB1 |
GPIO; ADC1/ADC2 Kanal 9; TIM3_CH4; remappiertes TIM1_CH3N. |
| 20 |
PB2-BOOT1 |
GPIO PB2; BOOT1-Eingang, der mit BOOT0 verwendet wird, um den Boot-Speicher auszuwählen. |
| 21 |
PB10 |
GPIO; remappiertes TIM2_CH3. |
| 22 |
PB11 |
GPIO; remappiertes TIM2_CH4. |
| 23 |
VSS_1 |
Digitale Masse. |
| 24 |
VDD_1 |
Digitale Versorgung für die I/O-Schaltungen und den internen Spannungsregler. |
| 25 |
PB12 |
GPIO; TIM1 Break-Eingang, TIM1_BKIN. |
| 26 |
PB13 |
GPIO; TIM1 komplementärer Kanal 1 Ausgang, TIM1_CH1N. |
| 27 |
PB14 |
GPIO; TIM1 komplementärer Kanal 2 Ausgang, TIM1_CH2N. |
| 28 |
PB15 |
GPIO; TIM1 komplementärer Kanal 3 Ausgang, TIM1_CH3N. |
| 29 |
PA8 |
GPIO; USART1_CK; TIM1_CH1; Mikrocontroller-Takt-Ausgabe, MCO. |
| 30 |
PA9 |
GPIO; USART1_TX; TIM1_CH2. |
| 31 |
PA10 |
GPIO; USART1_RX; TIM1_CH3. |
| 32 |
PA11 |
GPIO; USART1_CTS; CAN_RX; TIM1_CH4; USB_DM. |
| 33 |
PA12 |
GPIO; USART1_RTS; CAN_TX; TIM1 externer Trigger; USB_DP. |
| 34 |
PA13 |
JTMS/SWDIO Debug-Signal nach dem Reset; als GPIO verwendbar, wenn die Debug-Konfiguration dies erlaubt. |
| 35 |
VSS_2 |
Digitale Masse. |
| 36 |
VDD_2 |
Digitale Versorgung. |
| 37 |
PA14 |
JTCK/SWCLK Debug-Takt nach dem Reset; als GPIO verwendbar, wenn die Debug-Konfiguration dies erlaubt. |
| 38 |
PA15 |
JTDI nach dem Reset; GPIO, wenn JTAG deaktiviert ist; remappiertes TIM2_CH1/ETR oder SPI1_NSS. |
| 39 |
PB3 |
JTDO/TRACESWO nach dem Reset; GPIO; remappiertes TIM2_CH2 oder SPI1_SCK. |
| 40 |
PB4 |
NJTRST nach dem Reset; GPIO; remappiertes TIM3_CH1 oder SPI1_MISO. |
| 41 |
PB5 |
GPIO; I²C1_SMBA; remappiertes TIM3_CH2 oder SPI1_MOSI. |
| 42 |
PB6 |
GPIO; I²C1_SCL; remappiertes USART1_TX. |
| 43 |
PB7 |
GPIO; I²C1_SDA; remappiertes USART1_RX. |
| 44 |
BOOT0 |
Boot-Modus-Auswahl-Eingang. Wird zusammen mit PB2/BOOT1 verwendet, um den Benutzer-Flash, den Systemspeicher oder SRAM beim Start auszuwählen. |
| 45 |
PB8 |
GPIO; remappiertes I²C1_SCL oder CAN_RX. |
| 46 |
PB9 |
GPIO; remappiertes I²C1_SDA oder CAN_TX. |
| 47 |
VSS_3 |
Digitale Masse. |
| 48 |
VDD_3 |
Digitale Versorgung. |
Der STM32F103C6T6 gehört zur STM32F103x4/x6 Familie der Leistungsserie mit niedriger Dichte und verwendet einen 32-Bit Arm Cortex-M3 Kern, der mit bis zu 72 MHz betrieben wird. Abbildung 3 ist das offizielle Blockdiagramm auf Familienebene; daher repräsentieren einige I/O- und ADC-Zahlen, die im Diagramm gezeigt werden, die maximal verfügbaren in größeren Gehäusevarianten und nicht die genauen Ressourcen des C6 LQFP48 Geräts.

Abbildung 3. Offizielles STM32F103x4/x6 Blockdiagramm auf Familienebene
Die interne Busarchitektur verbindet den Prozessor, Speicher, DMA-Controller und PeripherIe-Busse. Der AHB-Bereich verbindet den Cortex-M3-Kern, den Flash-Speicher, SRAM und den siebenkanaligen DMA-Controller und kann mit bis zu 72 MHz betrieben werden. Peripheriefunktionen sind zwischen den beiden APB-Bereichen aufgeteilt. APB1 ist auf 36 MHz begrenzt, während APB2 mit bis zu 72 MHz arbeiten kann. Der DMA-Controller kann Daten zwischen unterstützten Peripheriegeräten und SRAM übertragen, ohne dass die CPU jedes Datenobjekt bewegen muss, was die Arbeitsbelastung des Prozessors während wiederholter Datenübertragungen reduziert.

Abbildung 4. Vereinfachter Arbeitsablauf des STM32F103C6T6, der Start-up, Datenverarbeitung, Interrupts, DMA, Ausgangskontrolle und Energiesparmodi zeigt
Der STM32F103C6T6 startet nach dem Einschalten oder Reset, wählt die Boot-Quelle aus und verwendet zunächst den 8 MHz HSI-Takt. Die Firmware konfiguriert dann den Systemtakt, GPIOs und die erforderlichen Peripheriegeräte.
Während des Betriebs verarbeitet der Cortex-M3 Eingangsdaten und steuert Ausgaben. DMA kann Daten zwischen unterstützten Peripheriegeräten und SRAM mit weniger CPU-Beteiligung übertragen, während der NVIC Interrupts bearbeitet und priorisiert.
Im Leerlauf kann das Gerät in den Schlaf-, Stopp- oder Standby-Modus wechseln. Nach dem Aufwachen aus dem Stopp-Modus muss die Firmware möglicherweise den PLL und den ausgewählten Systemtakt wiederherstellen. Das Aufwachen aus dem Standby führt zu einem Reset-ähnlichen Neustart.
| Spezifikation |
STM32F103C6T6 |
| Hersteller |
STMicroelectronics |
| CPU-Kern |
32-Bit Arm Cortex-M3 |
| Maximaler CPU-Takt |
72 MHz |
| Flash-Speicher |
32 KB |
| SRAM |
10 KB |
| Hauptversorgungsspannung |
VDD = 2,0–3,6 V |
| Analoge Versorgung mit ADC-Betrieb |
VDDA = 2,4–3,6 V |
| Backup-Versorgung |
VBAT = 1,8–3,6 V |
| GPIO-Pins |
37 |
| ADC |
Zwei 12-Bit ADCs, die 10 externe Kanäle teilen; maximal 1 MS/s pro ADC mit einem 14 MHz ADC-Takt und der minimalen Abtastzeit von 1,5 Zyklen |
| Temperatursensor |
Integriert und intern mit einem ADC-Kanal verbunden |
| DMA |
Sieben-Kanal DMA-Controller |
| Timer |
TIM1 Advanced-Control-Timer und TIM2/TIM3 General-Purpose-Timer; alle sind 16-Bit |
| Andere Timer |
24-Bit SysTick-Timer, unabhängiger Watchdog und Fenster-Watchdog |
| SPI |
Eine SPI-Schnittstelle, bis zu 18 Mbit/s |
| I²C |
Eine I²C-Schnittstelle, die den Standardmodus und den Fast-Modus mit bis zu 400 kHz unterstützt, mit SMBus/PMBus-Unterstützung |
| USART |
USART1 bis zu 4,5 Mbit/s; USART2 bis zu 2,25 Mbit/s; synchroner Modus, LIN, IrDA und Smartcard-Unterstützung |
| CAN |
CAN 2.0B Aktiver Controller, bis zu 1 Mbit/s |
| USB |
USB 2.0 Vollgeschwindigkeit Gerät bei 12 Mbit/s; benötigt einen 48 MHz USB-Takt. USB-konforme elektrische Betreibung erfordert VDD = 3,0–3,6 V und einen externen 1,5 kΩ D+ Pull-up. |
| Taktenquellen |
8 MHz HSI, 4–16 MHz HSE Kristall, ungefähr 40 kHz LSI und 32,768 kHz LSE |
| RTC |
Integrierte RTC mit Backup-Registern und VBAT-Betrieb |
| Debug-Schnittstellen |
Serial Wire Debug und JTAG |
| Energiesparmodus |
Schlaf, Stopp und Standby |
| Zusätzliche Hardware |
CRC-Berechnungseinheit und 96-Bit eindeutige Geräte-ID |
| Gehäuse |
LQFP-48, 7 × 7 mm Gehäuse, 0,5 mm Pin-Abstand |
| Betriebstemperatur |
−40 bis +85 °C für Temperatursuffix 6 |
Hinweis: ST listet die STM32F103C6-Familie derzeit als aktiv und identifiziert STM32F103C6T6A und STM32F103C6T6ATR als aktuelle LQFP-48-Bestellcodes. Für ältere STM32F103C6-Geräte mit einem leeren internen Code nach Temperatursuffix 6 oder 7, einschließlich STM32F103C6T6, verweist DS5936 Rev. 7, Abbildung 3, Hinweis 1 die Leser auf DS5319 für elektrische Eigenschaften. Gerätespeicher, Peripheriezähler und Pinbelegung bleiben durch DS5936 definiert.
Der STM32F103C6T6 wird normalerweise über seine Serial Wire Debug (SWD)-Schnittstelle mithilfe einer ST-LINK-Sonde programmiert und debugged. Das Standalone STM32CubeMX wird verwendet, um Pins, Takte und Peripheriegeräte zu konfigurieren und das Projekt zu generieren, während STM32CubeIDE das Bearbeiten von Code, Erstellen, Flash-Programmierung und Debugging bereitstellt.
Die Menüpfade in diesem Abschnitt beziehen sich auf STM32CubeIDE 2.2.0, die am 30. Juni 2026 veröffentlicht wurde, basierend auf Eclipse/CDT. Sie gelten nicht für das separate STM32CubeIDE-Produkt für VS Code.
| ST-LINK-Signal |
Verbindung STM32F103C6T6 |
LQFP-48-Pin |
| SWDIO |
PA13/JTMS/SWDIO |
34 |
| SWCLK |
PA14/JTCK/SWCLK |
37 |
| NRST |
NRST — empfohlen |
7 |
| GND |
VSS/GND |
Jeder Boden |
| VAPP/VTref |
Ziel 3.3 V-Leitung |
Spannungsreferenz |
Verwenden Sie eine geregelte 3.3 V Zielversorgung. Bei einem echten ST-LINK/V2 misst VAPP/VTref die Zielspannung, anstatt Strom für den MCU bereitzustellen. Halten Sie BOOT0 niedrig für den normalen Start von benutzerdefiniertem Flash-Speicher; das Anheben von BOOT0 ist für die ST-LINK-Programmierung nicht erforderlich.
• Öffnen Sie das Standalone STM32CubeMX und wählen Sie das genaue STM32F103C6Tx-Gerät aus. Konfigurieren Sie den Takt, GPIOs, Peripheriegeräte und Serial Wire Debugging unter System Core → SYS.
• Öffnen Sie den Projektmanager, wählen Sie STM32CubeIDE unter Toolchain/IDE und generieren Sie den Code. STM32CubeMX dokumentiert die Toolchain/IDE-Auswahl als Teil der Konfiguration zur Projekterstellung.
• Wählen Sie in der Eclipse-basierten STM32CubeIDE Datei → Importieren → STM32-Projekt importieren → STM32CubeMX/STM32CubeIDE-Projekt importieren. Wählen Sie das generierte Projekt aus und schließen Sie den Import ab.
• Fügen Sie den Anwendungscode in die vorgesehenen USER CODE-Bereiche ein, bauen Sie das Projekt, verbinden Sie die ST-LINK-Sonde über SWD und starten Sie den Debugger. Verwenden Sie Haltepunkte, Schrittweise Ausführung, Registeransichten und Variablenüberwachung zur Überprüfung der Funktion.
Für reproduzierbare Entwicklung und Tests dokumentieren Sie die verwendete STM32CubeIDE-Version, STM32CubeMX-Version, STM32CubeF1-Firmware-Paketversion, Compiler- und Toolchain-Version, ST-LINK-Firmware-Version und Projektversion für jeden Build.
Dies ist ein vorgeschlagenes Validierungsverfahren, keine vom Autor durchgeführten experimentellen Daten. Berichten Sie über die Testhardware, Betriebsbedingungen, Rohmesswerte, Instrumente und Messunsicherheit.
• Verbinden Sie die VDD-Pins 24, 36 und 48 mit 3,3 V und die VSS-Pins 23, 35 und 47 mit Ground. Platzieren Sie einen 100 nF Kondensator an jedem VDD/VSS-Paar und mindestens 4,7 µF, um die 3,3 V Schiene zu puffern.
• Verbinden Sie den VDDA-Pin 9 mit 3,3 V und den VSSA-Pin 8 mit Ground. Entkoppeln Sie VDDA mit 100 nF + 1 µF.
• Falls VBAT nicht verwendet wird, verbinden Sie den Pin 1 mit VDD und entkoppeln Sie ihn mit 100 nF.
• Halten Sie den BOOT0-Pin 44 mit einem 10 kΩ Pulldown für einen normalen Flash-Start auf niedrig.
• Verbinden Sie den NRST-Pin 7, den PA13/SWDIO-Pin 34 und den PA14/SWCLK-Pin 37 mit der SWD-Schnittstelle. Fügen Sie 100 nF von NRST zu Ground hinzu.
• Verwenden Sie den HSI für das grundlegende Hochfahren. Fügen Sie den geeigneten HSE/LSE-Schaltkreis hinzu, wenn dies für die endgültige Taktkonfiguration erforderlich ist.

Abbildung 5. STM32F103C6T6 Minimales Systemschema
Abbildung 5 sollte alle Stromanschlüsse, Entkopplungskondensatoren, VDDA/VSSA, VBAT, BOOT0, NRST und SWD-Verbindungen zeigen.
Zeichnen Sie die Boardrevision, die Probenanzahl n, Wiederholungen, Versorgungsspannung und -ripple, Umgebungstemperatur, Taktkonfiguration, Lasten, Sondeneinstellungen, Instrumentengenauigkeit und Kalibrierungsstatus, Firmware-Build, STM32Cube-Versionen, Compiler-Version und ST-LINK-Firmware-Version auf.
| Überprüfen |
Validierung |
Bericht |
| Stromversorgung |
Messen Sie VDD und VDDA unter Last und beim Start. |
Min/max Spannung, Ripple, Unsicherheit |
| Zurücksetzen/Starten |
Stromzyklus, aktivieren Sie NRST und überprüfen Sie den BOOT0-Zustand. |
Rücksetzresultat und fehlgeschlagene Starts |
| SWD |
Löschen, programmieren, prüfen, zurücksetzen und debuggen. |
Bestehen/Nichtbestehen und Verbindungsfehler |
| ADC |
Wenden Sie kalibrierte Eingangsspannungen an und wiederholen Sie die Messungen. |
Erwarteter Code, Mittelwert des Codes, Streuung, Fehler |
| PWM/Taktung |
Messen Sie Frequenz und Tastverhältnis. |
Berechneter Wert, gemessener Wert, Fehler |
| Kommunikation |
Testen Sie mit einem bekannte funktionierenden Knoten oder Loopback. |
Bitrate, Frame-Anzahl, Fehler, Dauer |
Für den 12-Bit-ADC, wo VSSA ≈ 0 V:
LSB=V_DDA/4096
N_ideal= min (4095, [ (4096 x V_IN)/V_DDA ] )
wobei:
• Nideal = idealer ADC-Code
• VIN = angelegte ADC-Eingangsspannung
• VDDA = gemessene analoge Versorgungs-/Referenzspannung
Das ADC-Ergebnis muss zwischen 0 und 4095 bleiben.
Codefehler = Ngemessen − Nideal
Für einen kanten-alinierten, hochzählenden Timer:
fTIM = PCLKx, wenn der APB-Vorscaler = 1
fTIM = 2 × PCLKx, wenn der APB-Vorscaler > 1
Dann:
fPWM = fTIM/([(PSC + 1) × (ARR + 1)])
Für den PWM-Modus 1, aktive Hochbetrieb:
Tastverhältnis (%) = CCRx/(ARR + 1) x 100
wobei PSC der Timer-Vorscaler, ARR der Automatisches Nachladewert und CCRx der Capture/Compare-Wert ist.
Für gemessene ADC-, PWM- oder Timing-Ergebnisse:
Fehler (%) = (Gemessen - Erwartet)/Erwartet x 100
Berichten Sie den signierten oder absoluten Fehler zusammen mit der Messunsicherheit und den Testbedingungen.
Diese Fallstudien fassen die Forschung Dritter zur Verwendung des STM32F103C6T6 zusammen. Sie wurden nicht vom Autor dieses Artikels abgeschlossen oder gemessen.
Wang et al. (2023) verwendeten PWM, die vom STM32 erzeugt wurde, um drei orthogonale Helmholtz-Spulenpaare durch drei H-Brückenmodule mit jeweils 450 W und einer Versorgungsleistung von 30 V zu steuern. Der Wert von 450 W war eine Modulbewertung, kein gemessener Stromverbrauch. Das System verwendete eine offene Regelung anstelle von geschlossener Regelung für Strom oder Orientierungsfeedback.
Die Tests verwendeten eine Ø25 × 58 mm Kapsel in einem Wasserwürfel von 100 mm. Zwei Kameras zeichneten Bewegungen mit 640 × 480 Pixeln und 60–900 fps auf. Die Kapsel zeigte 90°-Drehungen. Bei 5 mT betrug das berichtete maximale geschätzte Drehmoment für weiche Magnete 6 × 10⁻⁵ N·m, im Vergleich zu 5,4 × 10⁻³ N·m für den Permanentmagneten. Das Drehmoment wurde aus dem Drehverhalten geschätzt und nicht mit einem Drehmomentsensor gemessen. Die Anzahl der unabhängigen Proben, die Anzahl der Versuche, Unsicherheit und numerischer Orientierungsfehler wurden nicht berichtet.
Quelle: Wang, Cui, Tian und Han (2023).
Kim et al. (2022) verwendeten ein STM32F103C6T6, um einen elektrostatistischen Resonanzaktuator zu steuern. Ein Prototyp, der an einem 125 g schweren Block befestigt war, wurde während eines 50–200 Hz Sweeps mit einem 352C66-Beschleunigungsmesser gemessen, wobei 2,5 g bei 99 Hz erreicht wurden, wobei g die Beschleunigung bezeichnet.
Vier Aktuatoren wurden dann an einem 17-Zoll-Panel an 25 Standorten und bei 90, 117 und 150 Hz getestet, was 75 Standort-Frequenz-Bedingungen ergibt, anstatt 75 unabhängige Proben. Die berichteten Spitzen betrugen 1,4 g, 2,6 g und 1,5 g. Das Papier identifiziert das Oszilloskop als DPO2012B in einer Abbildung, aber als DPO2021B im Text. Wiederholungen, Unsicherheiten, menschliche Tests, Lebensdauer und Stromverbrauch wurden nicht berichtet.
Quelle: Kim et al. (2022).
| Häufiges Problem |
Wahrscheinliche Ursache |
Dokumentierte Maßnahme |
| ST-LINK kann den MCU nicht erkennen |
Keine Zielspannung, falsche SWD-Verkabelung, fehlende Masse oder ungeeignete SWD-Frequenz |
Bestätigen Sie die Zielspannung und die Verbindungen von SWDIO, SWCLK, GND, NRST und Zielspannung. Reduzieren Sie die Debug-Frequenz, falls nötig. |
| ST-LINK hat nach der Programmierung die Verbindung abgebrochen |
Die Firmware hat die Debug-Schnittstelle deaktiviert oder umgeschaltet |
Verwenden Sie „Connect Under Reset“ mit NRST, das mit ST-LINK verbunden ist, und löschen oder ersetzen Sie die fehlerhafte Firmware. UM2237 identifiziert diesen Modus speziell als nützlich, wenn der Anwendungs-Code JTAG/SWD deaktiviert. |
| Firmware wird heruntergeladen, startet aber nicht |
BOOT0 ist hoch oder eine falsche Zielkonfiguration wird verwendet |
BOOT0 auf niedrig ziehen, um vom Haupt-Flash zu booten, das STM32F103C6Tx-Ziel überprüfen und den MCU zurücksetzen. |
| Zufällige Zurücksetzungen oder instabile Operation |
Stromversorgungseinbrüche, unzureichende Entkopplung, elektrische Störungen oder Watchdog-/Zurücksetzereignisse |
Messen Sie VDD während des Betriebs und überprüfen Sie die Zurücksetzquellen-Flags. Überprüfen Sie die Anforderungen an die Stromversorgung, Entkopplung, Erdung und Lastschutz, die in Abschnitt 5 beschrieben sind, anstatt sie hier zu wiederholen. |
| MCU schlägt nach der Taktkonfiguration fehl |
Falsche HSE/PLL-Konfiguration, Flash-Latenz oder Bus-Vorkenner |
Bei 72 MHz SYSCLK zwei Flash-Wartezustände konfigurieren, APB1 bei 36 MHz oder darunter halten, die Oszillator- und PLLRDY-Flags vor der Auswahl der PLL als SYSCLK bestätigen und die gewählte Taktquelle anschließend überprüfen. |
| UART-, PWM- oder Timerfrequenz ist falsch |
Falsche Taktbaum-Berechnung |
Überprüfen Sie die RCC- und APB-Vorkenner und berechnen Sie die Timer-Taktfrequenz mit der Methode in Abschnitt 5.4. |
| ADC-Werte sind rauschend oder ungenau |
Schlechte VDDA-Versorgung, ungeeignete Abtastzeit, hohe Quellenimpedanz oder fehlende Kalibrierung |
Überprüfen Sie die Integrität von VDDA/VSSA, führen Sie eine ADC-Kalibrierung durch, wählen Sie eine ausreichende Abtastzeit für die Quellenimpedanz und halten Sie den Eingang im zulässigen ADC-Bereich. |
| PA15, PB3 oder PB4 funktioniert nicht als GPIO |
Pins sind nach dem Zurücksetzen JTAG zugewiesen |
Konfigurieren Sie AFIO, um JTAG zu deaktivieren, während SWD weiterhin erhalten bleibt, falls das Debuggen noch erforderlich ist. |
| Programm überschreitet verfügbaren Speicher |
Projekt ist für eine größere STM32F103-Variante konfiguriert |
Verwenden Sie die Speicher-Konfiguration des STM32F103C6 mit 32 KB Flash und 10 KB SRAM und überprüfen Sie den Linker-Speicherauszug. |
| I²C-Gerät erkennt nicht an |
Verkabelungsfehler, falsche Adresse, unzureichende Pull-ups, inkompatible logische Spannungen oder falsche Timing |
Überprüfen Sie die SDA/SCL-Verkabelung, die Geräteadresse, externe Pull-ups, logische Spannungspegel und I²C-Timing mit einem Oszilloskop oder Logikanalyzer. |
| I²C BUSY-Flag bleibt nach dem Einschalten oder einer elektrischen Störung gesetzt |
Dokumentierte STM32F103x4/x6 I²C Analogfilter-Beschränkung |
Wenden Sie die ES0348 §2.8.7 Wiederherstellungssequenz an: I²C deaktivieren; SCL/SDA als Open-Drain-GPIO hochsetzen und beide hoch verifizieren; SDA auf niedrig ziehen und verifizieren; SCL auf niedrig ziehen und verifizieren; SCL auf hoch ziehen und verifizieren; SDA auf hoch ziehen und verifizieren; beide Pins auf Alternate-Function-Open-Drain wiederherstellen; SWRST setzen und dann löschen; schließlich I²C wieder aktivieren. Pull-ups alleine korrigieren diesen blockierten BUSY-Zustand nicht. |
| Ein 5-V-Signal beschädigt oder stört GPIO |
Spannung wurde an einen nicht-FT- oder Analogeingang angelegt |
Nur FT-markierte digitale Pins dürfen Eingangsspannungen oberhalb von VDD innerhalb der Grenzen von DS5936 akzeptieren. Bei Spannungen über VDD + 0,3 V die internen Pull-up/Pull-down-Widerstände deaktivieren. Verwenden Sie Pegelübersetzung oder Teilung für nicht-FT- und analoge Eingänge. |
| Schreibschutz aktiviert |
Zustand des Optionsbytes geschützt |
Überprüfen Sie die Optionsbytes mit dem STM32CubeProgrammer. Das Ändern vom geschützten in den ungeschützten Zustand durch Wiederherstellung des RDP-Wertes führt zu einem Massenerase der Haupt-Flash. STM32F1 verwendet nicht das spätere irreversible RDP Level 2-Schema. |
Die Hauptunterschiede zwischen dem STM32F103C6T6 und dem STM32F103C8T6 sind Speicherkapazität und die Anzahl der verfügbaren Timer und Kommunikationsperipheriegeräte.
| Merkmal |
STM32F103C6T6 |
STM32F103C8T6 |
| Gerätedichte |
Niedrigdichte |
Mittlere Dichte |
| Flash-Speicher |
32 KB |
64 KB |
| SRAM |
10 KB |
20 KB |
| Allgemeine Timer |
2: TIM2–TIM3 |
3: TIM2–TIM4 |
| I²C-Schnittstellen |
1 |
2 |
| USART-Schnittstellen |
2 |
3 |
| SPI-Schnittstellen |
1 |
2 |
C6T6 und C8T6 teilen sich das LQFP48-Format und die STM32F103-Architektur, aber die Migration erfordert dennoch eine Überprüfung des genauen Linkerskripts, der Startdateien, alternativer Funktionen, der Verfügbarkeit von Peripherie, elektrischer Grenzen und anwendbarer Errata. C8-Firmware kann nicht unverändert auf C6 übertragen werden, wenn sie 32 KB Flash oder 10 KB SRAM überschreitet oder TIM4, I²C2, USART3 oder SPI2 verwendet.

Abbildung 6. LQFP48 7 × 7 mm Gehäuseumriss und technische Daten
Der STM32F103C6T6 verwendet ein 48-poliges LQFP-Gehäuse mit einer typischen Gehäusegröße von 7 × 7 mm. Die typische Gesamtabmessung, einschließlich der Anschlüsse, beträgt 9 × 9 mm, mit einem Pins-Abstand von 0,50 mm und einer maximalen Gehäusehöhe von 1,60 mm. Jeder Anschluss ist typischerweise 0,60 mm lang, mit einem zulässigen Bereich von 0,45–0,75 mm.
Hinweis: Alle Abmessungen sind in Millimetern angegeben, und die Zeichnung ist nicht maßstabsgetreu. Die Mindest- und Höchstwerte zeigen die Fertigungstoleranzen. Verwenden Sie die empfohlene PCB-Fläche von ST, anstatt die Lötpads direkt aus dem Gehäuseumriss zu berechnen. Pin 1 muss auch mit dem Identifikationsmerkmal auf dem Bauteil übereinstimmen.
• STMicroelectronics. STM32F103x4, STM32F103x6: Niedrigdichte-Performance-Linie, ARM-basierter 32-Bit-Mikrocontroller mit 16 oder 32 KB Flash, USB, CAN, 6 Timern, 2 ADCs, 6 Kommunikationsschnittstellen. DS5936/DocID15060, Rev. 7, Juni 2015.
• STMicroelectronics. STM32F101xx, STM32F102xx, STM32F103xx, STM32F105xx und STM32F107xx fortschrittliche Arm-basierte 32-Bit-MCs. RM0008, Rev. 21, Februar 2021.
• STMicroelectronics. STM32F10xxx/20xxx/21xxx/L1xxxx Cortex-M3-Programmiervorschrift. PM0056, Rev. 7, Dezember 2024.
• STMicroelectronics. STM32F10xxx Flash-Speicher-Mikrocontroller. PM0075, Rev. 2, August 2012.
• STMicroelectronics. Erste Schritte mit der Hardwareentwicklung von STM32F10xxx. AN2586, Rev. 8, Dezember 2022.
• STMicroelectronics. STM32F103x8, STM32F103xB: Mittlere-Dichte-Performance-Linie. DS5319, Rev. 20, Juli 2025.
Ein Kristall ist keine logische Anforderung, aber ein USB-Design, das den Standards entspricht, benötigt eine genaue 48 MHz PLL-Uhr, die normalerweise von einem HSE-Kristall, Resonator oder externen Uhrquelle abgeleitet wird. Es erfordert außerdem einen externen 1,5 kΩ D+ Pull-Up und den dokumentierten USB-Versorgungsbereich.
Ja. Setzen Sie BOOT0 hoch und BOOT1 niedrig, um den Bootloader des Werksspeichers zu starten. Er unterstützt die Programmierung über USART1 an PA9 und PA10. Der Werksbootloader bietet laut AN2606 keinen USB DFU für dieses Gerät.
Nein. USB und CAN teilen sich einen dedizierten 512-Byte-Speicherbereich, sodass sie nicht gleichzeitig betrieben werden können. Sie können im selben Firmware enthalten sein, müssen aber zu unterschiedlichen Zeiten verwendet werden, wie in RM0008 erklärt.
Nein. Ein analogähnliches Ausgangssignal kann mit PWM und einem Tiefpassfilter erzeugt werden. Verwenden Sie einen externen DAC, wenn das Projekt bessere Genauigkeit, schnellere Settling-Zeiten oder eine stabile Spannung ohne PWM-Ripple erfordert.
Ja. Die Unterstützung für FreeRTOS wird über das STM32CubeF1-Softwarepaket bereitgestellt. Der C6T6 hat jedoch nur 10 KB SRAM, sodass Task-Stapel, Warteschlangen, Puffer und Middleware innerhalb dieses Limits passen müssen. Die Verwendung von kleinen Task-Stapeln, statischer Zuweisung und der Überwachung der Stapelnutzung sind technische Empfehlungen und keine Anforderungen an das Gerät.
CAP CER 4PF 100V C0G 0603
TRANS NPN 80V 8A DPAK
IC DRIVER 4/0 14SOIC
IC REG CTRLR DDR 1OUT 24WQFN
IC CODEC-FILTER PCM 5V 20-SOIC W
IC REG BUCK ADJUSTABLE 3A 8SOP
IGBT Modules
DIODE MODULE 600V 200A
S29GL064M11FFIS42 SPANSIO
MICROSEMI BGA
CAP TANT 22.0UF 25.0V


