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).
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, ...)
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 :
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) :
Ouvrir le logiciel STM32 CubeMX :
Cliquer sur New project :
Sélectionner le type de carte en cliquant sur Discovery => STM32F4 => 32F412GDISCOVERY => Start Project :
A la question "Initialize all peripherals with their default mode ?", répondre Yes :
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 :
Dans le menu "Project", cliquer sur "Settings..." :
Dans l’onglet "Project", donner un nom au projet et un emplacement, puis sélectionner : Toolchain / IDE : SW4STM32 :
Pour terminer, cliquer sur le bouton "Generate source code based on user settings" :
Remarque : Il sera possible de retourner par la suite dans Cube afin d’activer d’autres périphériques ou bien modifier la configuration.
Le projet créé comprend de nombreux fichiers. Il faut configurer les chemins d’accès pour ajouter les drivers BSP (de plus haut niveau).
Dans l’arborescence du projet, créer un dossier "BSP" dans le dossier "Drivers" :
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 :
Depuis l’explorateur, faire glisser les fichiers "stm32412g_discovery.c" et "stm32412g_discovery.h" dans le dossier "STM32412G-Discovery" de l’arborescence du projet :
Sélectionner "Copy files" et cliquer sur "OK" :
Faire un clic droit sur le nom du projet et cliquer sur "Properties" :
Dans "C/C++ General / Path and Symbols", cliquer sur l’onglet "Includes" puis sur le bouton "Add" :
Ajouter le chemin comme indiqué sur la capture d’écran ci-dessous :
Cliquer sur "OK" pour terminer :
La création du projet est maintenant terminée.
Comme se veut la tradition, nous allons commencer par faire clignoter une LED.
Ajouter les morceaux de code encadrés ci-dessous à votre "main" :
Remarques :
Compiler et exécuter le programme :
Si une boite de dialogue intitulée "Complete Board Definition" apparaît, choisir "SWD" dans la liste et cliquer sur "OK".
La LED verte doit s'allumer et la LED bleue doit clignoter.
En cas de problème, consulter la page "STM32 frequently encountered bugs".
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.
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.