I S
NSTITUT UPÉRIEUR DES S I
YSTÈMES NDUSTRIELS DE G ABÈS
Fascicule de Travaux
pratiques
Réseaux locaux de communication
ELABORÉ PAR :
Mabrouka Gmiden
ANNÉE UNIVERSITAIRE
2021/2022
TP Réseaux locaux de communication ISSIG/2021-2022 Mabrouka Gmiden
TP N°1
I. Objectifs
Le but de ce TP est de se familiariser avec le processeur STMicroelectronics Cortex ™ -M4 et de
maitriser le logiciel STM32CubeIDE.
II. Introduction
STM32F4
Les microcontrôleurs (microC, uc et MCU), sont des ordinateurs minimalistes comme les cartes
Arduino. Ils possèdent de nombreux canaux de transmission appelés BUS (UART, I2C ou SPI).
Ces BUS permettent de commander des actionneurs, communiquer avec des capteurs voire
échanger avec d'autres microcontrôleurs. Ainsi les MCU sont fréquemment utilisés pour les
robots :), mais aussi dans tous les systèmes embarqués. Par exemple dans l’automobile,
l'aviation, les télécommandes, les jouets, la téléphonie mobile, etc.
1
TP Réseaux locaux de communication ISSIG/2021-2022 Mabrouka Gmiden
STM32CubeIDE
Les MCU ne possèdent pas de système d’exploitation . De ce fait, les programmes au sein de
MCU sont souvent codés, compilés puis téléversés par un ordinateur extérieur.
STM32CubeIDE est une plate-forme de développement C/C++ avancée avec des fonctionnalités
de configuration périphérique, de génération de code, de compilation de code et de débogage
pour les microcontrôleurs et microprocesseurs STM32. Il est basé sur le frameworkn
ECLIPSE™/CDT et la chaîne d'outils GCC pour le développement, et GDB pour le débogage. .Il
permet :
GPIO signifie General Purpose Input Output, il s'agit donc des entrées et des sorties des pins de
votre carte. En output, il peut vous permettre d'activer (Enable) un pin d'un de vos composants
ou bien d’allumer une LED. En input, il peut permettre de détecter l'état d'un composant
extérieur par exemple celui d'un bouton poussoir.
2
TP Réseaux locaux de communication ISSIG/2021-2022 Mabrouka Gmiden
• HAL_GPIO_ReadPin(gpio-port, gpio-pin)
• HAL_GPIO_TogglePin(gpio-port, gpio-pin)
a Création de projet
• Cliquer sur
3
TP Réseaux locaux de communication ISSIG/2021-2022 Mabrouka Gmiden
4
TP Réseaux locaux de communication ISSIG/2021-2022 Mabrouka Gmiden
Cliquer
Dans la fenêtre suivante, choisir un nom de projet (ici, on prend le nom Test_LED) :
Test-LED
Cliquer enfin
Une fenêtre s'ouvre alors. Elle permet d'initialiser les périphériques internes dans leur mode par
défaut. Ceci est préférable, dans la mesure où les pattes utilisées par la carte seront ainsi
référencées.
Cliquer
5
TP Réseaux locaux de communication ISSIG/2021-2022 Mabrouka Gmiden
6
TP Réseaux locaux de communication ISSIG/2021-2022 Mabrouka Gmiden
7
TP Réseaux locaux de communication ISSIG/2021-2022 Mabrouka Gmiden
c Configuration de clock
Basculez vers l'onglet Project Manager (Gestionnaire de projets) pour configurer le projet. Dans
l'onglet Projet :
• Vérifiez le nom du projet et l’emplacement du projet
• Vérifiez que le Toolchain/IDE sélectionné est STM32CubeIDE.
8
TP Réseaux locaux de communication ISSIG/2021-2022 Mabrouka Gmiden
Dans l'onglet Générateur de code, assurez-vous que les options suivantes sont cochées :
• Dans la section STM32Cube Firmware Library Package : Copiez toutes les
bibliothèques utilisées dans le dossier du projet.
• Dans la section Fichiers générés : conservez le code utilisateur lors de la régénération
de l'option de code C, qui s'applique uniquement aux sections utilisateur dans les
fichiers générés STM32CubeMX.
9
TP Réseaux locaux de communication ISSIG/2021-2022 Mabrouka Gmiden
10
TP Réseaux locaux de communication ISSIG/2021-2022 Mabrouka Gmiden
Dans STM32CubeIDE, à partir de l'onglet Explorateur de projet, ouvrez le fichier main.c, dans
le dossier Src et ajoutez les fonctions adéquates pour le clignotement de la LED, en utilisant les
fonctions HAL.
Le code utilisateur peut être ajouté dans le fichier main.c, à l'intérieur de la boucle while (1) entre
les sections /* USER CODE BEGIN 3 */ et /* USER CODE END 3 */ (cela conservera votre
code après régénération).
Commande d’une LED
Pour alimenter une LED, nous allons utiliser la fonction HAL_GPIO_WritePin (GPIOx,
GPIO_Pin, PinState) entre les balises /* USER CODE BEGIN 2 */ et /* USER CODE END 2 */.
Cette fonction permet de commander l'état d'un port GPIO en OUTPUT.
Le premier argument correspond à la famille du GPIO qui correspond à une lettre par exemple
GPIOA, GPIOB et etc. Le second argument correspond au numéro du GPIO. Le troisième
correspond à l'état haut ou bas du GPIO. Vous pouvez entrer 1 ou 0 ou bien les constantes SET
ou RESET pour plus lisibilité.
11
TP Réseaux locaux de communication ISSIG/2021-2022 Mabrouka Gmiden
f Build/Construire le projet
Pour alimenter la carte, utilisez son connecteur CN1 pour vous connecter à un ordinateur via un
câble USB Type-A.
Cliquez sur le projet depuis l'explorateur de projet, puis faites un clic droit et sélectionnez Build
Project, pour compiler le projet (ou cliquez sur le bouton Build de la barre d'outils).
g Déboguer le projet
Cliquez sur Debug >> Debug configuration de la barre d'outils et vérifier les paramètres de
débogage suivants puis cliquez sur Debug
12
TP Réseaux locaux de communication ISSIG/2021-2022 Mabrouka Gmiden
Cliquer sur Run pour executer le programme et regardez maintenant la LED Bleu allumée sur la
carte STM32F4.
13
TP Réseaux locaux de communication ISSIG/2021-2022 Mabrouka Gmiden
Dans cet exercice on va commander la LED avec le bouton poussoir PA0. Lorsque on appuie
une fois sur le bouton, la LED PD15 clignote et lorsque l'on appuie une seconde fois elle
s'éteint.Pour notre application, nous allons utiliser les fonctions indiquées dans la section HAL
GPIO Functions
14