STM32F103 "Blue Pill" (STM32F103C8T6)

MCU 8-32 bitarduino

⚡ L’essentiel en 60 secondes

La carte de développement communément appelée « Blue Pill » est une planche électronique compacte, mesurant environ 23 sur 53 millimètrès, qui a marqué l'histoire de l'électronique embarquée en rendant accessible au grand public la puissance des microcontrôleurs 32 bits. Son nom, inspiré du film Matrix, provient d'une anecdote de forum et fait référence à la couleur bleue de son circuit imprimé. Au cœur de cette carte se trouve le microcontrôleur STM32F103C8T6 de STMicroelectronics, un composant issu de la famille STM32F1, la première génération de cette gamme lancée par le fabricant en 2007. Ce cœur de processeur est un ARM Cortex-M3, une architecture qui a démocratisé le calcul 32 bits en remplaçant les anciens processeurs 8 bits souvent utilisés dans les projets amateurs. Le Cortex-M3 fonctionne ici à une fréquence maximale de 72 MHz, ce qui signifie qu'il peut exécuter 72 millions de cycles d'horloge par seconde. Pour un débutant, cela se traduit par une réactivité bien supérieure à celle des cartes Arduino classiques basées sur des puces 8 bits, tout en restant très économe en énergie. Il est important de noter que ce cœur ne dispose pas d'unité de calcul flottant (FPU), ce qui signifie qu'il est moins adapté aux calculs mathématiques complexes impliquant des nombres à virgule, mais reste excellent pour le contrôle d'entrées et sorties, la lecture de capteurs et la gestion de protocoles de communication.

La carte est équipée de 64 Ko de mémoire flash, qui sert à stocker le programme de manière permanente, et de 20 Ko de mémoire vive (SRAM) pour les données temporaires. Bien que ces capacités puissent paraître modestes face aux ordinateurs modernes, elles sont largement suffisantes pour la majorité des applications embarquées, comme la lecture de capteurs, le pilotage de moteurs ou la communication réseau. La connectivité est assurée par deux rangées de connecteurs mâles compatibles avec le format « Arduino Nano », ce qui permet d'utiliser certains accessoires existants. Cependant, une vigilance absolue est requise : contrairement aux cartes Arduino classiques qui fonctionnent en 5 volts, la Blue Pill opère en logique 3.3 volts. Brancher un capteur 5 volts directement sur ses broches peut endommager le microcontrôleur. La carte intègre un régulateur de tension pour convertir l'alimentation USB de 5 volts en 3.3 volts nécessaires au fonctionnement du circuit. L'alimentation se fait principalement via un port micro-USB, mais il est crucial de ne jamais alimenter la carte simultanément par USB et par une source externe, car il n'y a pas de protection contre les conflits de tension, ce qui pourrait détruire le composant.

Sur le plan des fonctionnalités, la Blue Pill offre une richesse de périphériques impressionnante pour son prix. Elle dispose de plusieurs interfaces de communication série (USART), de bus I2C et SPI pour connecter des écrans ou des capteurs, ainsi que d'un contrôleur CAN, un protocole très utilisé dans l'automobile et l'industrie. Elle possède également un port USB complet intégré directement dans la puce, permettant de l'utiliser comme périphérique USB (clé, souris, ou interface série) sans matériel supplémentaire. La programmation et le débogage peuvent se faire via une interface SWD (Serial Wire Debug) à quatre broches, compatible avec des outils comme le ST-Link. Une particularité historique de cette carte est la présence de cavaliers BOOT0 et BOOT1. Ces petits connecteurs permettent de choisir le mode de démarrage du microcontrôleur. Par défaut, la carte démarre sur le programme utilisateur, mais en changeant la position du cavalier BOOT0, on force le microcontrôleur à démarrer sur son bootloader interne, une petite zone de mémoire en lecture seule qui permet de reprogrammer la puce via un port série. Cette méthode est souvent nécessaire si le bootloader USB communautaire n'est pas installé ou s'il est corrompu.

L'écosystème logiciel de la Blue Pill est vaste et témoigne de sa longévité. Elle est entièrement supportée par le noyau Arduino officiel de STMicroelectronics, ce qui signifie que les utilisateurs peuvent programmer la carte avec l'environnement Arduino IDE en utilisant les mêmes fonctions simples (digitalWrite, analogRead) que sur une Arduino Uno, tout en profitant de la puissance du Cortex-M3. Il existe aussi un noyau communautaire plus ancien, très populaire, ainsi que des bibliothèques avancées comme libopencm3 pour les développeurs préférant le langage C pur et le contrôle direct des registres matériels. Un piège classique pour les débutants concerne la LED témoin intégrée sur la broche PC13. Contrairement à la logique habituelle où un signal haut (HIGH) allume une LED, ici la LED est câblée en mode « sink » : elle s'allume lorsque la broche est mise à l'état bas (LOW). De nombreux tutoriels indiquent que la LED ne clignote pas, alors que le code est correct, simplement parce que l'état logique est inversé.

Malgré son succès, la Blue Pill est entourée de controverses et de risques qu'il est essentiel de connaître. En raison de sa popularité et de son faible coût de fabrication, le marché est inondé de contrefaçons. Il est fréquemment rapporté que la majorité des cartes vendues aujourd'hui contiennent des puces clones, souvent fabriquées par des entreprises comme GigaDevice, qui sont fonctionnellement compatibles mais peuvent présenter des bugs matériels ou des incompatibilités subtiles avec certains logiciels. Par exemple, certaines de ces fausses puces ne supportent pas la programmation à haute vitesse ou présentent des erreurs dans la gestion des interruptions. De plus, la qualité des composants passifs varie d'un lot à l'autre. Il est courant de trouver des résistances de tirage (pull-up) sur la ligne USB de valeur incorrecte (10 kΩ au lieu de 1.5 kΩ), ce qui rend la détection USB instable et nécessite parfois une modification manuelle du circuit. Enfin, bien que la puce STM32F103 soit toujours en production, la disponibilité des cartes originales peut fluctuer, et les prix sur les marchés en ligne, souvent cités autour de quelques dollars, ne sont pas garantis par des sources officielles stables. En résumé, la Blue Pill reste une plateforme d'apprentissage exceptionnelle pour comprendre l'architecture ARM Cortex-M3, à condition d'aborder le projet avec une connaissance claire de ses limites matérielles et des risques liés aux composants de marché.

Forum (1 sujet) →

AttrSpecsvérifié
cpusingle-core ARM Cortex-M3, r2p0, up to 72 MHz (ST page title; f_cpu = 72000000L in PlatformIO board definition, retrieved 2026-10-13). No MPU (__MPU_PRESENT 0), 4 NVIC priority bits, no FPU (Cortex-M3) — per ST's CMSIS device header stm32f103xb.h (github.com/STMicroelectronics/cmsis_device_f1, retrieved 2026-10-13).✔
memory64 KB flash / 20 KB SRAM ("STM32F103C8 (20k RAM. 64k Flash)", maximum_size: 65536, maximum_ram_size: 20480 in the PlatformIO board JSON above; corroborated by stm32-base.org FLASH 64 KiB / SRAM 20 KiB, retrieved 2026-10-13). Flash page size 1 KB up to 128 KB density (STM32duino-bootloader README, retrieved 2026-10-13).✔
packageLQFP48 is listed among the STM32F1 package options (Wikipedia — STM32). > ✔
clocks_on_the_boardHSE crystal 8 MHz, LSE RTC crystal 32.768 kHz, HSI 8 MHz / LSI 40 kHz internal (stm32-base.org, retrieved 2026-10-13). > ✔
connectivityno WiFi / BT / Ethernet — this is a bare MCU board; USB is device-only full-speed (bit of the fun is bit-bang/USBD stacks). CAN and RS-485-style UARTs make it popular in industrial tinkering. Board:? non vérifié
powermicro-USB (5 V), +5V and +3.3V header pins; on-board 3.3 V LDO, TX6211B, 3.6–5.5 V in, 3.3 V @ 300 mA out (stm32-base.org, retrieved 2026-10-13). VBAT pin broken out; no backup battery holder; VREF+/VDDA not separately brought out (same source).✔
i_o2× 20-pin 2.54 mm male headers (PA0–PA7, PA11–PA15, PB0–PB15, PC13–PC15, VBAT, NRST, 3V3, 5V, GND), 4-pin SWD header (3V3/PA13/PA14/GND), user LED on PC13 wired in sink mode (LED between VCC and pin → writing LOW turns it ON), power LED, reset button, BOOT0 and BOOT1 jumpers (BOOT1 on PB2) — full pin table in stm32-base.org (retrieved 2026-10-13).✔
logic_level3.3 V.? non vérifié
consumption? non vérifié
temperature_range? non vérifié
  • MCU : STMicroelectronics STM32F103C8T6 — fait partie de la gamme STM32F1 "Performance" (STM32F103), première famille STM32, basée sur le cœur ARM Cortex-M3. ST a annoncé la série F1 en juin 2007 (Wikipedia — STM32, consulté le 2026-10-13). La page produit officielle de ST est intitulée "STM32F103 — Arm Cortex-M3 Microcontrollers (MCU) 72 MHz" (st.com/en/microcontrollers-microprocessors/stm32f103.html, consulté le 2026-10-13).
  • Carte : la "Blue Pill" est une carte de développement chinoise sans marque, construite autour de cette puce. D'après la base de données de cartes STM32-base : Marque « Unknown », Origine « China », PCB bleu, 23 mm × 53 mm (stm32-base.org — STM32F103C8T6 Blue Pill, consulté le 2026-10-13). C'est une carte compatible avec l'empreinte Nano (headers mâles compatibles en brochage avec l'Arduino Nano, espacement de rangée DIP-30 de 0,6 pouce, mais en logique 3,3 V, et non 5 V) (Wikipedia — STM32, consulté le 2026-10-13).
  • Origine du nom : « This board got its name from a forum post at the STM32duino forums and is a reference to the movie The Matrix » (« Cette carte tient son nom d'un message sur les forums STM32duino et fait référence au film Matrix ») (stm32-base.org, consulté le 2026-10-13).
  • Année de lancement de la carte : >
  • Prix de lancement : un article communautaire de l'époque 2015, lié depuis le README d'Arduino_STM32, est intitulé "4 Dollar 90 MIPS 32-bit 72 MHz ARM Arduino" (hackster.io/rayburne/4-dollar-90-mips-32-bit-72-mhz-arm-arduino, lié depuis github.com/rogerclarkmelbourne/Arduino_STM32, consulté le 2026-10-13). Le point de prix « pilule ≈ 2 $ » couramment cité aujourd'hui est >
  • Statut : MCU en production active (page produit ST en ligne, consulté le 2026-10-13) ; carte disponible sans fin auprès des marketplaces chinoises. Attention : « most blue pill boards now contain a fake STM32 from China » (« la plupart des cartes blue pill contiennent désormais un faux STM32 venu de Chine ») (Wikipedia — STM32, consulté le 2026-10-13).
  • Variantes : cartes peuplées avec un STM32F103C6 (32 Ko), C8T6 (64 Ko) ou CB (128 Ko, souvent vendu comme C8 — « 64KB Flash (most have 128KB) » (« 64 Ko de Flash (la plupart en ont 128 Ko) ») d'après le wiki land-boards.com, consulté le 2026-10-13) ; le cœur Arduino officiel liste les cibles BluePill F103C6/C8/CB (Cartes prises en charge par Arduino_Core_STM32, consulté le 2026-10-13). MCU clones compatibles en brochage provenant de GigaDevice (GD32F103, gamme Cortex-M3 introduite en 2013, Wikipedia — GigaDevice/GD32, consulté le 2026-10-13) et contrefaçons remarquées (voir Problems). La "Black Pill" est le successeur à base de F401/F411 (Wikipedia — STM32).

+ Points forts

  • Le Cortex-M3 72 MHz le moins cher jamais distribué en masse — « 4 Dollar 90 MIPS 32-bit 72 MHz ARM Arduino » (lien hackster dans le README Arduino_STM32, consulté le 2026-10-13) ; le ticket d'entrée de facto vers l'ARM 32 bits.
  • Vrai périphérique USB full-speed sur la puce (pas une puce CDC) : l'USB device sur PA11/PA12 permet des projets HID/MIDI/CDC/DFU sans silicium supplémentaire (broches USB d'après stm32-base.org, consulté le 2026-10-13).
  • Contrôleur bxCAN (CAN1 dans la carte de brochage de la variante officielle, PeripheralPins.c/PeripheralPins.c), consulté le 2026-10-13) — rare à ce prix, il explique ses usages automobile/robotique.
  • Le STM32 embarqué est lui-même la « fonctionnalité spéciale » : la puce peut être reprogrammée comme périphérique USB, si bien qu'une Blue Pill de secours peut héberger des bootloaders communautaires ou un firmware de test comme le diagnostic Blinky de Greaseweazle (wiki STM32-Fakes, consulté le 2026-10-13).
  • Empreinte Nano 3,3 V compatible permettant aux shields/cartes mères Nano de fonctionner avec prudence sur les niveaux logiques (Wikipedia — STM32, consulté le 2026-10-13).
  • Immense histoire Arduino à deux cœurs : la seule carte également bien servie à la fois par le cœur officiel soutenu par ST et par le cœur communautaire historique (voir Systems).
  • Pas de FPU matériel, pas d'MPU, pas de moteur crypto — les « fonctionnalités » ici signifient brut rapport prix/périphériques, pas sécurité (l'en-tête CMSIS indique __MPU_PRESENT 0, cmsis_device_f1, consulté le 2026-10-13).

− Points faibles

  • Les puces contrefaites/clones sont endémiques. « Unfortunately, most blue pill boards now contain a fake STM32 from China » (« Malheureusement, la plupart des cartes blue pill contiennent désormais un faux STM32 venu de Chine ») (Wikipedia — STM32, consulté le 2026-10-13). Le « Rogues' Gallery » de Greaseweazle documente des faux vendus comme STM32F103C8 avec des échecs concrets : impossible de programmer à 921600 bauds ; impossible de démarrer un firmware depuis le System Bootloader ; l'I2C n'accepte pas CR1_ACK dans la même écriture que CR1_PE ; le DMA génère des interruptions de fin parasites et se bloque ; la coupure d'horloge du backup-domain gèle la puce ; certains clones vont jusqu'à corriger l'Erratum 2.3 genuine (lectures de registres de debug), ce qui est en soi une astuce de détection (github.com/keirf/greaseweazle/wiki/STM32-Fakes, consulté le 2026-10-13). Des alternatives légitimes compatibles en brochage existent aussi (famille GigaDevice GD32F103 depuis 2013, Wikipedia — GD32). >
  • Résistance de pull-up USB D+ souvent de valeur incorrecte : « Instead of a 1.5 kΩ it has either a 10 kΩ or 4.7 kΩ resistor » (« Au lieu d'une résistance de 1,5 kΩ, elle porte soit une 10 kΩ soit une 4,7 kΩ ») → énumération USB instable ; correctif en remplaçant la résistance (stm32-base.org, consulté le 2026-10-13). L'astuce de reset USB du bootloader stm32duino « relies on PA12 having a pull-up resistor of around 1.5k » (« repose sur le fait que PA12 possède une résistance de pull-up d'environ 1,5 k ») (README du bootloader).
  • Aucune protection d'alimentation : « +5V pins are directly connected to the +5V pin of the USB connector. There is no protection in place. Do not power this board through USB and an external power supply at the same time » (« les broches +5V sont directement connectées à la broche +5V du connecteur USB. Il n'y a aucune protection en place. Ne pas alimenter cette carte à la fois par USB et par une alimentation externe ») (stm32-base.org et wiki land-boards, consulté le 2026-10-13).
  • La LED PC13 est inversée (mode sink) : la LED utilisateur est entre VCC et PC13, elle s'allume donc quand la broche est LOW — un piège « mon code blink ne fait rien » classique chez les débutants (stm32-base.org « Mode: Sink » ; le README du bootloader note que les cartes génériques ont « the LED between Vcc and the pin, hence are on when the LED PIN is LOW » (« la LED entre Vcc et la broche, donc allumées quand la broche LED est LOW »), consulté le 2026-10-13). PC13 a aussi une capacité de drive limitée sur F103. >
  • Les cartes vendues comme C8T6 embarquent fréquemment des puces CB 128 Ko ou des clones (« 64KB Flash (most have 128KB) » (« 64 Ko de Flash (la plupart en ont 128 Ko) »), wiki land-boards ; faux ci-dessus) — ne pas compter sur la densité ni même sur le marquage.
  • Piège de taille de code du cœur historique : « Use of static variables inside functions greatly increase the code size… add -fno-threadsafe-statics to platform.txt » (« l'utilisation de variables static à l'intérieur des fonctions augmente fortement la taille du code… ajouter -fno-threadsafe-statics à platform.txt ») (README Arduino_STM32, consulté le 2026-10-13).
  • Bizarrerie de l'ancienne chaîne du bootloader : le bootloader dérivé de maple doit être construit avec GCC 4.8 ; « 4.9 or newer… cause hardware registers to be read incorrectly and consequently the bootloader does not work » (« 4.9 ou plus récent… provoquent des lectures incorrectes des registres matériels et par conséquent le bootloader ne fonctionne pas ») (README du bootloader STM32duino, consulté le 2026-10-13).
  • Risque de brique en reflashant le bootloader : « changing the bootloader may render the board unusable unless you can re-flash by other means (ST-Link or perpetual bootloader mode with Serial connection to UART1, not Serial USB) » (« changer le bootloader peut rendre la carte inutilisable sauf si vous pouvez re-flasher par d'autres moyens (ST-Link ou mode bootloader permanent avec connexion Série sur UART1, pas Serial USB) ») (wiki Arduino_STM32 — Bootloader, consulté le 2026-10-13).
  • Des errata existent sur les composants genuine (référencés comme « Erratum 2.3 of genuine parts » (« Erratum 2.3 des composants genuine ») à propos des registres de debug, wiki STM32-Fakes, consulté le 2026-10-13). >
  • Retour d'expérience expert expert — expert-microcontroleur
    • Retour d'expérience sur la Blue Pill : c'est l'entrée la moins chère dans le monde ARM Cortex-M3 à 72 MHz, avec un vrai contrôleur USB full-speed et une interface CAN, ce qui est rare pour ce prix. Par contre, méfiance absolue sur le sourcing. Comme le note Wikipedia, la plupart des cartes contienn… — expert-microcontroleur
    • Je confirme le souci USB, mais j'ai aussi galéré avec le blink. J'avais beau mettre HIGH sur PC13, rien ne s'allumait. En lisant la doc stm32-base, je vois que la LED est en mode sink, branchée entre VCC et la broche. Donc il faut écrire LOW pour l'allumer, pas HIGH. C'est contre-intuitif quand on … — maker-debutant-01
    • Pour répondre à ta question sur les clones : oui, ça impacte tout. Les puces GD32F103 sont des alternatives légitimes pin-compatibles, mais les contrefaçons directes de STM32F103C8 sont souvent boguées. Par exemple, certaines ne supportent pas de modifier CR1_ACK en même temps que CR1_PE sur l'I2C,… — electronicien-forum

Retours et projets de la communauté

  • Greaseweazle

    Greaseweazle — open-source USB floppy-disk flux-level reader/writer whose firmware runs on Blue-Pill-class STM32F103 boards ; its wiki maintains the reference "STM32 Fakes" Blinky test for exactly these boards. (retrieved 2026-10-13). (unverified au 2026-10-1…

  • BLUE-PILL-HUB

    BLUE-PILL-HUB — community carrier/expansion board designed around the Blue Pill, with FTDI serial header for bootloader uploads. (linked from the Blue Pill page, retrieved 2026-10-13). (unverified au 2026-10-13)

  • Programming the Blue Pill via USB bootloader

    Programming the Blue Pill via USB bootloader — widely-referenced Instructables workflow for serial/USB bootloader uploads without an ST-Link, linked from the land-boards Blue Pill page. (link verified on , retrieved 2026-10-13). (unverified au 2026-10-13)

Contenu indisponible pour le moment.

  • Les puces contrefaites/clones sont endémiques. « Unfortunately, most blue pill boards now contain a fake STM32 from China » (« Malheureusement, la plupart des cartes blue pill contiennent désormais un faux STM32 venu de Chine ») (Wikipedia — STM32, consulté le 2026-10-13). Le « Rogues' Gallery » de Greaseweazle documente des faux vendus comme STM32F103C8 avec des échecs concrets : impossible de programmer à 921600 bauds ; impossible de démarrer un firmware depuis le System Bootloader ; l'I2C n'accepte pas CR1_ACK dans la même écriture que CR1_PE ; le DMA génère des interruptions de fin parasites et se bloque ; la coupure d'horloge du backup-domain gèle la puce ; certains clones vont jusqu'à corriger l'Erratum 2.3 genuine (lectures de registres de debug), ce qui est en soi une astuce de détection (github.com/keirf/greaseweazle/wiki/STM32-Fakes, consulté le 2026-10-13). Des alternatives légitimes compatibles en brochage existent aussi (famille GigaDevice GD32F103 depuis 2013, Wikipedia — GD32). >
  • Résistance de pull-up USB D+ souvent de valeur incorrecte : « Instead of a 1.5 kΩ it has either a 10 kΩ or 4.7 kΩ resistor » (« Au lieu d'une résistance de 1,5 kΩ, elle porte soit une 10 kΩ soit une 4,7 kΩ ») → énumération USB instable ; correctif en remplaçant la résistance (stm32-base.org, consulté le 2026-10-13). L'astuce de reset USB du bootloader stm32duino « relies on PA12 having a pull-up resistor of around 1.5k » (« repose sur le fait que PA12 possède une résistance de pull-up d'environ 1,5 k ») (README du bootloader).
  • Aucune protection d'alimentation : « +5V pins are directly connected to the +5V pin of the USB connector. There is no protection in place. Do not power this board through USB and an external power supply at the same time » (« les broches +5V sont directement connectées à la broche +5V du connecteur USB. Il n'y a aucune protection en place. Ne pas alimenter cette carte à la fois par USB et par une alimentation externe ») (stm32-base.org et wiki land-boards, consulté le 2026-10-13).
  • La LED PC13 est inversée (mode sink) : la LED utilisateur est entre VCC et PC13, elle s'allume donc quand la broche est LOW — un piège « mon code blink ne fait rien » classique chez les débutants (stm32-base.org « Mode: Sink » ; le README du bootloader note que les cartes génériques ont « the LED between Vcc and the pin, hence are on when the LED PIN is LOW » (« la LED entre Vcc et la broche, donc allumées quand la broche LED est LOW »), consulté le 2026-10-13). PC13 a aussi une capacité de drive limitée sur F103. >
  • Les cartes vendues comme C8T6 embarquent fréquemment des puces CB 128 Ko ou des clones (« 64KB Flash (most have 128KB) » (« 64 Ko de Flash (la plupart en ont 128 Ko) »), wiki land-boards ; faux ci-dessus) — ne pas compter sur la densité ni même sur le marquage.
  • Piège de taille de code du cœur historique : « Use of static variables inside functions greatly increase the code size… add -fno-threadsafe-statics to platform.txt » (« l'utilisation de variables static à l'intérieur des fonctions augmente fortement la taille du code… ajouter -fno-threadsafe-statics à platform.txt ») (README Arduino_STM32, consulté le 2026-10-13).
  • Bizarrerie de l'ancienne chaîne du bootloader : le bootloader dérivé de maple doit être construit avec GCC 4.8 ; « 4.9 or newer… cause hardware registers to be read incorrectly and consequently the bootloader does not work » (« 4.9 ou plus récent… provoquent des lectures incorrectes des registres matériels et par conséquent le bootloader ne fonctionne pas ») (README du bootloader STM32duino, consulté le 2026-10-13).
  • Risque de brique en reflashant le bootloader : « changing the bootloader may render the board unusable unless you can re-flash by other means (ST-Link or perpetual bootloader mode with Serial connection to UART1, not Serial USB) » (« changer le bootloader peut rendre la carte inutilisable sauf si vous pouvez re-flasher par d'autres moyens (ST-Link ou mode bootloader permanent avec connexion Série sur UART1, pas Serial USB) ») (wiki Arduino_STM32 — Bootloader, consulté le 2026-10-13).
  • Des errata existent sur les composants genuine (référencés comme « Erratum 2.3 of genuine parts » (« Erratum 2.3 des composants genuine ») à propos des registres de debug, wiki STM32-Fakes, consulté le 2026-10-13). >

Bibliothèque de code — exemples écrits pour cette carte

  • clignotante.c C

    Le clignotement de référence en C nu avec la STM32 HAL : la LED broche 13 de la carte bascule toutes les 500 ms grâce au tick SysTick de 1 ms. Le squelette est celui généré par STM32CubeIDE, prêt à c…

  • bouton-hal.c C

    Le bouton utilisateur de la carte (GPIOA/GPIO_PIN_0, actif HIGH) bascule la LED à chaque appui. L'anti-rebond par échantillonnage à 50 Hz est le patron standard en C embarqué, sans interruption ni te…

  • usart-printf.c C

    Rediriger printf() vers l'USART en trois lignes : la carte envoie ses mesures sur le port série virtuel USB, visibles dans un terminal à 115200 bauds. Le patron de retargeting est le même sur toute l…

  • adc-temperature.c C

    Le capteur thermique interne est relié à un canal dédié de l'ADC : ce programme le convertit, applique l'étalonnage typique de la fiche technique et affiche la température du circuit en degrés Celsiu…

  • pwm-timer-led.c C

    Le PWM matériel d'un timer STM32 fait respirer une LED sans consommer de CPU : le canal compare la valeur au compteur et génère le créneau en autonomie. Le rapport cyclique s'exprime en pourcentage d…

  • servo-pwm.c C

    Le timer configuré pour compter en microsecondes génère l'impulsion de commande du servo (0,5 à 2,5 ms sur période de 20 ms). La fonction servo_angle convertit n'importe quel angle en valeur de compa…

  • i2c-oled.c C

    Le protocole I2C du SSD1306 tient en deux octets de contrôle : 0x00 pour une commande, 0x40 pour des données. Ce programme envoie la séquence d'initialisation puis une image de test, sans bibliothèqu…

  • watchdog-iwdg.c C

    Le watchdog indépendant IWDG redémarre la carte si le firmware cesse de le rafraîchir : ici une boucle infinie simulée provoque le reset au bout de 30 cycles. Le port série montre clairement le redém…

  • rtc-reveil.c C

    La RTC tient l'heure même alimentation coupée (veilleuse ou condensateur de la carte) : ce programme affiche l'horloge en continu et déclenche un réveil toutes les 10 s, base des stations à réveil pé…

  • usart-reception.c C

    Le DMA circulaire remplit le tampon UART sans jamais interrompre le CPU : la boucle principale découpe le flux en lignes et exécute les commandes ("led" bascule la LED utilisateur). Le patron de réfé…

Exemples et dépôts trouvés en ligne