Skyduino:~#
Articles
programmation, stm32, tutoriel

[Tuto] STM32 w/ Coocox IDE – Blink

Salut tout le monde !

Suite à la demande d’un de mes lecteurs (hé biloute :)) je vous fait un tutoriel sur comment installer, configurer et utiliser sommairement le logiciel Coocox IDE.
L’installation et la configuration prend quelque minutes, rien de bien compliqué.

Trêve de bavardage, la vidéo tutoriel :

PS: Ne pas oublier de changer le workspace par défaut, de base coIDE place les projets dans son dossier d’installation or celui n’est pas accessible pour les non administrateur, si vous avez des erreurs « … not found » lors de la compilation c’est que vous n’avez pas changer l’emplacement du workspace lors de la création du projet.

Edit: A partir de la version 1.4 de CoIDE le compilateur (et la toolchain gcc) ne sont plus fournit dans l’installation de base pour permettre à l’utilisateur d’utiliser la toolchain de son choix (toolchain Coocox, yagarto, truc maison, etc …).
C’est pourquoi il y a un énorme avertissement, en rouge souligné, en bas de la page de téléchargement de CoIDE :
« Note: This version has not integrated GCC compiler. Before using CoIDE, you need to set GCC Toolchain first. Click here to see how to set. »
Qui précise qu’il faut installer à la main la toolchain de son choix, ou celle par défaut disponible ici : http://www.coocox.org/CoIDE/Compiler_Settings.html puis suivre les instructions pour l’utiliser comme toolchain pour le projet en cours.

Amis du manchot, ne soyez pas abattu, il existe une méthode pour compiler et programmer une board STM32 Discovery via le bootloader série du STM32 😉
http://gostm32.blogspot.com/2010/09/getting-voltages-right.html
http://blog.willdonnelly.net/2010/10/02/serial-wire-debugging-the-stm32-via-the-bus-pirate/
http://hackaday.com/2011/02/06/versaloon-ported-to-stm8-and-stm32-discovery-boards/
http://hackaday.com/2010/12/25/versaloon-can-program-hardware-from-several-manufacturers/

Les liens :
Coocox IDE
Le news de coIDE
Les drivers ST-LINK

Et le code source de l’exemple :

#include "stm32f10x.h"
#include "stm32f10x_gpio.h"
#include "stm32f10x_rcc.h"

int main(void) {
	int i;

	GPIO_InitTypeDef GPIO_InitStructure_Led;
	GPIO_InitTypeDef GPIO_InitStructure_Button;

	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

	GPIO_InitStructure_Led.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9;
	GPIO_InitStructure_Led.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStructure_Led.GPIO_Speed = GPIO_Speed_50MHz;

	GPIO_InitStructure_Button.GPIO_Pin = GPIO_Pin_0;
	GPIO_InitStructure_Button.GPIO_Mode = GPIO_Mode_IN_FLOATING;
	GPIO_InitStructure_Button.GPIO_Speed = GPIO_Speed_50MHz;
	/*
	GPIO_Mode_IN_FLOATING -> entrée 3 état, low, high et flotant
	GPIO_Mode_IPD -> entrée avec "pull down" = tirage à "0"
	GPIO_Mode_IPU -> entrée avec "pull up" = tirage à "1"
	GPIO_Mode_Out_OD -> ?
	GPIO_Mode_Out_PP -> sortie standard 0 ou 1 */

	GPIO_Init(GPIOC, &GPIO_InitStructure_Led);
	GPIO_Init(GPIOA, &GPIO_InitStructure_Button);

	while (1) {

		GPIO_WriteBit(GPIOC, GPIO_Pin_8, Bit_SET);
		//GPIO_SetBits(GPIOC, GPIO_Pin_8);

		for (i = 0; i < 1000000; i++);

		GPIO_WriteBit(GPIOC, GPIO_Pin_8, Bit_RESET);
		//GPIO_ResetBits(GPIOC, GPIO_Pin_8);

		for (i = 0; i < 1000000; i++);

		i =  GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0);

		//GPIO_WriteBit(GPIOC, GPIO_Pin_9, i);

		if(i == Bit_SET)
			GPIO_SetBits(GPIOC, GPIO_Pin_9);
		else
			GPIO_ResetBits(GPIOC, GPIO_Pin_9);

		for (i = 0; i < 1000000; i++);
	}
}

Discussion

33 réflexions sur “[Tuto] STM32 w/ Coocox IDE – Blink

  1. Merci,
    Sa vas me permettre d’avoir de quoi commencer :), j’ai fait mon tout premier programme sur la stm32 discovery grâce a toi 🙂

    Je vais apprendre au fur et a mesure, sachant qu’en parallèle a sa, je touche a la MSP430 launchpad (j’en est reçu deux hier)

    Niveau langage au début je pense « pomper » pour la partie « affectation des broches » (I/O) et compagnie (la partie qui revient au « setup » sur la arduino),

    Merci

    Publié par cyber37 (biloute) | 16 octobre 2011, 12 h 02 min
    • Tu peut pomper no-problem 😉 pour la MSP430 je devrait en recevoir 2 en décembre pareil je ferai un test sur le blog et un tuto blink.

      Si tu est curieux regarde les exemples fourni avec coIDE 1.3 il sont trés complets 😉

      Publié par skywodd | 16 octobre 2011, 12 h 38 min
  2. Salut,
    j´ai suivi votre Tuto avec passion mais lors de la simullation de mon programme( Deux LED clignotant à une frequence de 25Hz chacune), le compilateur ne trouve pas le fichier gcc toolchain que je ne parviens pas á trouver.

    pouvez vous m´aider ?

    merci

    Raymond

    Publié par Kamta | 8 février 2012, 9 h 51 min
  3. Bonsoir, merci ça marche bien , mais et ce que je peut avoir d’autre code source pour essayé encore !!!

    Publié par charlie | 28 février 2012, 1 h 38 min
  4. 1***wé je fais toujours ça , mais au bout de la compilation j’aurais toujours cette erreur «  »[cc] C:\CooCox\CoIDE\workspace\p1\example\RCC_Exp.c:2:29: fatal error: stm32f10x_flash.h: No such file or directory » » » !!!!

    2**je suis entrain d’installer l’environnement de la STM32 sur l’UNIX , et j’ai suis ces étapes ::http://tunila.me/article/programmation/embarque/programmer-sur-le-stm32l-discovery-sur-linux.html#more-525 (je fais ps de pub ^^) , bon vous pouvez essayer cette méthode , parce que j’arrive pas a trouver tout les package nécessaire 😦 , et j’ai chercher partout , je trouve que des vidéo en russe ou en chinois ^^

    Publié par charlie | 29 février 2012, 1 h 32 min
    • >> 1***wé je fais toujours ça , mais au bout de la compilation j’aurais toujours cette erreur “”[cc] C:\CooCox\CoIDE
      >> \workspace\p1\example\RCC_Exp.c:2:29: fatal error: stm32f10x_flash.h: No such file or directory” »” !!!!

      Je cite (milieu d’article, sous la vidéo) :
      « PS: Ne pas oublier de changer le workspace par défaut, de base coIDE place les projets dans son dossier d’installation or celui n’est pas accessible pour les non administrateur, si vous avez des erreurs “… not found” lors de la compilation c’est que vous n’avez pas changer l’emplacement du workspace lors de la création du projet. »

      Regarde ton erreur : C:\CooCox\CoIDE\workspace\p1\example\RCC_Exp.c
      -> lire les remarques, elles sont pas là pour faire jolie 😉

      >> bon vous pouvez essayer cette méthode , parce que j’arrive pas a trouver tout les package nécessaire , et >> j’ai chercher partout , je trouve que des vidéo en russe ou en chinois ^^
      J’ai pas le temps.
      En plus tout les paquets nécessaire sont décris dans la commande apt-get (3eme commande) …

      Publié par skywodd | 29 février 2012, 10 h 36 min
  5. bonsoir
    c’es bon j’ai installé le coIDE mais j’ai trouvé un probleme au niveau de l’instalation du STM-st link utility il m’affiche « 1680 unable to create installdriver instance return code » , aprés je fais l’instalation du st-lin driver et je ne trouve pas par conséquence le fichier STMicroelectronic dans le programme files x86 .qu’est ce que je fais ????????? aidez moi s’il vous plait.

    Publié par fatma | 6 juillet 2012, 1 h 01 min
  6. je veux ajouter un lcd 16*2 et afficher un message sur ce LCD avec un STM32F100RB, je veux un petit exemple svp

    Publié par nouha hammami | 10 octobre 2012, 20 h 47 min
    • Je veux, Je veux …. Tu est ici sur un blog ou l’auteur présente ces recherches et prend sont temps pour donner quelques conseils à ces lecteurs. Si tu souhaite de ton coté expérimenter avec l’Arduino et que tu n’y parvient pas, présente ton problème de manière constructive afin d’attirer les bons conseils. Un peu de respect !

      Publié par Alex (@venedesign) | 10 octobre 2012, 22 h 11 min
  7. Excellente vidéo pour se lancer, en quelques minutes on sait comment se lancer dans le monde des STM32 ! Et vu le rapport puissance/prix hallucinant de ces boards (cf STM32F4 !) ça n’a pas de prix ! Tu m’as fait gagner pas mal de temps et éviter pas mal de prise de tête et de recherche, merci.

    Publié par Absurdev | 20 octobre 2012, 20 h 29 min
  8. Bonjour,
    Je suis en cours de test de ce tutoriel et je tombe sur un problème à la compile :

    compile:
    [mkdir] Skipping C:\Users\Olivier\Documents\CoIDE\workspace\Blink\Debug\bin because it already exists.
    [mkdir] Skipping C:\Users\Olivier\Documents\CoIDE\workspace\Blink\Debug\obj because it already exists.
    [cc] 6 total files to be compiled.
    [cc] arm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -Wall -ffunction-sections -O0 -g -c -DSTM32F10X_MD_VL -DUSE_STDPERIPH_DRIVER -D__ASSEMBLY__ -DSTM32F100RB -IC:\Users\Olivier\Documents\CoIDE\workspace\Blink -IC:\Users\Olivier\Documents\CoIDE\workspace\Blink\stm_lib -IC:\Users\Olivier\Documents\CoIDE\workspace\Blink\stm_lib\inc -IC:\Users\Olivier\Documents\CoIDE\workspace\Blink\cmsis_boot -IC:\Users\Olivier\Documents\CoIDE\workspace\Blink\cmsis C:\Users\Olivier\Documents\CoIDE\workspace\Blink\cmsis_boot\startup\startup_stm32f10x_md_vl.c C:\Users\Olivier\Documents\CoIDE\workspace\Blink\cmsis\core_cm3.c C:\Users\Olivier\Documents\CoIDE\workspace\Blink\cmsis_boot\system_stm32f10x.c C:\Users\Olivier\Documents\CoIDE\workspace\Blink\stm_lib\src\stm32f10x_gpio.c C:\Users\Olivier\Documents\CoIDE\workspace\Blink\main.c C:\Users\Olivier\Documents\CoIDE\workspace\Blink\stm_lib\src\stm32f10x_rcc.c

    BUILD FAILED
    Could not launch C:\Program Files\GNU Tools ARM Embedded\4.6 2012q2\arm-none-eabi-gcc: java.io.IOException: Cannot run program « C:\Program Files\GNU Tools ARM Embedded\4.6 2012q2\arm-none-eabi-gcc » (in directory « C:\Users\Olivier\Documents\CoIDE\workspace\Blink\Debug\obj »): CreateProcess error=2, Le fichier spécifié est introuvable
    Total time: 0 seconds

    J’ai effectué les contrôles préconisés :
    * il faut installer à la main la toolchain de son choix, ou celle par défaut disponible ici :http://www.coocox.org/CoIDE/Compiler_Settings.html
    * Ne pas oublier de changer le workspace par défaut

    L’erreur spécifie qu’un fichier est introuvable, j’ai vérifié les fichiers passé en paramètre à la commande arm-none-eabi-gcc : tous ces fichiers sont présents.

    J’ai certainement loupé quelque chose mais je ne vois pas quoi… Si vous avez une idée, elle est la bien venue. Merci d’avance.

    Publié par Olivier BERNARD | 25 novembre 2012, 20 h 25 min
    • Le compilateur gcc ce trouve dans le sous-dossier « bin ».
      Tu as du configurer le chemin du compilateur dans CoIDE en oubliant de le faire pointer sur bin 😉

      Publié par skywodd | 25 novembre 2012, 20 h 36 min
      • C’est exact. Une mauvaise saisie de ma part!
        Je débute dans le domaine de l’électronique embarquée. De quelle manière progresser en toute sérénité (tutoriels, formations, stage, …)?
        Merci pour vos suggestions

        Publié par Olivier BERNARD | 25 novembre 2012, 21 h 56 min
  9. Bonsoir,
    Tout d’abord félicitations pour la qualité tutoriel.
    Le linker utilse un paramètre non reconnu: Wl et génère le message d’erreur suivant:

    arm-none-eabi-gcc: error: unrecognized command line option ‘-Wl’

    J’ai essayé de modifier à la main le fichier Build.xml (présent sous \CooCox\CoIDE\Library\BuildTempFile\M3) en effacant l’option « -Wl », mais sans succès, car celui-ci est écrasé lors du build. Je ne trouve le fichier source à modifier.

    J’ai trouvé le même problème sur http://www.coocox.org/forum/topic.php?id=2321, mais même effet que BMolhman, sans réponse.
    Merci d’avance pour le support.
    Php1789

    Publié par Php1789 | 19 janvier 2013, 2 h 12 min
  10. Bonjour, merci pour votre video qui est très important ce qui concerne la programmation des microcontroleur ARM j’ai rencontré un probleme dans le compilateur GCC 4.7 lorsque je dépassé certain limite je reçois l’erreur suivant :
    « E:\DOCUME~1\MENHOU\LOCALS~1\Temp\cceySj0X.s: Assembler messages
    [cc] :
    [cc] E:\DOCUME~1\MENHOU\LOCALS~1\Temp\cceySj0X.s:464: Error: offset out of range
    [cc] E:\DOCUME~1\MENHOU\LOCALS~1\Temp\cceySj0X.s:465: Error: offset out of range  »

    merci de votre aide??

    Publié par menhou | 20 avril 2013, 13 h 38 min
  11. svp je veux un programme avec sTM32 qui pilote des afficheurs sept segment via un decodeur BCD 4511

    Publié par nesrine | 28 avril 2013, 17 h 01 min
  12. No source available for
    view disassembly
    comment regler ce problem?

    Publié par hamza | 2 mai 2013, 19 h 58 min
  13. pas de chance le debug se lance mais il ne s’arrte pas en breakpoint aussi je ne peux pas le faire pas à pas stm32fdiscovery stlink

    Publié par hamza | 2 mai 2013, 21 h 50 min
  14. thx sayé youpi ça marche

    Publié par hamza | 2 mai 2013, 22 h 35 min
  15. j’ai pas trouvé un cours pour que je puisse programmer stm32f4..aider moi s’il vous plait

    Publié par chemseddine | 15 septembre 2013, 16 h 39 min
  16. bsr tt le monde lorsque je compile j ai ce type d erreurs
    GCC HOME: C:\Program Files (x86)\GNU Tools ARM Embedded\4.8 2013q4\bin
    compile:
    [mkdir] Skipping C:\CooCox\CoIDE\workspace\diode2\diode2\Debug\bin because it already exists.
    [mkdir] Skipping C:\CooCox\CoIDE\workspace\diode2\diode2\Debug\obj because it already exists.
    [cc] Starting dependency analysis for 5 files.
    [cc] Parsing ..\..\..\cmsis_boot\stm32f10x.h
    [cc] Parsing ..\..\..\cmsis\core_cm3.h
    [cc] 5 files are up to date.
    [cc] 0 files to be recompiled from dependency analysis.
    [cc] 1 total files to be compiled.
    [cc] arm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -Wall -ffunction-sections -g -O0 -c -DSTM32F100RB -DSTM32F10X_MD_VL -DUSE_STDPERIPH_DRIVER -D__ASSEMBLY__ -IC:\CooCox\CoIDE\workspace\diode2\stm_lib -IC:\CooCox\CoIDE\workspace -IC:\CooCox\CoIDE\workspace\diode2\stm_lib\inc -IC:\CooCox\CoIDE\workspace\diode2\cmsis_boot -IC:\CooCox\CoIDE\workspace\diode2\cmsis -IC:\CooCox\CoIDE\workspace\diode2 C:\CooCox\CoIDE\workspace\diode2\cmsis\core_cm3.c
    [cc] C:\Users\anas\AppData\Local\Temp\ccIGfK2W.s: Assembler messages:
    [cc] C:\Users\anas\AppData\Local\Temp\ccIGfK2W.s:772: Error: registers may not be the same — `strexb r3,r2,[r3]’
    [cc] C:\Users\anas\AppData\Local\Temp\ccIGfK2W.s:818: Error: registers may not be the same — `strexh r3,r2,[r3]’

    BUILD FAILED
    Total time: 2 seconds
    j ai pa compris ce type d erreure et merci d avance 🙂

    Publié par ashile | 20 janvier 2014, 0 h 25 min
  17. bsr tt le monde lorsque je compile j ai ce type d erreurs
    GCC HOME: C:\Program Files (x86)\GNU Tools ARM Embedded\4.8 2013q4\bin
    compile:
    [mkdir] Skipping C:\CooCox\CoIDE\workspace\diode2\diode2\Debug\bin because it already exists.
    [mkdir] Skipping C:\CooCox\CoIDE\workspace\diode2\diode2\Debug\obj because it already exists.
    [cc] Starting dependency analysis for 5 files.
    [cc] Parsing ..\..\..\cmsis_boot\stm32f10x.h
    [cc] Parsing ..\..\..\cmsis\core_cm3.h
    [cc] 5 files are up to date.
    [cc] 0 files to be recompiled from dependency analysis.
    [cc] 1 total files to be compiled.
    [cc] arm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -Wall -ffunction-sections -g -O0 -c -DSTM32F100RB -DSTM32F10X_MD_VL -DUSE_STDPERIPH_DRIVER -D__ASSEMBLY__ -IC:\CooCox\CoIDE\workspace\diode2\stm_lib -IC:\CooCox\CoIDE\workspace -IC:\CooCox\CoIDE\workspace\diode2\stm_lib\inc -IC:\CooCox\CoIDE\workspace\diode2\cmsis_boot -IC:\CooCox\CoIDE\workspace\diode2\cmsis -IC:\CooCox\CoIDE\workspace\diode2 C:\CooCox\CoIDE\workspace\diode2\cmsis\core_cm3.c
    [cc] C:\Users\anas\AppData\Local\Temp\ccIGfK2W.s: Assembler messages:
    [cc] C:\Users\anas\AppData\Local\Temp\ccIGfK2W.s:772: Error: registers may not be the same — `strexb r3,r2,[r3]’
    [cc] C:\Users\anas\AppData\Local\Temp\ccIGfK2W.s:818: Error: registers may not be the same — `strexh r3,r2,[r3]’

    BUILD FAILED
    Total time: 2 seconds
    j ai pa compris ce type d erreur et merci d avance 🙂

    Publié par ashile | 20 janvier 2014, 0 h 26 min
  18. Bonjour,

    J’aimerai bien voir un tutoriel sur la carte STM32-P207,

    Merci

    Publié par hamza | 3 décembre 2015, 13 h 05 min

Rétroliens/Pings

  1. Pingback: How To Fix Coocox Createprocess Error=2 in Windows - 21 janvier 2015

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

Skyduino devient Carnet du Maker

Le site Carnet du Maker remplace désormais le blog Skyduino pour tout ce qui touche à l'Arduino, l'informatique et au DIY.