- Vereiste materialen
- Schakelschema
- De Maple Boot-lader uploaden naar het STM32-ontwikkelbord
- De Arduino IDE voorbereiden en de stuurprogramma's installeren
- Programmering STM32 (Blue Pill) rechtstreeks via USB-poort
Het STM32 Development Board waarin de STM32F103C8 Microcontroller is ondergebracht, wordt steeds populairder dankzij de ARM Cortex M3-architectuur, het heeft een hoge werksnelheid en meer randapparatuur. Omdat dit bord eenvoudig kan worden geprogrammeerd met behulp van de Arduino IDE, is het voor veel hobbyisten en ingenieurs een voorkeurskeuze geworden voor snelle prototyping.
In onze vorige tutorial hebben we de basis van het STM32 Development Board geleerd en ook geprogrammeerd om een LED te laten knipperen. Maar er was één groot nadeel aan verbonden. Om het bord te programmeren, gebruikten we een FTDI-programmeermodule en moesten we ook de boot 0-jumper schakelen tussen en 1-positie tijdens het uploaden en testen van een code, wat zeker een ontmoedigende taak is. Ook de mini-USB-poort op het Development board bleef totaal ongebruikt. De reden hiervoor is dat wanneer het STM32-ontwikkelbord wordt gekocht, het niet wordt geleverd met een Arduino-ready bootloader en daarom zal het bord niet worden ontdekt door uw computer wanneer het via de USB is aangesloten.
Hopelijk bestaat er echter een experimentele bootloader ontwikkeld door LeafLabs voor Maple miniborden . Deze bootloader kan één keer in de STM32 worden geflitst en daarna kunnen we direct de USB-poort van het STM32-bord gebruiken om programma's te uploaden, net als alle andere Arduino-borden. Deze bootloader bevindt zich echter nog in de ontwikkelingsfase op het moment dat deze tutorial wordt gedocumenteerd en is niet aan te raden voor kritieke applicaties. Voordat u verder gaat met deze tutorial, zorg ervoor dat u de vorige tutorial hebt gelezen om de basisprincipes van dit bord te begrijpen, inclusief details over de specificaties en pin-outs.
Vereiste materialen
- STM32 - (BluePill) Ontwikkelingsbord (STM32F103C8)
- FTDI-programmeur
- Breadboard
- Draden aansluiten
- Laptop met internet
Schakelschema
Om het STM32 Blue Pill-bord rechtstreeks via de USB-poort te programmeren, moeten we eerst de Maple-opstartlader in de MCU flashen. Hiervoor hebben we een Serial FTDI-kaart nodig. Dit bord is verbonden met de Rx- en Tx-pin van de STM32, zoals hieronder weergegeven.
De Vcc-pin van het FTDI-bord is verbonden met de STM32 5V-pin van het bord. De aarde is verbonden met de aarde van STM32. De Rx- en Tx-pin van het FTDI-bord is respectievelijk verbonden met de A9- en A10-pin van de STM32. Waar de A9 de Tx-pin is van STM32 MCU en de A10 de Rx-pin is.
Zorg ervoor dat de jumperpin voor boot 0 op het bord is ingesteld op 1 (programmeermodus) tijdens het uploaden van de bootloader. Zodra de bootloader knippert, kan deze pin worden teruggezet naar de oorspronkelijke positie (bedieningsmodus).
De Maple Boot-lader uploaden naar het STM32-ontwikkelbord
Zodra we de bovenstaande verbinding hebben gemaakt, sluit u het FTDI-bord aan op uw computer en volgt u de stappen om de bootloader in de STM32 te flashen.
Stap 1: We moeten de binaire bestanden (bin-bestand) van het opstartladerprogramma downloaden van de github-pagina. Er zijn veel versies van het bin-bestand, voor het Blue Pill-bord gebruikt u deze github-link en klikt u op de downloadknop om het bin-bestand te downloaden.
Stap 2: Vervolgens moeten we de STM Flash-lader-software downloaden en installeren om het gedownloade bin-bestand in STM32 te flashen. Klik op deze link om naar de ST-website te gaan en scroll naar beneden en klik op software downloaden
Stap 3: Om de software te downloaden, moet u uw e-mailadres invoeren en de downloadlink wordt naar uw e-mailadres gestuurd. Volg daarna de link terug naar de website en klik opnieuw op software downloaden en het downloaden begint. Ja, het is een beetje frustrerend, maar dit is hoe het moet worden gedaan. Vergeet niet uw spam-map te controleren op de e-mail, soms duurt het een paar minuten voordat de e-mail arriveert.
Stap 4: Nadat u de software hebt gedownload, moet u ervoor zorgen dat uw STM32-kaart is aangesloten op uw computer via de FTDI-kaart en start vervolgens de software. De software detecteert automatisch de COM-poort als u Apparaatbeheer niet gebruikt en zorgt ervoor dat u het juiste COM-poortnummer selecteert. In mijn geval is het COM4. Laat de rest van de instelling zoals hieronder weergegeven.
Stap 5: Klik twee keer op de knop Volgende en de software zal opnieuw automatisch de borddetails detecteren en weergeven zoals hieronder weergegeven. Het bord dat we gebruiken is STM32F1 met 128K flash-geheugen.
Stap 6: Selecteer in de volgende stap Downloaden naar apparaat en blader naar de locatie waar we ons bin-bestand in stap 1 hebben gedownload en selecteer het. Klik op volgende.
Stap 7: De software zal enkele vereiste bestanden downloaden zoals hieronder getoond en zal dan beginnen met knipperen.
Stap 8: Zodra het knipperen is voltooid, krijgen we het onderstaande scherm te zien. Klik op sluiten en sluit de applicatie af. We hebben het STM32-bord met de Arduino-bootloader met succes geflitst. Nu moeten we de Arduino IDE voorbereiden en de stuurprogramma's installeren voordat we het STM32-bord kunnen programmeren.
De Arduino IDE voorbereiden en de stuurprogramma's installeren
Volg de onderstaande stappen om de Arduino IDE te downloaden en voor te bereiden voor gebruik met het STM 32 Development board.
Stap 1: - Als u de Arduino IDE nog niet heeft geïnstalleerd, download en installeer deze dan via deze link. Zorg ervoor dat u uw juiste besturingssysteem selecteert.
Stap 2: - Na het installeren van de Arduino IDE open en download de vereiste pakketten voor het STM32-bord. Dit kan gedaan worden door Bestand -> Voorkeuren te selecteren .
Stap 3: - Als u op Voorkeuren klikt, wordt het onderstaande dialoogvenster geopend. Plak de onderstaande link in het extra Boards Manager URL-tekstvak
dan.drown.org/stm32duino/package_STM32duino_index.json
en druk op OK.
Stap 4: - Ga nu naar Tool -> Boards -> Board Manager . Dit opent het Boards manager dialoogvenster, zoek naar "STM32F1" en installeer het pakket dat verschijnt.
Stap 5: Nadat het pakket is geïnstalleerd, navigeert u naar C: \ Program Files (x86) Arduino \ hardware \ Arduino_STM32-master \ drivers \ win waar u install_drivers.bat en install_STM_COM_drivers.bat vindt .
Stap 6: Klik op beide bat-bestanden en installeer de stuurprogramma's. U krijgt een DOS-scherm zoals hieronder weergegeven.
Nu is de Arduino IDE voorbereid voor het programmeren van STM32 (Blue Pill) Development Board en zijn de stuurprogramma's ook geïnstalleerd.
Programmering STM32 (Blue Pill) rechtstreeks via USB-poort
Verwijder de FTDI-kaart en alle bestaande verbindingen van uw STM32. Gebruik gewoon de micro-USB-poort op de STM32-kaart om deze op de computer aan te sluiten, zoals hieronder wordt weergegeven. Zorg ervoor dat de jumper 0-pin weer op 0 staat (bedrijfsmodus). Hierna hoeven we de jumper niet meer om te schakelen om de programma's te uploaden en uit te voeren.
Je computer zou het bord nu moeten kunnen ontdekken. Wacht even als u ziet dat er extra stuurprogramma's worden geïnstalleerd. Ga vervolgens naar Apparaatbeheer en controleer of uw STM32-kaart wordt ontdekt onder de COM- en poortsectie, zoals hieronder wordt weergegeven. De mijne is verbonden met COM8 met de naam Maple Mini.
Ga naar Tools en scrol omlaag om de Generic STM32F103C-serie te vinden, zoals hieronder weergegeven. Zorg er vervolgens voor dat de variant 64k Flash-type is , de CPU-snelheid 72 MHz is en verander de uploadmethode naar STM32duino Bootloader . Selecteer ook de juiste COM-poort volgens die op uw apparaatbeheerder.
Nadat alle wijzigingen zijn aangebracht, controleert u de rechterbenedenhoek van de Arduino IDE en ziet u dat de volgende instelling wordt ingesteld. Mijn STM32-kaart is verbonden met COM8, maar die van jou kan verschillen
Nu is de Arduino IDE klaar om de STM 32 Blue Pill Development Boards te programmeren. Laten we het Sample Blink Program uploaden van de Arduino IDE naar het STM32 Blue Pill-bord om er zeker van te zijn dat alles correct werkt. Het voorbeeldprogramma is te vinden op
In het voorbeeldprogramma dat wordt geopend, moeten we een kleine wijziging aanbrengen. Standaard wordt het programma geschreven voor PB1, maar op ons bord is de ingebouwde LED verbonden met PC13, dus vervang alle PB1 door PC13 en we zijn klaar om verder te gaan. Het complete voorbeeldprogramma dat is aangepast, vindt u ook onderaan deze pagina.
De code in de lusfunctie alleen wordt hieronder getoond, waar we kunnen zien dat de PC13-pin HIGH (aan) wordt gehouden gedurende 1000 milliseconde en vervolgens LOW (uit) wordt gedraaid voor nog eens 1000 milliseconde en dit wordt oneindig vaak gedaan omdat het in loop- functie. De LED lijkt dus te knipperen met een interval van 1000 milliseconden.
digitalWrite (PC13, HIGH); // zet de LED aan (HIGH is het spanningsniveau) vertraging (1000); // wacht op een tweede digitalWrite (PC13, LOW); // schakel de LED uit door de spanning laag te maken (1000); // wacht even
Druk op de uploadknop op de Arduino IDE en je programma zou moeten worden gecompileerd en geüpload. Als alles naar verwachting heeft gewerkt, zou u het volgende op uw Arduino IDE-console moeten zien.
Als het programma met succes is geüpload, zou u de groene LED moeten zien knipperen met een interval van 1 seconde, zoals weergegeven in de onderstaande video. Je kunt ook met het programma spelen om de vertraging te vergroten of te verkleinen. Nu kunt u het STM32 (Blue Pill) ontwikkelbord gaan gebruiken zoals elk ander Arduino-bord, dat wil zeggen dat u niet langer de positie van jumpers hoeft te veranderen of externe hardware te gebruiken om programma's te uploaden en te testen.
Ik hoop dat je de tutorial hebt begrepen en dat je het nuttig vond om aan de slag te gaan met STM32 Board. Als je een probleem hebt, laat ze dan achter in het commentaargedeelte, vertel me ook welke projecten we in de toekomst met dit STM32-bord zouden moeten proberen.