Introduction Debogueur Arduino
Premiers pas avec STM32 Nucleo dans Arduino IDE - LED clignotante
premiers_pas_avec_stm32_nucleo_dans_arduino_ide_-_led_clignotante.pdf
Via un câble USB connecté sur CN1
Ajouter la bibliothèque de cartes complémentaires dans “préférences” Ajouter ce lien dans “Additional Boards Managers URLs”:
https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json
Au 21/01/2024, note de JPD : Il existe peut être une autre méthode pour transférer un programme fait depuis Arduino IDE dans la carte STM32 nucléo, mais à aujourd’hui, je n’ai essayé qu’avec l’upload via STM32CubeProgrammer.
Cette application est très probablement utilisée en arrière plan pour compiler et/ou transférer le programme. C’est masqué, il suffit juste d’installer STM32CubeProg sur le PC où Arduino IDE est utilisé. Attention à bien l’installer à l’emplacement par défaut, sinon j’ai cru lire qu’il fallait ajouter manuellement le lien dans un fichier (lequel ??).
Lien site STM32 : https://www.st.com/en/development-tools/stm32cubeprog.html#get-software
Dans Arduino IDE2, choisir la carte et vérifier les méthodes d’UpLoad :
Choisir Generic STM32F3Series dans Board :
Dans les nouveaux sous-menu dans Tools, Choisir la carte F334R8Tx :
Dans Upload method : “STM32CubeProgrammer (SWD)”
Pour piloter la led intégrée qui est connue comme “D13” sur Arduino, il faut sur la carte STM32334R8, piloter la sortie “PA5”, ou “PA_5” comme illustré dans le tableau de correspondance ci-dessous :
L'alimentation électrique est fournie soit par le PC hôte via le câble USB, soit par une source externe.
source externe : broches d'alimentation VIN (de 7 V à 12 V), E5V (5 V) ou +3,3V sur CN6 ou CN7. Dans le cas où VIN, E5V ou +3.3V est utilisé pour alimenter la carte STM32 Nucleo, l'utilisation d'un bloc d'alimentation externe ou d'un équipement auxiliaire est nécessaire.
d'alimentation externe ou d'un équipement auxiliaire, cette source d'alimentation doit être conforme à la norme EN-60950-1 : 2006+A11/2009, et doit être de type Safety Extra Low Voltage (SELV) avec une capacité de puissance limitée.
/* Blink without Delay Turns on and off a light emitting diode (LED) connected to a digital pin, without using the delay() function. This means that other code can run at the same time without being interrupted by the LED code. The circuit: - Use the onboard LED. - Note: Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to the correct LED pin independent of which board is used. If you want to know what pin the on-board LED is connected to on your Arduino model, check the Technical Specs of your board at: https://www.arduino.cc/en/Main/Products created 2005 by David A. Mellis modified 8 Feb 2010 by Paul Stoffregen modified 11 Nov 2013 by Scott Fitzgerald modified 9 Jan 2017 by Arturo Guadalupi This example code is in the public domain. https://www.arduino.cc/en/Tutorial/BuiltInExamples/BlinkWithoutDelay */ // constants won't change. Used here to set a pin number: const int ledPin = PA5; // the number of the LED pin OR PA_5 // Variables will change: int ledState = LOW; // ledState used to set the LED // Generally, you should use "unsigned long" for variables that hold time // The value will quickly become too large for an int to store unsigned long previousMillis = 0; // will store last time LED was updated // constants won't change: const long interval = 1000; // interval at which to blink (milliseconds) void setup() { // set the digital pin as output: pinMode(ledPin, OUTPUT); } void loop() { // here is where you'd put code that needs to be running all the time. // check to see if it's time to blink the LED; that is, if the difference // between the current time and last time you blinked the LED is bigger than // the interval at which you want to blink the LED. unsigned long currentMillis = millis(); if (currentMillis - previousMillis >= interval) { // save the last time you blinked the LED previousMillis = currentMillis; // if the LED is off turn it on and vice-versa: if (ledState == LOW) { ledState = HIGH; } else { ledState = LOW; } // set the LED with the ledState of the variable: digitalWrite(ledPin, ledState); } }
-1-Dans l IDE arduino version 2.x.x, inserer les deux lignes suivantes :
http://dan.drown.org/stm32duino/package_STM32duino_index.json https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json
-2- Dans le gestionaire de carte installer toutes les cartes STM32
-3- Dans “Outils” –> “Carte” choisir “STM32 MCU Based Board” et “Nucleo 144”
-4- Dans l'option “Board part number” choisir ; “Nucleo F429ZI”
-5- On peut pour tester la carte , envoyer le programme exemple : “RGB_LED_TLC59731” ou le programme “Blink”
comment_programmer_et_deboguer_le_stm32_a_l_aide_de_l_ardui._led.pdf
Suivez la séquence ci-dessous pour configurer la carte Nucleo-144 et lancer la démonstration application (pour l'emplacement des composants, reportez-vous à la Figure 4 : Disposition du dessus de la carte STM32 Nucleo-144).