Catégorie:STM32 : Différence entre versions

De Wiki L.A.B
Aller à : navigation, rechercher
(Les ateliers STM32)
Ligne 41 : Ligne 41 :
  
 
= Les ateliers STM32 =
 
= Les ateliers STM32 =
 +
Démarrer un premier programme “blinky”.
 +
Création du projet par STM32CubeMx
 +
On va utiliser “STM32CubeMx” pour générer le canevas de source code: Dans “STM32CubeMx”, il faut exécuter “New Project”.
 +
Dans la boîte de dialogue, il faut choisir l’onglet “Board Selector”. Le “Type of Board” et “MCU Series” doivent correspondre à la carte connectée.
 +
Dans le champs “Boards List:”, on choisit la carte connectée en double cliquant.
 +
 +
Pour la suite du tutoriel, on va travailler sur la carte “Nucleo32” de référence “NUCLEO-F303K8”.
 +
Sur cette carte, il y a une LED connecté sur le pin “PB3” (appellation de STM32) correspondant au pin D13 du connecteur arduino.
 +
 +
Dans l’onglet “Pinout”, il faut cliquer dans le dessin du chip sur la broche “PB3”. Dans le menu, il faut sélectionner “GPIO_Output”. La broche change la couleur “en vert”.
 +
 +
Dans le menu “Project” -> “Settings…”, on ouvre la boîte de dialogue “Project Settings” et on saisi un nom de projet (“Project Name”) et le répertoire (“Project Location”). Avec le bouton “Browse”, on choisit le répertoire “workspace”, qu’on avait spécifier dans eclipse. Dans la list “Toolchain / IDE” il faut choisir le “SW4STM32” (très important!!!). On ferme le dialogue par “OK”.
 +
A la première utilisation de STM32CubeMx, il n’y a pas encore tout les sources des firmware packages. Ainsi il nous propose de les télécharger de st.com.
 +
 +
Avec le menu “Project” -> “Generate Code…”, on peut faire générer le code de base. Dans la boîte de dialogue “Code Generation”, on peut cliquer sur “Open Project” pour la visualisation dans eclipse.
 +
Développement du source code dans eclipse
 +
Le projet “Blinky” contient les répertoires “Drivers”, “Inc”, “Src” et “startup”. Il faut ouvrir “main.c” du répertoire “Src”.
 +
Dans la fonction “void main(void)”, on trouve trois appel de fonction “HAL_Init( )”, “SystemClock_Config()” et “MX_GPIO_Init()” nécessaire pour l’initialisation du système.  Après, il y a une boucle infini, ou on peut ajouter son propre code, par exemple:
 +
while (1)
 +
{
 +
  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, 1 );        // LED on PB3 ON
 +
  HAL_Delay(500);                                  // wait 500 milli seconds
 +
  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, 0 );        // LED on PB3 OFF
 +
  HAL_Delay(500);                        // wait 500 milli seconds
 +
}
 +
 +
Compilation
 +
Avec le menu “Project” -> “Build Project”, on peut faire compiler le projet. Eclipse va utiliser la toolchain “GNU Tools ARM Embedded” pour la compilation.
 +
Débogage
 +
Avec le menu “Run” -> “Debug”, on peut déboguer le projet. Dans la boîte de dialogue “Debug As” il faut choisir “Ac6 STM32 C/C++ Application”. Eclipse va utiliser OpenOCD et STLink pour communiquer au micro contrôleur. Avec les fonctionnalités de debug, on peut avancer pas à pas sur le code et voir la LED s’allumer et s'éteindre. Le “Resume (F8)” va exécuter le code sans intervention supplémentaire de l’IDE et donc la LED va clignoter...

Version du 4 août 2017 à 05:18

Les microcontrôleurs STM32

Les familles de microcontrôleurs STM32

Il existe plusieurs familles de microcontrôleurs STM32, classés selon leur cœur ARM

Cœur ARM Famille de STM32
Très faible consommation Usages généraux Hautes performances
Cortex M0 STM32F0
Cortex M0+ STM32L0
Cortex M3 STM32L1 STM32F1 STM32F2
Cortex M4 STM32F3
STM32L4 STM32F4
Cortex M7 STM32F7


http://www.st.com/en/microcontrollers/stm32-32-bit-arm-cortex-mcus.html

Les cartes de prototypages proposées par ST

STMicroelectronics propose toute une gamme de cartes de prototypage pour diverses applications et différents microcontrôleurs STM32.

Les cartes "Discovery"

Historiquement, les “discovery boards” étaient développées pour montrer aux clients les possibilités du microcontrôleur STM32.
De nombreuses cartes (de couleur verte) embarquent des composants supplémentaires (par exemple un accéléromètre) pour montrer leur fonctionnement et leur mise en œuvre.

Les cartes "Nucleo"

Les cartes de la gamme “nucleo” (de couleur blanche), sont en général (pour la gamme nucleo 64) équipés des connecteurs compatibles “arduino shield”.
Ainsi un grand nombre de "shields arduino" peuvent être utilisés avec ces cartes.

les cartes "Eval-boards"

Ces cartes (de couleur verte) ont été développées pour le marché professionnel.
Ces cartes embarquent en général de très nombreux composants électroniques supplémentaires. Elles sont souvent assez chères.

Introductions aux ateliers STM32

Les ateliers STM32

Démarrer un premier programme “blinky”. Création du projet par STM32CubeMx On va utiliser “STM32CubeMx” pour générer le canevas de source code: Dans “STM32CubeMx”, il faut exécuter “New Project”. Dans la boîte de dialogue, il faut choisir l’onglet “Board Selector”. Le “Type of Board” et “MCU Series” doivent correspondre à la carte connectée. Dans le champs “Boards List:”, on choisit la carte connectée en double cliquant.

Pour la suite du tutoriel, on va travailler sur la carte “Nucleo32” de référence “NUCLEO-F303K8”. Sur cette carte, il y a une LED connecté sur le pin “PB3” (appellation de STM32) correspondant au pin D13 du connecteur arduino.

Dans l’onglet “Pinout”, il faut cliquer dans le dessin du chip sur la broche “PB3”. Dans le menu, il faut sélectionner “GPIO_Output”. La broche change la couleur “en vert”.

Dans le menu “Project” -> “Settings…”, on ouvre la boîte de dialogue “Project Settings” et on saisi un nom de projet (“Project Name”) et le répertoire (“Project Location”). Avec le bouton “Browse”, on choisit le répertoire “workspace”, qu’on avait spécifier dans eclipse. Dans la list “Toolchain / IDE” il faut choisir le “SW4STM32” (très important!!!). On ferme le dialogue par “OK”. A la première utilisation de STM32CubeMx, il n’y a pas encore tout les sources des firmware packages. Ainsi il nous propose de les télécharger de st.com.

Avec le menu “Project” -> “Generate Code…”, on peut faire générer le code de base. Dans la boîte de dialogue “Code Generation”, on peut cliquer sur “Open Project” pour la visualisation dans eclipse. Développement du source code dans eclipse Le projet “Blinky” contient les répertoires “Drivers”, “Inc”, “Src” et “startup”. Il faut ouvrir “main.c” du répertoire “Src”. Dans la fonction “void main(void)”, on trouve trois appel de fonction “HAL_Init( )”, “SystemClock_Config()” et “MX_GPIO_Init()” nécessaire pour l’initialisation du système. Après, il y a une boucle infini, ou on peut ajouter son propre code, par exemple: while (1) {

  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, 1 );         // LED on PB3 ON
  HAL_Delay(500);                                   // wait 500 milli seconds
  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, 0 );         // LED on PB3 OFF
  HAL_Delay(500);                        // wait 500 milli seconds

}

Compilation Avec le menu “Project” -> “Build Project”, on peut faire compiler le projet. Eclipse va utiliser la toolchain “GNU Tools ARM Embedded” pour la compilation. Débogage Avec le menu “Run” -> “Debug”, on peut déboguer le projet. Dans la boîte de dialogue “Debug As” il faut choisir “Ac6 STM32 C/C++ Application”. Eclipse va utiliser OpenOCD et STLink pour communiquer au micro contrôleur. Avec les fonctionnalités de debug, on peut avancer pas à pas sur le code et voir la LED s’allumer et s'éteindre. Le “Resume (F8)” va exécuter le code sans intervention supplémentaire de l’IDE et donc la LED va clignoter...

Pages dans la catégorie « STM32 »

Cette catégorie contient 4 pages, dont les 4 ci-dessous.