0
votes

J'ai un problème d'éclairage d'une LED dans un microcontrôleur STM32F373 Discovery

J'ai un problème d'éclairage de la LED dans la découverte du dispositif de microcontrôleur STM32F373

J'ai utilisé STM32 Cube MX et la bibliothèque HAL Le programme a été exécuté, mais le voyant ne s'allume pas. Travail effectué selon l'instruction STM. Leçon 4. Hal Bibliothèque. STM32 CUBE MX. LED et bouton Link russe a> p>

  1. Définir des broches pour l'alimentation, les entrées et les sorties Discovery LI>
  2. Allumez le bus RCC-> HSE LI>
  3. dans la configuration de l'horloge, activé HSE. Configuré par manipulé comme suit HORLOGE LI>
  4. a ajouté une boucle sans fin changeant. li> OL>
      while (1)
      {
        /* USER CODE END WHILE */
    
        /* USER CODE BEGIN 3 */
        HAL_Delay(5000); //1 minut
        HAL_GPIO_TogglePin(GPIOD, GPIO_PIN_8);
        HAL_Delay(5000);
        HAL_GPIO_TogglePin(GPIOD, GPIO_PIN_8);
        HAL_GPIO_TogglePin(GPIOD, GPIO_PIN_9);
        HAL_Delay(5000);
        HAL_GPIO_TogglePin(GPIOD, GPIO_PIN_9);
    }
    


1 commentaires

J'ai ajouté le temps et j'ai changé des épingles depuis que j'avais une erreur sur le voyant devient PD9 et PD8


3 Réponses :


2
votes

Vous avez besoin d'un deuxième retard avec hal_delay code>. Sinon, vous basculez le voyant, passez au début du pendant code> et basculer la LED à nouveau. Il est donc possible que la DEL soit allumée pour seulement quelques cycles d'horloge en fonction de l'état initial de l'E / S.

while (1)
{
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
    HAL_Delay(500);
    HAL_GPIO_TogglePin(GPIOD, GPIO_PIN_8);
    HAL_Delay(500);
    HAL_GPIO_TogglePin(GPIOD, GPIO_PIN_8);
}


1 commentaires

J'ai vérifié et j'ai changé la goupille en sortie. Il y avait une erreur. Je vais essayer de courir à nouveau.



0
votes

Vous devez activer l'horloge pour le périphérique GPIO que le voyant est connecté, avant de configurer des broches comme des sorties et essayez de les activer.

dans le rcc-> ahbenr Il existe des bits pour activer et désactiver les horloges des ports GPIO individuels, Giod est bit 20, donc RCC-> Ahbenr | = (1 << 20) ; ferait. Il sera défini existant selon les bibliothèques que vous utilisez, alors utilisez-les à la place du (1 << 20) numéro magique.

Modifier Après votre édition, vous avez ajouté en bas que les voyants sont PINS PC8 & PC9, votre code est basculé PD8 et PD9. Vérifiez de quelle façon cela devrait être.


0 commentaires

0
votes

Avez-vous configuré le GPIO comme sorties de STM32CUBEMX?

est-il activé? Sinon, vous remarquerez quand déboguer que Hal_Delay ne revient jamais. Essayez de placer quelques points d'arrêt et voyez si votre boucle tandis que vous exécutez réellement.


0 commentaires