Formations à l'informatique et à l'électronique

Auteur : SD
Créé le : 13-03-2018

Premiers pas avec la carte STM32F412G Discovery

Logo STMicroelectronics Cube CubeMx

Dans ce TP nous allons prendre en main l’environnement de programmation "System Workbench for STM32" et "STM32 Cube".

System Workbench for STM32 est un IDE fonctionnement sous Eclipse.

STM32 Cube32 est un assistant de configuration (comme MCC pour les PIC Microchip).

Présentation

Nous allons utiliser la carte STM32F412G DISCOVERY. Celle-ci est équipée d’un microcontrôleur STM32F412ZGT6 et d’un certain nombre de périphériques (LEDs, Ecran LCD tactile, Joystick, Connecteur pour carte microSD, USB, Microphones, Connecteur Arduino, ...)

STM32F412G_DISCOVERY Top Layout

Pour faciliter le développement, la carte est fournie avec des drivers de plus ou moins haut niveau permettant de piloter les périphériques :

STM32F412G_DISCOVERY Firmware

Connexion à l'ordinateur

La programmation de la carte se fait directement par un cordon USB (pas besoin de programmateur).

Il faut utiliser le connecteur USB CN6 ST-LINK (attention à ne pas confondre avec le connecteur USB OTG situé à l'autre extémité de la carte) :

STM32F412G_DISCOVERY connecteur USB STLINK

Premier projet

Ouvrir le logiciel STM32 CubeMX :

STM32 Logo CubeMx

Cliquer sur New project :

STM32 CubeMx New Project

Sélectionner le type de carte en cliquant sur Discovery => STM32F4 => 32F412GDISCOVERY => Start Project :

STM32 CubeMx Sélection de la carte

A la question "Initialize all peripherals with their default mode ?", répondre Yes :

STM32 CubeMx Initialiser tous les périphériques

Ceci à pour effet de configurer automatiquement tous les périphériques du microcontrôleur de manières à ce que tous les composants présents sur la carte Discovery puissent fonctionner (écran LCD, tactile, joystick, LEDs, ...). Ce n'est pas utile pour ce premier projet mais pour les suivants.

On obtient une vue semblable à celle ci-dessous :

STM32 CubeMx STM32F412G configuré pour carte Discovery

Dans le menu "Project", cliquer sur "Settings..." :

STM32 CubeMx Project Settings

Dans l’onglet "Project", donner un nom au projet et un emplacement, puis sélectionner : Toolchain / IDE : SW4STM32 :

STM32 CubeMx Project Settings Toolchain SW4STM32

Génération automatique du code

Pour terminer, cliquer sur le bouton "Generate source code based on user settings" :

STM32 CubeMx Generate Code

Remarque : Il sera possible de retourner par la suite dans Cube afin d’activer d’autres périphériques ou bien modifier la configuration.

STM32 CubeMx Open Project in IDE

Inclusion des drivers BSP

Le projet créé comprend de nombreux fichiers. Il faut configurer les chemins d’accès pour ajouter les drivers BSP (de plus haut niveau).

STM32 Arborescence projet

Dans l’arborescence du projet, créer un dossier "BSP" dans le dossier "Drivers" :

STM32 Arborescence projet Nouveau Dossier

De la même manière, dans le dossier "BSP", créer un dossier "STM32412G-Discovery" et un dossier "Components".

Vous devez obtenir l'arborescence ci-dessous :

STM32 Arborescence projet Nouveau Dossier

Depuis l’explorateur, faire glisser les fichiers "stm32412g_discovery.c" et "stm32412g_discovery.h" dans le dossier "STM32412G-Discovery" de l’arborescence du projet :

STM32 Arborescence projet Ajout Driver BSP

Sélectionner "Copy files" et cliquer sur "OK" :

STM32 Arborescence projet Ajout fichier confirmation

Ajout du dossier "Drivers/BSP/STM32412G-Discovery" aux "Paths"

Faire un clic droit sur le nom du projet et cliquer sur "Properties" :

STM32 Propriétés Projet

Dans "C/C++ General / Path and Symbols", cliquer sur l’onglet "Includes" puis sur le bouton "Add" :

STM32 Path And Symbol

Ajouter le chemin comme indiqué sur la capture d’écran ci-dessous :

STM32 Add Path BSP

Cliquer sur "OK" pour terminer :

STM32 Paths Symbols BSP

La création du projet est maintenant terminée.

Le traditionnel BLINK

Comme se veut la tradition, nous allons commencer par faire clignoter une LED.

Ajouter les morceaux de code encadrés ci-dessous à votre "main" :

STM32 Blink Main partie 1


STM32 Blink Main partie 2

Remarques :

STM32 Eclipse Assistant Saisie

Compiler et exécuter le programme :

STM32 Executer Programme

Si une boite de dialogue intitulée "Complete Board Definition" apparaît, choisir "SWD" dans la liste et cliquer sur "OK".

STM32 Debug Interface SWD

La LED verte doit s'allumer et la LED bleue doit clignoter.

En cas de problème, consulter la page "STM32 frequently encountered bugs".

Utilisation du port série sur port USB à destination du PC

Ajouter le morceau de code entouré ci-dessous à votre fichier "main.c", rechercher dans la fonction "MX_USART2_UART_Init()" (CTRL + clic sur la fonction pour accéder directement à sa définition) appelée au début de "main.c" afin de configurer correctement Putty.

STM32 Main.c utilisation de l'UART

Tester le bon fonctionnement.

Télécharger le code source de cet article sur github.

La première partie de ce TP est terminée. Dans la deuxième partie, nous allons voir comment utiliser l'afficheur LCD et le joystick de la carte STM32F412G Discovery.


Vous avez apprécié cet article ? Partagez le !