- Sélection et téléchargement des plates-formes de développement requises pour les cartes Nucleo64
- Schéma de circuit et configuration matérielle
- Prise en main de STM32CubeMX pour les cartes de développement STM32 Nucleo64
- Programmation de la carte de développement STM32 Nucleo64 à l'aide de TrueSTUDIO
- Programme STM32 Nucleo64 pour contrôler la LED à l'aide du bouton poussoir
- Débogage et téléchargement de code sur la carte de développement STM32 Necleo64 à l'aide de TrueSTUDIO
Beaucoup d'entre nous devraient être familiers avec les microcontrôleurs et les cartes de développement populaires comme Arduino, Raspberry Pi, ESP8266, NoduMCU, 8051, etc. En fait, pour la plupart des gens, Arduino aurait été leur première carte de développement, mais alors que nous creusons profondément et commençons conceptions professionnelles, nous réaliserons bientôt les limites d'Arduino (comme le coût, la polyvalence, la stabilité, la vitesse, etc.) et comprendrons la nécessité de passer à une plate-forme de microcontrôleur plus native comme PIC, STM, Renesas, etc.
Nous avons déjà couvert une séquence de didacticiels PIC Microcontroller, qui guide les débutants dans l'apprentissage des microcontrôleurs PIC. De même, à partir de cet article, nous planifierons également une séquence de didacticiels sur la carte de développement STM32 Nucleo64 qui peuvent aider les débutants absolus à apprendre et à se développer à l'aide de la plate-forme STM32. Les cartes de développement Nucleo64 sont une plate-forme peu coûteuse et facile à utiliser pour les développeurs professionnels ainsi que pour les amateurs. Si vous êtes complètement nouveau sur les cartes de développement STM32 Nucleo64, regardez cette vidéo Nucleo64 Review pour comprendre les bases de cette carte avant de continuer. La vidéo montre également comment programmer STM32 à l'aide de la plateforme ARM Mbed mais pour ce tutoriel, nous utiliserons une autre plate-forme gratuite de ST Microelectronics appelée TrueSTUDIO.
Remarque: il existe de nombreuses versions de cartes de développement STM32 Nucleo64, la carte particulière utilisée dans ce didacticiel est NUCLEO-F030R8. Nous avons sélectionné cette planche principalement en raison de son faible coût. Même si vous avez une version différente, la plupart des éléments abordés dans le didacticiel vous suffiront pour commencer.
Sélection et téléchargement des plates-formes de développement requises pour les cartes Nucleo64
Pour démarrer avec n'importe quel microcontrôleur, il faudra un IDE de programmation comme nous avons Arduino IDE pour les cartes Arduino, Atmel Studio pour le microcontrôleur AVR, MP Lab pour PIC, etc. Nous avons donc également besoin d'un IDE pour nos cartes STM32 Nucleo64 pour effectuer la programmation et le débogage. La famille STM32 se compose de microcontrôleurs 32 bits qui prennent en charge les IDE et les chaînes d'outils suivants:
- IAR Embedded Workbench® pour ARM® (EWARM).
- MDK-ARM Keil
- TrueSTUDIO
- System Workbench pour STM32
Ici pour nos didacticiels, TrueSTUDIO sera utilisé pour écrire, compiler et déboguer du code car il est gratuit à télécharger et à utiliser même pour des projets commerciaux sans aucune exigence de licence. Ensuite, STM32CubeMX sera utilisé pour générer des pilotes de périphériques pour les cartes STM32 afin de faciliter la programmation. Pour télécharger notre programme (fichier hexadécimal) dans notre carte de développement, les gens utilisent normalement l' outil STM32 ST-LINK Utility, mais à la place, nous utiliserons TrueSTUDIO lui-même pour le faire. TrueSTUDIO a un mode de débogage qui permet aux programmeurs de télécharger le fichier hexadécimal directement sur la carte STM32. TrueSTUIO et STM32CubeMX sont faciles à télécharger, suivez simplement le lien ci-dessous, inscrivez-vous et téléchargez la configuration. Ensuite, installez-les sur votre ordinateur portable.
- Télécharger STM32Cube MX
- Télécharger TrueSTUDIO
Schéma de circuit et configuration matérielle
Avant de passer à la section logiciel et au codage, préparons notre carte pour ce projet. Comme mentionné précédemment dans cet article, nous allons contrôler une LED à l'aide d'un bouton poussoir. Maintenant, si vous avez vu la vidéo liée ci-dessus, vous devriez déjà savoir que votre carte de développement STM32 a deux ensembles de broches de connecteur de chaque côté appelées broches ST Morpho. Nous avons connecté un bouton poussoir et une LED à ces broches comme indiqué dans le schéma ci-dessous.
Les connexions de circuits sont faciles pour ce projet, nous devons connecter une LED à PA5 de PORTA et un interrupteur à PC13 de PORTC par rapport à GND. Une fois les connexions établies, ma configuration de test ressemblait à ceci.
Alternativement, nous pouvons également utiliser la LED intégrée et le bouton poussoir sur la carte. Ces LED et bouton-poussoir intégrés sont également connectés à la même broche, comme indiqué sur le schéma de circuit. Nous avons ajouté des composants externes uniquement pour la pratique. Le diagramme de broches ci-dessous de la carte de développement STM32 vous sera utile pour savoir où chaque broches morpho sont connectées à bord.
Prise en main de STM32CubeMX pour les cartes de développement STM32 Nucleo64
Étape 1: Après l'installation, lancez STM32CubeMX, puis sélectionnez le sélecteur de carte d'accès pour sélectionner la carte STM32.
Étape 2: Recherchez maintenant le tableau par le nom de votre carte STM32 comme NUCLEO-F030R8 et cliquez sur le tableau affiché dans l'image. Si vous avez une autre carte, recherchez son nom respectif. Le logiciel prendra en charge toutes les cartes de développement STM32 de ST Microelectronics.
Étape 3: Cliquez maintenant sur Oui comme indiqué dans l'image ci-dessous, pour initialiser tous les périphériques dans leur mode par défaut. Nous pouvons plus tard modifier ceux requis selon les besoins de notre projet.
Après avoir cliqué sur «Oui», l'écran sera similaire à l'image ci-dessous et à la broche de couleur verte indiquant qu'ils sont lancés par défaut.
Étape 4: Les utilisateurs peuvent désormais sélectionner le paramètre souhaité dans les catégories. Ici, dans ce tutoriel, nous allons basculer une LED à l'aide d'un bouton poussoir. Donc, nous devons faire de la broche LED une sortie et une broche de commutation comme INPUT.
Vous pouvez sélectionner n'importe quelle broche, mais je sélectionne PA5 et change son état en GPIO_Output pour le faire fonctionner comme une broche de sortie, comme indiqué dans l'image ci-dessous.
De même, je sélectionne PC13 comme GPIO_Input afin de pouvoir lire l'état de mon bouton-poussoir.
Alternativement, nous pouvons également configurer les broches à partir de l' onglet brochage et configuration, ainsi que montré ci-dessous.
Étape 5: À l'étape suivante, l'utilisateur peut définir la fréquence souhaitée pour le microcontrôleur et les broches en fonction de l'oscillateur externe et interne. Par défaut, un oscillateur à cristal interne de 8 MHz est sélectionné et en utilisant PLL, ce 8 est converti en 48 MHz. Ce qui signifie que par défaut, la carte STM32 ou le microcontrôleur et les broches fonctionneront à 48 MHz.
Étape 6: Maintenant, déplacez-vous dans le gestionnaire de projet et donnez un nom à votre projet, l'emplacement du projet et sélectionnez la chaîne d'outils ou l'EDI. Ici, nous utilisons TrueSTUDIO, j'ai donc sélectionné le même que celui indiqué ci-dessous.
Étape 7: Cliquez maintenant sur la marque Générer le code par le cercle rouge dans l'image ci-dessous.
Étape 8: Vous verrez maintenant une fenêtre contextuelle comme indiqué, puis cliquez sur ouvrir le projet. Mais assurez-vous d'avoir installé TrueSTUDIO avant cette étape.
Programmation de la carte de développement STM32 Nucleo64 à l'aide de TrueSTUDIO
Maintenant, votre code ou projet s'ouvrira automatiquement dans TrueSTUDIO si TrueSTUDIO demande l'emplacement de l'espace de travail, puis fournissez un emplacement de l'espace de travail ou choisissez l'emplacement par défaut.
L'utilisateur verra l'écran ci-dessous, puis devra cliquer sur la marque d'angle en rouge.
Et maintenant, nous pouvons voir le code dans notre IDE TreuSTUDIO. Sur le côté gauche sous le dossier 'src', nous pouvons voir d'autres fichiers de programme (avec l'extension.c) qui ont déjà été générés pour nous à partir de STM32Cube. Il suffit de programmer le fichier main.c. Même dans le fichier main.c, nous aurons déjà peu de choses configurées pour nous par le CubeMX, nous n'avons qu'à le modifier pour l'adapter à notre programme. Le code complet à l'intérieur du fichier main.c est donné au bas de cette page.
Programme STM32 Nucleo64 pour contrôler la LED à l'aide du bouton poussoir
Puisque tout le pilote et le code requis sont générés par STM32CubeMX, nous n'avons qu'à configurer une broche LED comme sortie et un bouton-poussoir comme entrée. Le programme de contrôle de la led à l'aide du bouton poussoir doit être écrit dans le fichier main.c. Le programme complet se trouve au bas de cette page. L'explication en est la suivante
Nous n'avons écrit que du code pour basculer la LED à l'aide du bouton poussoir. Pour ce faire, nous définissons d'abord des broches pour LED et boutons poussoirs. Ici, nous avons défini une LED à la broche 5 numéro de PORTA
#define LED_PORT GPIOA #define LED_PIN GPIO_PIN_5
Et définissez le commutateur à la broche 13 de PORTC.
#define SW_PORT GPIOC #define SW_PIN GPIO_PIN_13
Ensuite, dans la fonction principale, nous avons initialisé tous les périphériques utilisés.
/ * Initialise tous les périphériques configurés * / MX_GPIO_Init (); MX_USART2_Init ();
Et puis lisez le bouton poussoir en utilisant l'instruction if et si trouvé, appuyez sur le bouton (LOW) alors la LED changera son état.
While (1) {/ * USER CODE END WHILE * / If (! HAL_GPIO_ReadPin (SW_PORT, SW_PIN)) {HAL_GPIO_TogglePin (SW_PORT, LED_PIN); HAL_Delay (200); } / * CODE UTILISATEUR DEBUT 3 * /}
Ici, la fonction HAL_GPIO_ReadPin (SW_PORT, SW_PIN) a deux arguments, l'un est PORT et l'autre est une broche à laquelle le commutateur est connecté et cette broche est configurée comme INPUT lors de la configuration du périphérique dans STM32CubeMX.
Débogage et téléchargement de code sur la carte de développement STM32 Necleo64 à l'aide de TrueSTUDIO
Connectez maintenant votre carte à l'ordinateur à l'aide du câble du programmateur. Une fois que vous l'avez connecté, le pilote requis pour la carte devrait être automatiquement téléchargé, vous pouvez le vérifier à l'aide du gestionnaire de périphériques.
Ensuite, appuyez sur l'icône de débogage marquée par le cercle rouge dans l'image ci-dessous pour compiler le programme et entrer en mode débogage.
En mode débogage, le code sera automatiquement téléchargé. Maintenant, nous devons exécuter le code en appuyant sur 'Resume' ou F8 (marqué dans le circuit rouge dans l'image ci-dessous).
Maintenant, nous pouvons tester le contrôle de la LED en appuyant sur le bouton poussoir. Selon le code, la LED doit changer d'état à chaque fois que vous appuyez sur le bouton poussoir. Le travail complet peut également être trouvé dans la vidéo liée au bas de cette page.
Après le test, nous pouvons également terminer le programme en appuyant sur l'icône de fin, marquée par le cercle rouge dans l'image ci-dessous.