Stm32l476 -led
Répondre à la discussion
Affichage des résultats 1 à 12 sur 12

Stm32l476 -led



  1. #1
    alakaabar

    Stm32l476 -led


    ------

    Hello ,

    j'ai un petit probleme avec le programme pour faire clignoter la LED .. ca marche pas du tout quand je run le programme donc je voudrais savoir d'ou vient le probleme .

    Voila le code


    Code:
    #include "stm32l4xx.h"
    
    
    
    void delay (int a);
    
    int main(void)
    {
      /
      /* GPIOC Periph clock enable */
        RCC->AHB2ENR |= RCC_AHB2ENR_GPIOAEN;
    
        GPIOA->MODER |= GPIO_MODER_MODER5_0;
        /* Configure PA5 in output  mode  */
    
        GPIOA->OTYPER &= ~(GPIO_OTYPER_OT_5) ;
        // Ensure push pull mode selected--default
    
        GPIOA->OSPEEDR |= (GPIO_OSPEEDER_OSPEEDR5);
        //Ensure maximum speed setting (even though it is unnecessary)
    
        GPIOA->PUPDR &= ~(GPIO_PUPDR_PUPDR5);
        //Ensure all pull up pull down resistors are disabled
    
        while (1)
        {
        	GPIOA->BSRR=GPIO_BSRR_BS_5;;
            delay(5000);
           
            GPIOA->BRR=GPIO_BRR_BR_5;;
            delay(5000);
    }
    
    void delay (int a)
    {
        volatile int i,j;
    
        for (i=0 ; i < a ; i++)
        {
            j++;
        }
    
        return;
    }

    La user LED2 est normalement connecte a PA5 d'apres le manuel de reference et j'utilise Atollic Truestudio sur ubuntu

    Merci

    -----

  2. #2
    Gian7

    Re : Stm32l476 -led

    Declare ton void avant de l'utiliser dans ton main P-E.
    Ou tu include un fichier qui la contient.

    Plus d'infos seraient les bienvenues quand meme.

    Donc déjà commence par organiser ça.

    Dans une autre classe tu met ta methods. Et tu prend soin de l'inclure en entete avant de l'utiliser.
    Dernière modification par Gian7 ; 22/07/2018 à 18h22.

  3. #3
    Gian7

    Re : Stm32l476 -led

    Erreur de ma part.
    Dernière modification par Gian7 ; 22/07/2018 à 18h27.

  4. #4
    Gian7

    Re : Stm32l476 -led

    Et d'ailleur toutes n'est pas fermé.

    C'est ton programme entier?
    Ton probleme vient d'une erreur de compilation ou autre chose ?
    De plus rajoute une valeur à ta variable j donc 0 en l'occurence.

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

    Re : Stm32l476 -led

    Code:
    #include "stm32l4xx.h"
    
    class Program {
    
         public:
    
              void delay (int a) {
    
                   volatile int i,j;
                   j = 0;
    
                       for (i=0 ; i < a+1 ; i++)  {
                                j++;
                          }
    
                       return;
                   }
    }
    
    int main(void) {
      /
      /* GPIOC Periph clock enable */
        RCC->AHB2ENR |= RCC_AHB2ENR_GPIOAEN;
    
        GPIOA->MODER |= GPIO_MODER_MODER5_0;
        /* Configure PA5 in output  mode  */
    
        GPIOA->OTYPER &= ~(GPIO_OTYPER_OT_5) ;
        // Ensure push pull mode selected--default
    
        GPIOA->OSPEEDR |= (GPIO_OSPEEDER_OSPEEDR5);
        //Ensure maximum speed setting (even though it is unnecessary)
    
        GPIOA->PUPDR &= ~(GPIO_PUPDR_PUPDR5);
        //Ensure all pull up pull down resistors are disabled
    
        while (1) {
        	GPIOA->BSRR=GPIO_BSRR_BS_5;
            Program::delay(5000);
           
            GPIOA->BRR=GPIO_BRR_BR_5;
            Program::delay(5000);
         }
    }
    Cdlt,
    Gian BENHALIMA.
    Dernière modification par Gian7 ; 22/07/2018 à 19h34.

  7. #6
    Gian7

    Re : Stm32l476 -led

    Code:
    return 0;
    Egalement.

  8. #7
    Gian7

    Re : Stm32l476 -led

    Egalement, après avoir compilé assure toi d'avoir les droits chmod. Donc les droits d'exécution sur ton programme.

    Sans plus d'informations je ne peux pas t'aider.

    Cdlt,
    Gian BENHALIMA.

  9. #8
    Gian7

    Re : Stm32l476 -led

    Par ailleur, le temps en seconde milli seconde doit correspondre à ta variable également. While(1), ... Autant ne pas mettre de condition...

    Plus explicite ça serait bien quand même.

  10. #9
    alakaabar

    Re : Stm32l476 -led

    Merci pour les reponses .. Je n'ai pas de problemes de compilation vu que j'ai effectué quelques changements mais lorsque je run sur le microcontrolleur la led ne s'allume meme pas donc je me disais peut etre que y'a une erreur quelque part dans le code
    Dernière modification par alakaabar ; 24/07/2018 à 13h30.

  11. #10
    alakaabar

    Re : Stm32l476 -led

    j'ai essayé un code plus simple en tant compte des registres aussi mais ca ne marche pas non plus .


    Code:
    #include "stm32l4xx.h"
    
    
    int main(void)
    {
    volatile unsigned int i =0;
    RCC -> AHB2ENR|= 1<<0; 
    GPIOA->MODER |= 1 << 10;
    while(1)
    {for (i= 0; i < 50000; i++)
    	GPIOA -> BSRR= (1<<5);
    for (i = 0; i < 50000; i++)
    	GPIOA -> BSRR= (1<<21);}
    
    }

  12. #11
    Gian7

    Re : Stm32l476 -led

    Code:
    #include "stm32l4xx.h"
    
    
    int main(void) {
         volatile unsigned int i =0;
         RCC -> AHB2ENR|= 1<<0; 
         GPIOA->MODER |= 1 << 10;
          while(1) {
              for (i= 0; i < 50000; i++) {
    	     GPIOA -> BSRR= (1<<5);
                 System::String^ R1 = "Correspond à quoi ?"
                }
             for (i = 0; i < 50000; i++) {
    	     GPIOA -> BSRR= (1<<21);
                 System::String^ R2 = "Correspond à quoi également"
                }
    }
    
    /* While QUOI 
    System::String^ pour win prend en pas compte. :S:
    */
    Ton header comprend quoi ?

  13. #12
    Gian7

    Re : Stm32l476 -led

    Et "I" fais quoi ?
    Parceque 50000 conditions ça peut aller plus ou moins vite