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

Stm32l476 -led



  1. #1
    invite287358e5

    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
    invite9583bf2d

    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.

  3. #3
    invite9583bf2d

    Re : Stm32l476 -led

    Erreur de ma part.

  4. #4
    invite9583bf2d

    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
    invite9583bf2d

    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.

  7. #6
    invite9583bf2d

    Re : Stm32l476 -led

    Code:
    return 0;
    Egalement.

  8. #7
    invite9583bf2d

    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
    invite9583bf2d

    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
    invite287358e5

    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

  11. #10
    invite287358e5

    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
    invite9583bf2d

    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
    invite9583bf2d

    Re : Stm32l476 -led

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