LISI2 TP1 Archit Avancée Processeurs 22 23
LISI2 TP1 Archit Avancée Processeurs 22 23
LISI2 TP1 Archit Avancée Processeurs 22 23
/ FISE1A AU 2022/2023
TP1
Initiation à la carte
STM32F407
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.
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…).
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
III- MANIPULATION :
A- STM32CubeMX
Avec la carte STM32, STMicroelectronics fournit un outil logiciel complet, réduisant
considérablement les efforts de développement, le temps et les couts.
Le STM32CubeMX est un outil graphique qui permet une configuration très simple des
microcontrôleurs et la génération du code C d'initialisation correspondante.
• Pour commencer, ouvrir le logiciel STM32CubeMX et créer un nouveau projet comme
il est illustré sur la figure suivante.
.
• Une fois vous avez bien sélectionné la plateforme, cliquez sur l’onglet start Project.
• Vous pouvez réinitialiser la configuration des pines du microcontrôleur en cliquant sur
l’onglet Pinout → Clear Pinouts :
les LED 3, 4, 5 et 6 sont liées respectivement aux Pin PD12, PD13, PD14 et PD15
(vérifier la figure 1). Vous pouvez vérifier les connexions des pines sur la figure
suivante, extraite à partir du datasheet de la plateforme.
• Dans la branche des pins, faire les configurations graphiques suivantes pour PA0, PD12,
PD13, PD14, PD15.
• 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.
A ce stade, nous avons configuré graphiquement tous les pins nécessaires de la plateforme
STM32. La dernière étape, avant de migrer vers a l’environnement de programmation Keil
MDK μ5, consiste à paramétrer les options d’intégration du projet à savoir : le nom du projet,
l’emplacement, l’outil IDE (Toolcchain/IDE) et la version de la bibliothèque utilisée (Firmware
Package). La figure suivante présente les paramètres à introduire dans l’onglet « Project
Settings ».
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.
- Des zones délimitées par les commentaires "/* USER CODE BEGIN ...*/" et "/* USER
CODE END...*/" allouées à l’utilisateur pour ajouter des codes personnalises.
Compiler le code et vérifier s’il y a des erreurs comme le montre la figure suivante.
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
void HAL_GPIO_ReadPin HAL_GPIO_ReadPin (GPIOA, Lit l’état du pin PA0
(GPIO_TypeDef *GPIOx, uint16_t GPIO_PIN_0)
GPIO_Pin)
void HAL_GPIO_WritePin HAL_GPIO_WritePin(GPIOD, Cette fonction éteint
(GPIO_TypeDef *GPIOx, uint16_t GPIO_PIN_12, la led 3 (la variable
GPIO_Pin, GPIO_PinState PinState) GPIO_PIN_RESET) GPIO_PIN_SET
permet de l’allumer)
void HAL_GPIO_TogglePin HAL_GPIO_TogglePin(GPIOD, Permet d’inverser
(GPIO_TypeDef *GPIOx, uint16_t GPIO_PIN_12) l’état de la led 3
GPIO_Pin)