Skip to Content

Programmer STM32 Black Pill avec l’IDE Arduino

Programmer STM32 Black Pill avec l’IDE Arduino

Cet article explique comment programmer la carte STM32 Black Pill avec l’IDE Arduino.

Pièces requises

Vous aurez besoin d’une carte de développement STM32 Black Pill et d’un câble USB-C pour programmer la carte. Une breadboard et quelques câbles seront également utiles pour faire des essais.

STM32 Black Pill

Câble USB-C

Dupont wire set

Jeu de fils Dupont

Half_breadboard56a

Breadboard

Makerguides is a participant in affiliate advertising programs designed to provide a means for sites to earn advertising fees by linking to Amazon, AliExpress, Elecrow, and other sites. As an Affiliate we may earn from qualifying purchases.

Télécharger et installer STM32CubeProgrammer

L’IDE Arduino ne permet pas de programmer les microprocesseurs STM32. Vous avez besoin d’un logiciel supplémentaire pour cela. Plus précisément, nous avons besoin de l’outil en ligne de commande « STM32_Programmer_CLI » qui fait partie du STM32CubeProgrammer logiciel.

Pour l’installer, rendez-vous sur le site STM32CubeProgrammer et cliquez sur le bouton rouge « Get Software » :

Get Software Button for STM32CubeProgrammer
Bouton Get Software pour STM32CubeProgrammer

Le site défilera vers la liste des installations disponibles du logiciel STM32CubeProgrammer pour différents systèmes d’exploitation :

List of STM32CubeProgrammer software installations
Liste des installations du logiciel STM32CubeProgrammer

Cliquez sur le bouton rouge « Get latest » pour votre système d’exploitation ou sur « Select version » pour choisir une version spécifique du logiciel STM32CubeProgrammer à installer. Dans les deux cas, une boîte de dialogue apparaît où vous devez accepter le contrat de licence :

License Agreement for STM32CubeProgrammer
Contrat de licence pour STM32CubeProgrammer

Ensuite, une seconde boîte de dialogue apparaît, où vous pouvez vous connecter à un compte MySt existant, créer un nouveau compte MySt ou « Download as guest » :

Dialog to create a MyST account
Dialogue pour créer un compte MySt

Vous pouvez essayer de cliquer sur le petit lien « Download as guest » en bas à droite de la boîte de dialogue. Un nouveau formulaire s’ouvre, où vous pouvez entrer vos informations et surtout une adresse email, où vous recevrez un lien de téléchargement.

Cependant, cela n’a pas fonctionné pour moi. J’ai reçu le lien de téléchargement mais un message indiquait que le lien n’était plus valide.

À la place, j’ai créé un compte MySt et j’ai pu télécharger le logiciel au format zip, par exemple en.stm32cubeprg-win64-v2-19-0.zip. Décompressez ce fichier et sous Windows vous trouverez un fichier nommé SetupSTM32CubeProgrammer_win64.exe à l’intérieur. Lancez ce fichier .exe pour installer le logiciel :

Installer for STM32CubeProgrammer
Programme d’installation pour STM32CubeProgrammer

Si l’installation a réussi, nous pouvons alors installer les cartes STM32.

Installer les cartes STM32

Pour installer le core STM32, allez dans File -> Preferences et ouvrez la boîte de dialogue Preferences

File -> Preferences Menu
Menu File -> Preferences

Dans la boîte de dialogue Preferences, allez à l’onglet Settings. En bas, vous verrez « Additional boards manager URLs : ». Cliquez sur le bouton à droite (marqué en jaune) pour ouvrir l’éditeur d’URL

Settings Tab in Preferences Dialog
Onglet Settings dans la boîte de dialogue Preferences

Dans l’éditeur d’URL, ajoutez l’URL suivante à la liste :

https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json

L’image ci-dessous montre le champ d’édition des Additional Boards Manager avec l’URL ajoutée pour les cartes STM32 :

Additional Boards Manager URLs
URLs supplémentaires du Boards Manager

Cela permettra à l’IDE Arduino de savoir où télécharger les fichiers des cartes STM32. Si cet éditeur contient déjà des URLs, ce n’est pas un problème. Ajoutez simplement la nouvelle URL sur une nouvelle ligne.

Ensuite, ouvrez le BOARDS MANAGER, tapez « STMicroelectronics » dans la barre de recherche, puis installez les « STM32 MCU based boards » comme montré ci-dessous :

Install STM32 MCU based boards
Installer les cartes STM32 MCU based boards

Cela lancera le téléchargement et l’installation des fichiers core STM32, ce qui peut prendre un peu de temps :

Installing STM32 core files
Installation des fichiers core STM32

J’ai rencontré une erreur lors de ma première tentative, mais après avoir appuyé une seconde fois sur « INSTALL », cela a fonctionné. Nous sommes maintenant prêts à sélectionner une carte STM32 et à la programmer.

Sélection de la carte Black Pill

Ouvrez le BOARDS MANAGER et tapez « f4 » dans la barre de recherche. Vous devriez voir une carte nommée « Generic STM32 F4 Series ». C’est la carte qu’il vous faut si vous avez la Black Pill listée dans les pièces requises. L’image ci-dessous montre la boîte de sélection de carte :

Select Generic STM32 F4 Series board
Sélectionner la carte Generic STM32 F4 Series

Si vous avez la carte connectée à votre PC via un câble USB, vous devriez aussi pouvoir sélectionner le port série, par exemple COM4 comme dans l’exemple ci-dessus. Si vous avez des problèmes avec la connexion USB, consultez la section Problèmes.

Configuration des paramètres de la carte

Avant de pouvoir programmer la carte, il faut définir les bons paramètres. Allez dans le menu « Tool » :

Tools Menu
Menu Tools

À la fin de ce menu, vous trouverez une liste de paramètres à régler comme suit :

Nous sommes enfin prêts à programmer la carte.

Programmer la Black Pill

Si vous avez connecté la carte avec succès via USB, vous devez ensuite mettre la carte en mode programmation en appuyant d’abord et en maintenant le bouton BOOT0 puis en appuyant et relâchant le bouton NRST. L’image ci-dessous montre où se trouvent ces boutons sur la carte Black Pill :


BOOT0 and NRST buttons on Black Pill board
Boutons BOOT0 et NRST sur la carte Black Pill

Notez que vous devez faire cela à chaque fois que vous voulez télécharger un nouveau programme sur la Black Pill. Vous pouvez commencer par essayer le programme Blink habituel :

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  digitalWrite(LED_BUILTIN, HIGH);  
  delay(1000); 
  digitalWrite(LED_BUILTIN, LOW);
  delay(1000);
}

Si cela réussit, la LED bleue sur la carte devrait clignoter toutes les secondes. Sinon, consultez la section suivante.

Problèmes

Flasher la carte Black Pill peut être délicat. Voici quelques problèmes courants que nous allons aborder dans cette section.

Périphérique USB non reconnu

Le premier problème courant sous Windows est l’erreur « USB device not recognized ». Vous connectez la carte Black Pill à votre ordinateur via USB, mais lorsque vous appuyez sur les boutons BOOT0 et NRST pour flasher, vous voyez le message d’erreur suivant :

Apparemment, pour les cartes plus anciennes, cela peut être dû à un problème thermique et si vous réchauffez un peu le microcontrôleur (en appuyant votre pouce dessus), cette erreur peut disparaître. Je ne peux pas confirmer que cela fonctionne, car cela n’a pas marché pour moi.

Sinon, la recommandation est de connecter A10 à la masse (G), ce qui a bien fonctionné pour moi aussi. L’image ci-dessous montre la connexion à réaliser :

Connecting A11 to G to fix flashing problem
Connexion de A11 à G pour résoudre le problème de flash

Si vous ne voulez pas perdre la broche A10 comme GPIO pour d’autres usages, vous pouvez utiliser une résistance de tirage vers la masse de 10 kΩ, ainsi la broche A10 reste utilisable et le flash fonctionne toujours.

Périphérique cible non trouvé

Si vous voyez le message d’erreur « Target Device not found » dans le moniteur série, c’est parce que vous avez oublié d’appuyer sur les boutons BOOT0 et NRST.

"Target Device not found" error in Serial Monitor
Erreur « Target Device not found » dans le moniteur série

Appuyez et maintenez « BOOT » puis appuyez et relâchez « NRST ». Cela met la Black Pill en mode flash. Vous devez faire cela à chaque fois que vous voulez télécharger un programme sur la Black Pill.

STM32CubeProgrammer non trouvé

Si vous voyez le message d’erreur « STM32CubeProgrammer not found » dans votre moniteur série lors de la tentative de téléchargement d’un programme sur la Black Pill, c’est généralement parce que le programme « STM32_Programmer_CLI.exe » n’est pas dans le chemin système.

"STM32CubeProgrammer not found" error in Serial Monitor
Erreur « STM32CubeProgrammer not found » dans le moniteur série

Sous Windows, allez dans Paramètres, cherchez « env », puis cliquez sur « Modifier les variables d’environnement système » comme montré ci-dessous :

Settings for System Environment Variables
Paramètres des variables d’environnement système

Cela ouvre une boîte de dialogue où vous pouvez trouver vos variables d’environnement. Vous devez ajouter le chemin vers le programme STM32_Programmer_CLI.exe à la variable Path. Sélectionnez-la et cliquez sur Edit.. :

Dialog to edit Environment variables
Dialogue pour modifier les variables d’environnement

Puis appuyez sur « Nouveau » pour ajouter le chemin vers le programme « STM32_Programmer_CLI.exe » à la liste. Dans mon cas, c’est « C:\Maet\Software\STM32CubeProgrammer\Bin », comme montré ci-dessous. Mais le vôtre sera différent !

Adding path to STM32_Programmer_CLI.exe program to system path
Ajout du chemin vers STM32_Programmer_CLI.exe dans le chemin système

Vous devrez peut-être redémarrer votre ordinateur pour que cette mise à jour du chemin système soit prise en compte. Après cela, l’erreur ne devrait plus se produire.

Conclusions

Dans cet article, vous avez appris comment programmer la carte STM32 Black Pill avec l’IDE Arduino.

Si vous souhaitez savoir comment installer des cartes pour d’autres microcontrôleurs courants dans l’IDE Arduino, consultez les Programming the Pico W5 with Arduino IDE, le How to Set Up a Raspberry Pi et le A Beginner’s Guide To ESP32 Programming tutoriels.

Si vous avez des questions, n’hésitez pas à les poser dans la section commentaires.

Bon bricolage ; )