Programmer sur stm32f4
Répondre à la discussion
Affichage des résultats 1 à 14 sur 14

Programmer sur stm32f4



  1. #1
    invite6015f114

    Programmer sur stm32f4


    ------

    Bonjour,

    J'ai du mal à programmer sur stm32f4 discovery.
    J'essaye de changer l'état d'une sortie (la PB4), mais rien ne marche enfin la led sur la carte.

    Voila le code.

    /* Configure PD12, PD13, PD14 and PD15 in output pushpull mode */
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13| GPIO_Pin_14| GPIO_Pin_15;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
    GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
    GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
    GPIO_Init(GPIOD, &GPIO_InitStructure);

    /* Configure PD12, PD13, PD14 and PD15 in output pushpull mode */
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
    GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
    GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
    GPIO_Init(GPIOB, &GPIO_InitStructure);

    while (1)
    {
    /* PD12 to be toggled */
    GPIO_SetBits(GPIOD, GPIO_Pin_12);

    /* Insert delay */
    Delay(0x3FFFFF);

    GPIO_ResetBits(GPIOD, GPIO_Pin_12);

    /* Insert delay */
    Delay(0xFFFFFF);

    GPIO_SetBits(GPIOB, GPIO_Pin_4);

    /* Insert delay */
    Delay(0x3FFFFF);


    GPIO_ResetBits(GPIOB, GPIO_Pin_4);

    /* Insert delay */
    Delay(0xFFFFFF);
    }
    La led sur le port PD12 fonctionne bien mais le port B pas, j'ai du mal à comprendre.
    Si quelqu'un connait des tuto montrant comment utiliser les initialisations et autre je suis preneur.

    Cordialement
    Morcelino

    -----

  2. #2
    invitebe2a9ce7

    Re : Programmer sur stm32f4

    Est ce que tu vois pD12 s'éteindre, car ton delay est un peu bizarre essaye de mettre une valeur comme 20000 ( pas d'hexa du coup),sinon les initialisations sont bonne, est ce qu'il n'y a pas quelque part ton port PB4 et PB5 de déjà initialiser?

  3. #3
    invite29971eb1

    Re : Programmer sur stm32f4

    Il ne manquerait pas l'initialisation des horloges?

  4. #4
    invite6015f114

    Re : Programmer sur stm32f4

    Oui je vois PD12 s'éteindre et s'allumer.

    Pour le delay c'est pas moi qui l'ai crée, de mémoire c'est:
    void delay (_IO unint ncount){
    while(ncount--)
    {
    }
    }
    C'est pour ca que je ne comprend pas pourquoi ca ne marche pas.

    Bin normalement PB4 & PB5 ne sont pas déclaré car j'ai crée le projet or je ne fais pas les déclarations ailleur.

    Ps : si quelqu'un a un programme qui toggle une sortie je suis preneur.

  5. A voir en vidéo sur Futura
  6. #5
    invite29971eb1

    Re : Programmer sur stm32f4

    ST fournit un pack d'exemples à télécharger, et sur Cortex, les périphériques sont drivés par une horloge particulière qu'il faut penser à démarrer.

    En ajoutant cette simple ligne avant l'initialisation des GPIO, ça devrait fonctionner:
    Code:
     RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);

  7. #6
    invite6015f114

    Re : Programmer sur stm32f4

    Merci beaucoup, ça marche

    C'est la ligne de ftorama qui ma permit de mettre le port en marche.

  8. #7
    invite6015f114

    Re : Programmer sur stm32f4

    Bonjour,

    Malgré mes recherches, je suis toujours dans le noir.
    Je cherche à lire l'état d'une patte mais j'y arrive pas, de même pour calibrer un timer à 1sec.
    Je trouve pas beaucoup d'informations sur internet ou bien je cherche mal.

    Pour lire la patte j'ai pensé faire l'inverse
    /* Configure in output pushpull mode */
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 ;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
    GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
    GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
    GPIO_Init(GPIOB, &GPIO_InitStructure);
    Puis faire un while
    /* Insert delay */
    Delay(0x3FFFFF);


    GPIO_ResetBits(GPIOB, GPIO_Pin_5);

    /* Insert delay */
    Delay(0xFFFFFF);
    while(GPIO_Pin_6 == 0)
    {
    GPIO_SetBits(GPIOB, GPIO_Pin_4);

    /* Insert delay */
    Delay(0x3FFFFF);


    GPIO_ResetBits(GPIOB, GPIO_Pin_4);

    /* Insert delay */
    Delay(0xFFFFFF);
    }
    Comme ca je reste bloquer à set/reset la patte 4.

    Voila si quelqu'un peut m'aider

    Morcelino

  9. #8
    invite860936ec

    Re : Programmer sur stm32f4

    Bonjour, plein d infos et d' exemple:http://www.st.com/internet/evalboard/product/252419.jsp
    @+

  10. #9
    invitebe2a9ce7

    Re : Programmer sur stm32f4

    Il y a plein d’exemple dans les STd librairies.
    Et tonprogramme ne fonctionne pas car du coup tu ne peut pas agir vu que tu as programmer ton pin en entrée donc il va rester dans la boucle while. mais il y a plein de doc sur les stm32

  11. #10
    invite6015f114

    Re : Programmer sur stm32f4

    Bonjour,

    Alors sur le site de st je connaissais déjà, pour les timers je vais dire ok.

    Par contre j'ai beau chercher partout, ya personnes qui parle des while avec une entrée dedans.
    Genre :
    while(patte6 du port B état haut)
    {
    Je fou rien;
    }

    Si quelqu'un pouvait soit m'expliquer comment faire, soit me mener vers une sorte de livre magique ou l'on trouve toute les instruction avec comment on les configures.

    En tout cas, je trouve le stm beaucoup plus dur à prendre en main que le msp (avis personnel).

    Voila

  12. #11
    invitebe2a9ce7

    Re : Programmer sur stm32f4

    il y a normalement un référence manual sur le site de ST ( environ 1000 pages) , une entrée n'est pas un booléen donc il faut peut être que tu mette un adc pour dire de rentré dans la boucle while

  13. #12
    invite6015f114

    Re : Programmer sur stm32f4

    Bonjour,

    Et bin si on peut même pas mettre un boolean dans une condition while, on est pas sortie de l'auberge . Ca parait quand même étrange mais bon depuis que le temps que j'essaye je veux bien croire.
    Autrement le reference manual met impossible d'ouvrir sur le site de st. Y a t'il un autre endroit ou on peut l'avoir?

    Cordialement
    Morcelino

  14. #13
    invitebe2a9ce7

    Re : Programmer sur stm32f4

    j'ai pas dis que tu pouvais pas mettre de booléen dans un while ( oublis ce que j'ai dis) juste qu'un port n'est pas vraiment un booléen, c'est un peu spécial mais il y a quand même plein d'exemple ne serait-ce qu'avec le programme que tu avais d'office sur la carte, ils utilise les bouton pour faire tel ou tel chose, ba c'est la même chose que tu veut faire... la prise en main est au début difficile mais c'est du C rien de bien méchant, il faut toujours bien paramétré.
    J'arrive très bien a lire le reference manual sur le site de ST, mais a jour adobe, ou tu as peut être un débit de *** il fait 1300 pages

  15. #14
    invite860936ec

    Re : Programmer sur stm32f4

    ci joint le programme de demos des stm32F4 avec l' utilisation des boutons .
    tu peus telecharger tous les exemples sur la page st que j ai indiquée au dessus: onglet design suport , STM32F4 firmware.
    @+

    Google .......5mn.
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Ossur STM32F4 discovery
    Par invite6015f114 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 24/05/2012, 13h33
  2. stm32f4-discovery-Audio_playback
    Par invite8a733022 dans le forum Électronique
    Réponses: 1
    Dernier message: 25/04/2012, 09h01
  3. STM32F4 Discovery
    Par invite6015f114 dans le forum Électronique
    Réponses: 0
    Dernier message: 23/04/2012, 17h11
  4. serveur tftp sur STM32F4
    Par invite25df009a dans le forum Électronique
    Réponses: 1
    Dernier message: 12/04/2012, 10h44
  5. Conversion de float sur STM32F4
    Par invite25df009a dans le forum Électronique
    Réponses: 0
    Dernier message: 15/02/2012, 11h38
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...