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>
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);
}
3 Réponses :
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);
}
J'ai vérifié et j'ai changé la goupille en sortie. Il y avait une erreur. Je vais essayer de courir à nouveau.
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. p>
dans le rcc-> ahbenr code> Il existe des bits pour activer et désactiver les horloges des ports GPIO individuels, Giod est bit 20, donc
RCC-> Ahbenr | = (1 << 20) ; code> ferait. Il sera défini existant selon les bibliothèques que vous utilisez, alors utilisez-les à la place du
(1 << 20) code> numéro magique. P>
Avez-vous configuré le GPIO comme sorties de STM32CUBEMX? P>
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. P>
J'ai ajouté le temps et j'ai changé des épingles depuis que j'avais une erreur sur le voyant devient PD9 et PD8