Afin d'améliorer la facilité d'utilisation de la gamme de microcontrôleurs STM32, riche en fonctionnalités et économe en énergie, ST a ajouté en 2019 un outil de développement STM32 multifonctionnel et gratuit à l'écosystème logiciel STM32Cube : le STM32CubeIDE.
Pour fonctionner aussi bien que les outils commerciaux d'environnement de développement intégré (IDE), STM32CubeIDE tire pleinement parti de la technologie d'Atollic®, un fournisseur d'outils de développement embarqués acquis par STMicroelectronics en 2017. Utilisant des conditions de licence ouvertes conformes aux normes de l'industrie, ce logiciel IDE ajoute des fonctionnalités spécifiques au STM32 afin de simplifier et d'accélérer les conceptions embarquées basées sur le STM32, notamment de puissants outils de configuration de microcontrôleurs STM32CubeMX et de gestion de projets.
En intégrant STM32CubeMX à STM32CubeIDE, ST a créé un environnement de développement plus puissant. L'écosystème complet STM32Cube comprend également le graveur de code STM32CubeProgrammer et la famille de moniteurs d'exécution de code STM32CubeMonitor, ainsi que de nombreux progiciels MCU autonomes.
Qu'est-ce que STM32CubeIDE ?
STM32CubeIDE est un outil de développement logiciel officiel gratuit de ST, basé sur le framework Eclipse®/CDT, la chaîne d'outils de compilation GCC et l'outil de débogage GDB, qui prend en charge l'ajout de plug-ins fonctionnels tiers. Parallèlement, STM32CubeIDE intègre certaines des fonctionnalités de STM32CubeMX et STM32CubeProgrammer.
Avec STM32CubeIDE, les développeurs peuvent tout faire, depuis la sélection des puces, la configuration des projets et la génération de code jusqu'à l'édition, la compilation, le débogage et la gravure du code.

Fonctionnalités de STM32CubeIDE
1. Intégrer STM32CubeMX :
- Sélection du microcontrôleur STM32
- Affectation des broches, horloges, configuration IP et middleware
- Création de projet et génération du code d'initialisation
2. Basé sur Eclipse/CDT, prise en charge des plug-ins Eclipse, utilisation de la chaîne d'outils ARM et du débogueur GDB dans GNU C/C++.
3. Autres fonctions de débogage avancées :
- Cœurs de processeur, registres IP et vues de mémoire
- Affichage des variables en temps réel
- Analyse du système et suivi en direct (SWV)
- Outil d'analyse des erreurs CPU
4. Prise en charge des sondes de débogage ST-LINK et J-Link
5. Prise en charge de l'importation de projets depuis TrueSTUDIO et AC6 (SW4STM32)
6. Prise en charge des systèmes d'exploitation : Windows, Linux et MacOS
Télécharger STM32CubeIDE
Voici le lien officiel pour le téléchargement :
https://www.stmicroelectronics.com.cn/en/development-tools/stm32cubeide.html
Espace de travail STM32CubeIDE
STM32CubeIDE est un framework basé sur Eclipse qui hérite de certaines fonctionnalités d'Eclipse peu familières aux utilisateurs, telles que les vues en perspective, les espaces de travail, etc.
Espace de travail : STM32CubeIDE gère les projets via un espace de travail. Lorsque vous ouvrez STM32Cube, un nouvel espace de travail par défaut est créé. Le projet nouveau ou importé appartiendra à cet espace de travail. Les projets d'un même espace de travail ont la même configuration au niveau de l'IDE (définie dans Fenêtre→Préférences), comme les paramètres d'affichage et de style d'édition. Du point de vue du système de fichiers, un espace de travail est un dossier qui contient plusieurs dossiers de projet et un dossier nommé « .metadata », qui contient des informations sur tous les projets de cet espace de travail. Le dossier « metadata » contient des informations sur tous les projets de l'espace de travail. Le dossier « .metadata » contient les informations de tous les projets de l'espace de travail. L'utilisateur peut passer d'un espace de travail à l'autre via le menu Fichier→Changer d'espace de travail.
Perspective : une perspective est une série de fenêtres liées à un certain type de fonction. Les perspectives couramment utilisées sont la perspective d'édition C/C++, la perspective de débogage et la perspective de configuration CubeMX.
La perspective d'édition C/C++ comprend le gestionnaire de projet, la fenêtre d'édition, la fenêtre de structure, etc. Le gestionnaire de projet vous permet d'afficher et de manipuler tous les projets de l'espace de travail actuel. Double-cliquez pour ouvrir un fichier dans le projet. Le contenu du fichier s'affiche dans la fenêtre d'édition, où vous pouvez le modifier. La fenêtre de structure, située à l'extrême droite, répertorie toutes les fonctions, variables et macros définies dans le fichier actuellement ouvert.
Le menu Afficher la vue de la fenêtre vous permet d'ouvrir et de fermer les fenêtres qui doivent être affichées dans la perspective d'édition C/C++.
Vous pouvez passer d'une vue à l'autre à l'aide des icônes situées en haut à droite. Par exemple, en cliquant sur l'icône du robot d'indexation, vous pouvez passer à la vue de débogage. En cliquant sur le bouton Déboguer dans la barre d'outils sous la vue Édition C/C++, vous passez automatiquement à la vue Débogage après avoir lancé le débogage.
Comment utiliser STM32CubeIDE ?
1. Gestion de projet
Créer un nouveau projet
Avec STM32CubeIDE, les utilisateurs peuvent démarrer un nouveau projet de différentes manières. L'écran d'accueil de STM32CubeIDE répertorie les raccourcis permettant de créer/importer un projet, correspondant aux quatre scénarios ci-dessous. Les fonctions correspondantes peuvent également être mises en œuvre via les options Nouveau et Importer du menu Fichier.
- Créer un nouveau projet STM32 à partir de zéro
- Il existe déjà un fichier de configuration STM32CubeMX (*.ioc) et vous souhaitez créer un nouveau projet STM32 basé sur ce fichier ioc.
- Je dispose déjà d'un projet SW4STM32 ou TrueSTUDIO et je souhaite le convertir en projet STM32CubeIDE.
- Créer un nouveau projet basé sur les routines de la bibliothèque STM32Cube
Structure du projet STM32CubeIDE
STM32CubeIDE dispose de deux structures de projet, comme illustré dans la figure suivante.
Les microcontrôleurs monocœur sont des structures plates.
Pour les microcontrôleurs à architecture double cœur ou les microcontrôleurs de sécurité, tels que les séries STM32H7, STM32L5 et STM32MP1, le projet STM32CubeIDE est une structure hiérarchique. Prenons l'exemple du STM32H7 : après avoir créé ou importé un projet STM32H7, vous verrez une structure de projet à trois niveaux dans la barre Project Explorer : le niveau supérieur est le projet « racine », puis il y a deux projets « enfants » correspondant respectivement aux cœurs CM7 et CM4. La couche supérieure est le projet « racine », puis il y a deux projets « enfants » correspondant aux noyaux CM7 et CM4, et les fichiers du projet se trouvent sous les projets « enfants ». Ces deux projets « enfants » CM7 et CM4 sont les véritables projets compilables et débuggables, tandis que le projet « racine » n'est qu'un « conteneur » qui contient les projets « enfants » CM7 et CM4. Les documents AN5361, AN5394, AN5360 et AN5564 décrivent comment créer, importer, compiler et déboguer respectivement des projets STM32H7 dual-core, STM32L5, STM32MP1 et STM32WL dans STM32CubeIDE.
Gestion de la bibliothèque de micrologiciels
STM32CubeIDE intègre certaines des fonctionnalités de STM32CubeMX, vous permettant de générer un nouveau projet en sélectionnant directement le modèle de puce/carte de développement ou en sélectionnant une routine. Le pilote et le code de routine nécessaires pour générer un projet avec STM32CubeIDE proviennent des bibliothèques de micrologiciels de chaque famille STM32.
Dans Aide→Gérer les packages logiciels embarqués, toutes les bibliothèques de micrologiciels STM32 et autres plug-ins peuvent être gérés (installation/suppression de bibliothèques de micrologiciels).
Le bouton Installer maintenant permet à STM32CubeIDE de télécharger et d'installer automatiquement à partir du réseau, et le bouton À partir du local vous permet d'installer des bibliothèques de micrologiciels pré-téléchargées.
Le bouton Supprimer maintenant vous permet de supprimer la bibliothèque de micrologiciels sélectionnée.
Sous l'onglet STM32Cube Firmware Updater de la fenêtre Window Preferences, vous pouvez définir le chemin d'accès à l'installation de la bibliothèque de micrologiciels et la manière de la mettre à jour.
Configuration réseau
Par défaut, STM3CubeIDE tentera de se connecter au réseau lors de l'ouverture et de la création d'un nouveau projet. Vous pouvez également choisir le « Mode hors ligne » pour empêcher STM32CubeIDE de se connecter au réseau. Cependant, vous devez installer les bibliothèques de micrologiciels pré-téléchargées via le bouton « À partir du local » dans la fenêtre « Gestionnaire de progiciels embarqués » de l'image précédente, sinon le code ne sera pas généré automatiquement pour le nouveau projet STM32.
Cliquez sur le bouton « Vérifier la connexion » pour vérifier l'état actuel de la connexion réseau. Si un x rouge apparaît à la fin de la vérification, cela signifie qu'il y a un problème avec la configuration réseau et que nous devons aller à la page « Connexion réseau » pour la définir.
En plus de la détection de l'état du réseau actif précédente, si le téléchargement du micrologiciel échoue, veuillez également vérifier si la configuration réseau de STM32CubeIDE est correcte.
Les étapes de configuration sont illustrées dans la figure suivante :
1. Allez dans le menu Fenêtre Préférences et sélectionnez l'onglet Connexions réseau
générales 2. Sélectionnez la méthode Manuelle
3. Sélectionnez HTTP et double-cliquez pour ouvrir la fenêtre d'édition afin de définir les paramètres de connexion réseau.
Ouvrir/Fermer/Supprimer/Changer/Exporter des projets STM32CubeIDE
Dans la fenêtre Explorateur de projets, vous pouvez voir tous les projets de l'espace de travail actuel. Les utilisateurs peuvent ouvrir/fermer/supprimer/importer/exporter/renommer n'importe quel projet dans cette fenêtre.
2. Compilation du code
Paramétrage et compilation des propriétés
Sélectionnez un projet dans l'Explorateur de projets, cliquez dessus avec le bouton droit de la souris et accédez au menu des propriétés, où vous pouvez configurer les éléments de compilation.
Une fois la configuration terminée, le projet est prêt à être compilé. Vous pouvez lancer la compilation de trois manières
différentes :- Méthode 1 : sélectionnez le projet, cliquez dessus avec le bouton droit de la souris et sélectionnez « Build Project » (Compiler le projet)
. – Méthode 2 : sélectionnez le projet, accédez-y à partir du menu Project (Projet), puis sélectionnez « Build Project » (Compiler le projet)
. – Méthode 3 : sélectionnez le projet et cliquez sur l'icône Build (Compiler) dans la barre d'outils.
Améliorer la vitesse de compilation
En activant la compilation parallèle, vous pouvez améliorer la vitesse de compilation de STM32Cube IDE.
Sélectionnez le projet, cliquez dessus avec le bouton droit de la souris et accédez au menu Propriétés, sélectionnez « C/C++ Build », puis sous l'onglet Comportement, cochez la case « Activer la compilation parallèle ».
Outils auxiliaires pour la compilation
Une fois le projet compilé, la fenêtre « Build Analyzer » affiche l'utilisation de toutes les régions et sections de mémoire définies dans le fichier de liaison, y compris l'adresse de chargement, l'adresse d'exécution, le nombre d'octets occupés, le nombre d'octets restants, etc.
La fenêtre « Static Stack Analyzer » affiche l'utilisation de la pile statique.
STM32CubeIDE fournit également une fonctionnalité Headless Build, qui vous permet de compiler à partir de la ligne de commande sans ouvrir l'interface graphique CubeIDE.
3. Débogage et gravure du code
Configuration de débogage et d'exécution
Une fois que le projet STM32CubeIDE a été compilé sans erreur, il est prêt pour le débogage et le téléchargement.
Dans la barre d'outils de la perspective C/C++, trois boutons sont liés au téléchargement et au débogage : Debug, Run et External Tools.
Le petit triangle à côté du bouton « Déboguer » ouvre le menu Configurations de débogage qui permet de configurer les paramètres de débogage, tels que la sélection du débogueur, les paramètres de connexion GDB, les paramètres ST-LINK, les paramètres du chargeur Flash externe, etc., et de lancer le débogage.
Le bouton « Exécuter » vous permet de télécharger le programme sans lancer le débogage.
Le bouton « External Tools » vous permet d'appeler des outils de ligne de commande externes.
Commencer le débogage
STM32CubeIDE utilise GDB pour le débogage, prend en charge les débogueurs STLink et SEGGER J-Link, et permet la connexion au microcontrôleur cible via l'interface SWD ou JTAG.
Une fois le projet STM32CubeIDE compilé, le débogage peut être lancé directement en cliquant sur l'icône du robot dans la barre d'outils ou en sélectionnant le menu Exécuter–>Déboguer.
Si c'est la première fois que vous déboguez le projet actuel, STM32CubeIDE compilera d'abord le projet, puis ouvrira la fenêtre de configuration du débogage. La fenêtre de configuration du débogage contient des options pour la sélection de l'interface de débogage, les paramètres STLink, les paramètres de réinitialisation et les paramètres du chargeur flash externe, etc. Les utilisateurs peuvent vérifier ou modifier les configurations. Après avoir confirmé que toutes les configurations sont correctes, vous pouvez cliquer sur OK pour lancer le débogage.
STM32CubeIDE téléchargera alors d'abord le programme vers le microcontrôleur, puis lancera l'exécution à partir de l'entrée du programme spécifiée dans le fichier de liaison (*.ld). Le programme commence l'exécution à partir de Reset_Handler par défaut et s'arrête à la première ligne de la fonction principale, en attendant la prochaine instruction de débogage.
Exemple de programmation STM32CubeIDE
Découvrons le processus de développement logiciel à l'aide de STM32CubeIDE à travers une routine de clignotement LED.
La routine utilise la carte de développement NUCLEO-H743ZI et crée un nouveau projet à partir de zéro via STM32CubeIDE. Le projet implémente ensuite une fonction simple : la LED1 intégrée clignote automatiquement à des intervalles de 500 ms.
Voici ce que nous pouvons apprendre de cet exemple de programmation :
- Créer un nouveau projet STM32CubeIDE
- Configurer la puce STM32
- Ajouter le code utilisateur et compiler
- Définir les paramètres de débogage
- Déboguer le code (afficher les variables et les registres)
- Définir des points d'arrêt
Tout d'abord, sélectionnez Fichier–>Nouveau–>Projet STM32. STM32CubeIDE ouvrira la fenêtre de sélection du microcontrôleur. Dans cette fenêtre, vous pouvez sélectionner un modèle de puce spécifique, ou vous pouvez sélectionner une carte de développement ST ou une routine spécifique. Ici, nous saisissons STM32H743ZI dans la zone de recherche. Vous pouvez sélectionner directement cette puce, puis cliquer sur Suivant.
Dans la fenêtre contextuelle suivante, vous devez définir le nom, le type et l'emplacement du projet à enregistrer. Par défaut, le nouveau projet sera enregistré dans l'espace de travail actuel, mais vous pouvez également décocher « Utiliser l'emplacement par défaut » et personnaliser l'emplacement du projet comme indiqué ci-dessous. Notez que si vous essayez de placer deux projets sous le même chemin d'accès, vous risquez d'obtenir une erreur lors du processus de création ultérieur. Vous pouvez donc ajouter le nom du projet au chemin d'accès afin de distinguer les différents projets.
Une fois la configuration terminée, cliquez sur Terminer et STM32CubeIDE créera un projet pour nous et ouvrira l'interface de configuration de la puce, qui est la même que STM32CubeMX.
Pendant ce temps, une fenêtre contextuelle peut s'afficher pour vous demander d'ouvrir la perspective de configuration CubeMX. Cliquez sur Oui et vous avez terminé.
La prochaine étape consiste à configurer l'horloge, le GPIO, les périphériques, le middleware, etc. conformément aux exigences fonctionnelles dans l'écran de configuration de la puce. Dans cette routine, nous n'utilisons que PB0, qui sert de sortie pour contrôler LED1, il suffit donc de le configurer. L'horloge utilise simplement la configuration par défaut.
Dans la vue Pinout, la broche à configurer peut être trouvée rapidement sur le schéma du boîtier de la puce à l'aide de la barre de recherche.
Sélectionnez la broche, cliquez dessus avec le bouton droit de la souris et sélectionnez la fonction GPIO_Output.
Ensuite, allez dans la vue Système, cliquez sur le module GPIO, et vous pourrez voir la broche PB0 que vous venez de configurer. Cette fenêtre vous permet également de continuer à ajuster d'autres paramètres de PB0, tels que le pull-up/down, la vitesse, etc. Il est également possible de définir une étiquette utilisateur LDE1 pour celle-ci, ce qui facilite la référence dans le code.
Une fois la configuration terminée, sélectionnez Project–>Generate Code pour régénérer le code. À ce stade, STM32Cube passe à la vue C/C++ et vous pouvez alors ajouter le fichier utilisateur ou apporter des modifications à un fichier C.
Ici, nous ajoutons un morceau de code qui inverse PB0. Notez que tout le code ajouté par l'utilisateur doit être placé entre les déclarations « USER CODE BEGIN xxx » et « USER CODE END xxx ». De cette façon, lorsque le code est régénéré, cette partie du code ne sera pas perdue.
Une fois le code ajouté, cliquez sur « Build » pour lancer la compilation.
Si la compilation est terminée et qu'aucune erreur n'est signalée, vous pouvez cliquer sur Déboguer pour lancer le débogage.
La première fois que vous lancez le débogage, une fenêtre de configuration des paramètres de débogage s'affiche. Assurez-vous que tous les paramètres sont corrects, cliquez sur OK, et STM32CubeIDE passera automatiquement de l'interface d'édition à l'interface de débogage. Comme le montre la figure ci-dessous.
Dans l'interface de débogage, vous pouvez déboguer étape par étape à l'aide des boutons d'action de la barre d'outils.
Double-cliquez sur la barre de marqueur la plus à gauche d'une ligne de code pour ajouter un point d'arrêt à cette ligne de code.
Plusieurs fenêtres de débogage s'ouvrent sur le côté droit, notamment : variables locales, points d'arrêt, variables globales et registres, etc. Ces fenêtres peuvent être ouvertes ou fermées dans le menu Fenêtre–>Afficher la vue.
STM32CubeIDE vs STM32CubeMX
STM32Cube IDE est un environnement de développement intégré (IDE) destiné au développement d'applications sur les microcontrôleurs STM32. Basé sur la plateforme Eclipse, STM32Cube IDE intègre STM32CubeMX, des débogueurs, des éditeurs, des compilateurs et d'autres outils, offrant ainsi aux développeurs un environnement complet. STM32Cube IDE offre des fonctionnalités de débogage, de contrôle de version, d'édition de code et de compilation, permettant aux développeurs de mener à bien l'ensemble du processus de développement dans une interface unifiée.
STM32CubeMX est un outil de configuration graphique conçu pour initialiser les microcontrôleurs STM32 et générer du code d'initialisation. Il offre une interface intuitive permettant aux utilisateurs de sélectionner des modèles de microcontrôleurs, de configurer des périphériques, des mappages de broches et de générer le code d'initialisation correspondant. STM32CubeMX peut également générer des fichiers de configuration FreeRTOS, configurer l'arborescence d'horloge et définir les priorités d'interruption. Le code généré peut être intégré dans divers environnements de développement intégrés (IDE) tels que Keil ou IAR pour le développement d'applications supplémentaires.
| Feature | STM32CubeMX | STM32Cube IDE |
|---|---|---|
| Purpose | Configuration tool for STM32 MCUs | Full IDE for application development |
| Functionality | Initializes MCUs, configures peripherals, generates code | Code writing, debugging, building, and compiling |
| Platform | Standalone, integrates with Keil, IAR | Built on Eclipse, integrates CubeMX, debugging tools |
| Code Generation | Generates initialization code for external IDEs | Develops and compiles applications directly |
| User Interface | Graphical interface for configuration | Full IDE with editing and debugging tools |
| Use Case | Set up peripherals and generate base code | Write, build, and debug applications |
Questions fréquentes sur STM32CubeIDE
STM32CubeIDE peut-il générer des fichiers BIN ou HEX après la compilation ?
Par défaut, STM32CubeIDE génère des fichiers ELF après compilation. Cependant, il prend également en charge la génération de fichiers HEX ou BIN. Le processus de configuration est le suivant : Allez dans le menu principal Project > Properties > C/C++ Buildet ouvrez les paramètres où vous pouvez configurer le format de sortie.

Prend-il en charge l'intégration avec STM32CubeMX ?
Oui, tout à fait. STM32CubeIDE intègre en effet STM32CubeMX en tant que module dans son environnement de développement. Lors de la création d'un nouveau projet dans CubeIDE, STM32CubeMX est automatiquement invoqué pour permettre aux utilisateurs d'effectuer des configurations d'initialisation graphiques.
Pourquoi STM32CubeIDE ne génère-t-il pas de code ?
Plusieurs raisons peuvent expliquer pourquoi STM32CubeIDE ne génère pas de code :
- Assurez-vous que STM32CubeMX est correctement intégré et invoqué lors de la création du projet.
- Vérifiez que vous avez correctement configuré le microcontrôleur et ses périphériques dans STM32CubeMX avant d'essayer de générer le code.
- Vérifiez les paramètres dans la
Project > Properties, en particulier les options de génération de code. - Assurez-vous qu'il n'y a pas d'erreurs ou de configurations manquantes qui pourraient empêcher la génération de code.



