Vous êtes sur la page 1sur 13

TP3 : Initiation a STM32-Discovery

1 Objectif
1. Créer un projet Keil,
2. Configurer le microcontrôleur cible,
3. Manipuler les API destinées aux GPIO,

2 Création d’un projet


1. Démarrer le programme µVision ,
2. Sélectionner le menu Project, Puis la commande New µVision project,

,
3. Choisir un nom et un répertoire pour le projet,
4. Choisir la cible STM32F407VGTx

,
5. Une fois la cible choisie, la fenêtre «Manage Run-Time Environnement » s’ouvre
automatiquement. Elle permet de configurer la plateforme des composants logiciels qui seront
utilisés dans le projet.

Tout programme doit avoir des instructions de démarrage, pour cela il faut cocher « Startup »
sous « Device » (voir figure suivante).
TP0 – UE : Processeurs & Calculateurs embarqués

La couleur orange signifie que d’autres composants softwares sont nécessaires. Ils sont affichés
dans la fenêtre « Validation Output ». (Voir figure précédente).

Il suffit alors d’appuyer sur le bouton « Resolve » pour ajouter automatiquement les composants
manquants. Une fois tous les composants nécessaires sont ajoutés et la couleur de la colonne
« selection » devient verte (voir figure suivante), il suffit d’appuyer sur le bouton « OK » pour
valider l’ajout.

6. Les composants qui ont été ajoutés automatiquement sont affichés dans l’arborescence de la
fenêtre du projet sous des losanges verts.

© 2020, Ecole Supérieure des Communications de Tunis Page 2 sur 13


TP0 – UE : Processeurs & Calculateurs embarqués

7. Faire un double clic sur le fichier assembleur « startup_stm32f407xx.s » pour avoir la


possibilité de modifier en mode texte le contenu de celui-ci. L’environnement offre aussi la
possibilité de modifier le contenu avec une interface « wizard ».

Cliquer sur « configuration Wizard » puis sur « expand all », pour visualiser toutes les options de
configuration.

Il est possible de changer la taille de la mémoire « Heap » et la taille de la pile d’exécution.

Pour les besoins du projet, garder les valeurs affichées par défaut.

© 2020, Ecole Supérieure des Communications de Tunis Page 3 sur 13


TP0 – UE : Processeurs & Calculateurs embarqués

Le fichier « System_stm32f4xx.c » contient le code en C pour l’initialisation des périphériques


systèmes, tels que l’horloge, l’interface PLL …

8. Sous le menu « Project » -> « Manage » -> « Run-Time Environment », sélectionner « LED
API » et il est important de préciser la board « STM32F4-Discovery » (voir figure suivante).

Cliquer sur « Resolve » et cocher « Classic » sous « STM32Cube Framework (API) » (voir
figure suivante) puis sur « OK ».

© 2020, Ecole Supérieure des Communications de Tunis Page 4 sur 13


TP0 – UE : Processeurs & Calculateurs embarqués

9. Tous les fichiers nécessaires à l’abstraction (HAL : Hardware Abstraction Layer) des GPIO de la
carte de développement sont ajoutés automatiquement au projet.

10. Cliquer sur Target 1 et changer son nom à « Discovery » pour mieux indiquer aux autres
utilisateurs le type de la cible. Cliquer avec le bouton droit de la souris sur ce nouveau dossier
« Discovery » et sélectionner « Add Group ». Renommer les deux dossiers sous « Discovery »
par « Sources » et « Headers ». Le résultat est affiché dans la figure suivante.

© 2020, Ecole Supérieure des Communications de Tunis Page 5 sur 13


TP0 – UE : Processeurs & Calculateurs embarqués

11. Cliquer, avec le bouton droit de la souris, sur le répertoire « Sources», et choisir « Add new
item to Groupe Sources ».

Une nouvelle fenêtre s’ouvre, dans laquelle il faut sélectionner l’icône « User code template ». Dans
la section « Device », choisir « STM32Cube Frame : Classic » « ‘main’ module for STM32Cube » et
cliquer sur « Add ».

© 2020, Ecole Supérieure des Communications de Tunis Page 6 sur 13


TP0 – UE : Processeurs & Calculateurs embarqués

Un fichier “main.c” s’ajoute au répertoire “sources” du projet.

12. Cliquer avec le bouton droit de la souris sur le dossier « Header » puis « Add Existing Files to
Group ‘Headers’ (voir figure suivante).

Puis sélectionner le ficher « main.h »

© 2020, Ecole Supérieure des Communications de Tunis Page 7 sur 13


TP0 – UE : Processeurs & Calculateurs embarqués

A ce niveau le projet peut être compilé sans erreurs. Lancer “build project” en appuyant sur la touche
F7.

13. Une fois la compilation réussie. Aller sur sous l’onglet «{} Functions » et vérifier les fonctions
disponibles pour manipuler les IOs disponibles sur la carte d’évaluation. Faire un double clic
sur chacune de ces fonctions pour lire le code C de celles-ci.
NB : Parfois il faut redémarrer le projet pour rafraichir la fenêtre (voir figure suivante).

© 2020, Ecole Supérieure des Communications de Tunis Page 8 sur 13


TP0 – UE : Processeurs & Calculateurs embarqués

14. Dans le fichier « main.c » vers la ligne 43, cliquer sur le bouton droit de la souris et
sélectionner « Insert » include file’ » puis « Board_LED.h ».

Pour avoir le résultat suivant :

15. Une fois le ficher « Board_LED.h » qui contient les déclarations des APIs énumérées dans le
point 13 est ajouté, il est possible de faire appel à ces fonctions dans la suite du fichier
« main.c ». Pour pouvoir utiliser les LEDs, il faut tout d’abord les initialiser. Pour cela, aller vers
la ligne 108 du fichier « main.c » taper « led » et une liste de suggestions apparaitra
automatiquement. Puis choisir « LED_Initialize » :

Pour aboutir à :

© 2020, Ecole Supérieure des Communications de Tunis Page 9 sur 13


TP0 – UE : Processeurs & Calculateurs embarqués

16. Une fois les IOs qui pilotent les LEDs sont initialisées, il est possible de faire appel aux fonctions
qui allument et éteignent les LEDs.
Vers la ligne 116, ajouter 4 appels de fonction « LED_ON() » en indiquant 0,1,2,3 comme
paramètres. Ceci permettra d’allumer les 4 LEDS de la carte avant d’aller dans une boucle
infinie. En appuyant sur la touche F7 le projet doit compiler sans erreurs.

17. Cliquer sur l’icône « options for target » , ensuite sur l’onglet « Debug » afin de
configurer les options de la carte cible sur laquelle le programme sera exécuté. Cette fenêtre
fait apparaître deux options de test : par simulation (à gauche), ou par émulation (à droite), en
utilisant la carte STM32F407VG. En s’intéressant à l’option émulation (à droite), cocher le
bouton « use » et sélectionner « ST-Link Debugger ».

© 2020, Ecole Supérieure des Communications de Tunis Page 10 sur 13


TP0 – UE : Processeurs & Calculateurs embarqués

Cliquer sur le bouton « Settings » et vérifier, sous l’onglet « Debug », que le port utilisé et de type
« SW », sinon le changer.

Cliquer sur l’onglet « Flash Download » de la même fenêtre, et vérifier que la taille de la mémoire Flash
de la cible est de 1 M on Chip.

© 2020, Ecole Supérieure des Communications de Tunis Page 11 sur 13


TP0 – UE : Processeurs & Calculateurs embarqués

Cliquer sur l’onglet C/C++ et ajouter le macro « HSE_VALUE=8000000 » qui indique la fréquence du
Crystal installé sur la carte à la fonction « SystemClock_Config(); » qui se trouve par défaut dans le
« Template » du « main.c »

Cliquer sur « OK » pour valider les options de configuration du Debugger choisies, ensuite sous le menu
« Debug » de l’environnement, sélectionner « start/stop Debug Session » (ou utiliser Ctr + F5).

Le programme est chargé dans la carte cible, et un point d’arrêt est placé au niveau de la fonction
main().

© 2020, Ecole Supérieure des Communications de Tunis Page 12 sur 13


TP0 – UE : Processeurs & Calculateurs embarqués

Exécuter le programme avec le bouton run( ou la touche F5). Une fois le programme est lancé la
fonction main initialise les LEDs puis les met à ‘1’ avant de finir dans une boucle while(1) infinie.

3 Travail demandé
1. De la même manière que le point 11 ajouter les fichiers .c et .h qui gèrent les « Exception
Handlers and Peripherals IRQ »
2. De la même manière que le point 13 trouver le rôle de la fonction « HAL_delay() » qui se
trouve sous le fichier « STM32F4xx_HAL.c »
3. A l’aide d’une boucle « for » à l’intérieure de la boucle « while » infinie faire clignoter les
LEDs à tour de rôle.

© 2020, Ecole Supérieure des Communications de Tunis Page 13 sur 13

Vous aimerez peut-être aussi