Académique Documents
Professionnel Documents
Culture Documents
Plan
1- Installation de l’environnement
2- Présentation de la carte STM32F407
3- Manipulation des GPIOs
I- Installation de l’environnement
Dans ce TP, nous envisageons configurer la carte STM32f407VGTi-discovery-kit afin
d’explorer toute l’architecture du SoC integré. Pour cela, nous avons besoin d’un
environnement de développement complet
1- STM32CubeMX et STM32CubeF4
Cet outil permet configurer les composants de la carte ainsi que les différents paramètres (les
pins d’E/S, l’horloge….). Après la configuration, cet outil permet de générer un code
C incluant un certain nombre de fonctions de la bibliothèque HAL. Pour cette raison
l’installation de l’environnement contenant les fonctions de cette bibliothèque est
indispensable. Il s’agit de l’environnement STM32CubeF4.
Pour installer le STM32CubeMX et le STM32CubeF4, visiter la page :
https://www.st.com/content/st_com/en.html (Pour le STM32CubeMX, installer une version
supérieure à 4.15 )
Après avoir installé STM32CubeMX, ouvrir cet outil puis taper l’onglet « help » puis «
manage embedded software packages » (ou dans quelques version antérieure « install
packages ») .Appuyer sur « from local » situé en bas. Puis sélectionner le chemin dans lequel
vous avez placé le fichier de STMCubeF4_Vxxx.zip. Ceci permettra de charger le contenu de
la bibliothèque HAL dans un répertoire « repository ». Noter le chemin de ce répertoire, vous
allez en servir plus tard.
2-
Keil uvision 5
Cet outil permet d’éditer le code qui va tourner sur la carte STM32. Après avoir configuré la
carte dans l’environnement graphique STM32CubeMX, il est possible d’ouvrir le code généré
par STM32CubeMX et d’y ajouter le code qui décrit le fonctionnement qui va être effectué
sur la carte Discovery f4. Par exemple dans STM32CubeMX, il est possible de définir si un
port servira d’Input ou Output, dans l’environnement Keil, il est possible de décrire les
fonctions relatives à l’utilisation de ce port (lecture, écriture, condition…).
L’installation de Keil uvis ion5 est effectuée à
travershttps://www.st.com/content/st_com/en.html
Une fois installé et lancé, ouvrir le « pack installer » et sélectionner le pack de la carte
stm32f407VGTx pour l’installer comme le montre la figure suivante. Ceci permettra à l’outil
Keil de reconnaitre les composants de cette carte.
Pour vérifier si ce pack a été bien installé ou pas. Créer un nouveau projet dans Keil. Vérifier
la présence du menu « STmicroelectronics » tout comme le menu « ARM »
3- ST_link
Cet environnement peut être téléchargé à partir du site
dehttps://www.st.com/content/st_com/en.html.
Il permettra de configurer la carte STM32 et de lancer la session de débogage.
II- Présentation de la carte STM32F407
L’objectif de ce TP est de se familiariser avec la carte STM32f407 (Fig. 1) et ces
périphériques. La famille des microprocesseurs STM32f4 de ST Microelectronics fournit une
vaste gamme de périphériques autour d’un cœur ARMRCortexR-M4 32-bit. Dans ce TP, on
considère la carteSTM32f407VG illustrée par la figure 1. Les caractéristiques et les
fonctionnalités de cette carte sont accessibles depuis ses 100 ports broches (Pins) ainsi que
d’autres périphériques de liaisons, allant des simples GPIOs et des interfaces de
communication série synchrone (SPI) ou asynchrone (RS232) jusqu’aux interfaces plus
complexes comme l’USB, l'Ethernet et le HDMI, etc.
Nous allons nous intéresser précisément, à ses entrées/sorties générales (LED, Bouton
poussoir…) et quelques fonctionnalités possibles notamment les fonctions d’interruption.
Pour y faire, nous allons exploiter certaines sections de la datasheet de la plateforme présentée
(Fig. 1) afin d’acquérir le nécessaire pour mener à bien cette manipulation.
Avec la configuration des entrées/ sorties, nous aurons besoin de sélectionner un type
d’horloge pour notre microcontrôleur, sous l’onglet RCC, sélectionner le type
Crystal/Ceramic Resonator.
Apres la réussite de la génération du code par STM32CubeMX, appuyer sur « Open Project
»ceci permet d’ouvrir le code généré dans l’environnement keil uvision 5.
B- Keil MDK uvision
Keil MDK est un environnement complet de développement de logiciels pour une large
gamme de microcontrôleurs a bras Cortex-M. MDK comprend le μVision IDE et le
débogueur, le compilateur Arm C / C ++ et les composants essentiels du middleware. Il
contient également de nombreux exemples pratiques prêts à exécuter pour les cartes utilisant
des processeurs ST. Le code généré par STM32CubeMX est ouvert dans Keil. Sous le fichier
Application/Userouvrir le sous-fichier Main.c. Le code (Main.c) contient les fonctions
suivantes:
-l’entête du fichier (nom du programme, la bibliothèque utilisée), exemple :
/* Includes ------------------------------------------------------------------*/
#include « main.h »
#include « stm32f4xx_hal.h »
- les fonctions de configuration équivalentes à la configuration graphique réalisée sur
STM32CubeMX, exemple
5- Lancer une session de débogage et exécuter le code sur la carte en appuyant sur « run»
comme le montre la figure suivante
Noter que la zone A représente la traduction en assembleur du code C situé dans la zone B.
Finalement la zone C représente l’état des registres internes du processeur CortexM4 situé
dans la carte
6- Fermer la session de débogage et modifier le code C de telle sorte que la LED bleue
du kit s’allume lorsqu’on appuie sur le bouton User. La lumière s’éteint lorsqu’on
relâche le bouton.
Annexe
Fonction Exemple Description
HAL_GPIO_ReadPin Lit l’état du pin PA0
void HAL_GPIO_ReadPin (GPIOA,GPIO_PIN_0)
(GPIO_TypeDef *GPIOx,
uint16_tGPIO_Pin)
HAL_GPIO_WritePin Cette fonction éteint
void HAL_GPIO_WritePin (GPIOD, la led 3 (la variable
(GPIO_TypeDef *GPIOx, uint16_t GPIO_PIN_12, GPIO_PIN_SET
GPIO_Pin, GPIO_PinState PinState) GPIO_PIN_RESET) permet de l’allumer)