stm32CubeMX utilise la bibliothèque HAL pour allumer la lampe et utilise l'analyseur logique pour observer le cycle

1. Outils expérimentaux

La plus petite carte centrale de STM32CubeMX
Keil uVision5
mcuisp
STM32F103C8T6

2. STM32CubeMX génère du code et utilise la bibliothèque HAL pour allumer la lampe à eau

1. Présentation de STM32CubeMX

STM32CubeMX est un outil de configuration graphique pour les puces STM32 fortement recommandé par ST STMicroelectronics ces dernières années.Le but est de faciliter les développeurs et de permettre aux utilisateurs d'utiliser des assistants graphiques pour générer des codes d'initialisation C, ce qui peut réduire considérablement le travail, le temps et les coûts de développement, et améliorer l'efficacité du développement. . STM32CubeMX couvre presque toutes les puces de la série STM32.
Sur CubeMX, des configurations pertinentes peuvent être réalisées grâce à des opérations insensées, et enfin du code en langage C peut être généré pour prendre en charge plusieurs chaînes d'outils, telles que MDK, IAR pour ARM, TrueStudio, etc., ce qui nous fait gagner du temps pour configurer divers périphériques, économise considérablement temps.

2. Installation de STM32CubeMX

Téléchargement du site Web officiel : https://www.st.com/zh/development-tools/stm32cubemx.html?sc=stm32cubemx#get-software
(Remarque : le téléchargement du site Web officiel doit lier l'e-mail ou s'inscrire)
(1) Ouvrez le fichier compressé package et exécutez le programme d'installation, cliquez sur suivant
insérez la description de l'image ici
(2) Cliquez sur "J'accepte les termes de ce contrat de licence", puis sélectionnez Suivant :
insérez la description de l'image ici
(3) Cochez la première, et la deuxième option est d'accepter ou non la collecte par ST de votre informations d'utilisation personnelle, etc., cliquez sur suivant :
insérez la description de l'image ici
(4) Sélectionnez l'emplacement d'installation, l'emplacement par défaut est d'installer dans le lecteur C (remarque : l'emplacement d'installation ne doit pas apparaître en chinois), cliquez sur suivant : (5) Cliquez sur OK
insérez la description de l'image ici
:
insérez la description de l'image ici
(6) Cliquez directement sur SUIVANT et démarrez après les autres paramètres Installation :
insérez la description de l'image ici
(7) L'installation est terminée, cliquez sur Terminé pour quitter :
insérez la description de l'image ici

2. Installez la bibliothèque HAL

Introduction à HAL :
la bibliothèque de micrologiciels STM32 HAL est l'abréviation de Hardware Abstraction Layer, et le nom chinois est : Hardware Abstraction Layer. La bibliothèque HAL est le dernier logiciel embarqué de couche d'abstraction lancé par ST pour le microcontrôleur STM32, afin d'obtenir plus facilement une portabilité maximale entre les produits STM32. Avec le lancement de la bibliothèque HAL, on peut dire que ST a lentement abandonné la bibliothèque de firmware standard d'origine, ce qui rend également de nombreux anciens utilisateurs insatisfaits. Cependant, lorsque la bibliothèque HAL a été lancée, de nombreux intergiciels tiers ont été ajoutés, notamment RTOS, USB, TCP/IP, graphiques, etc.
Par rapport à la bibliothèque standard, la bibliothèque HAL de STM32 est plus abstraite.L'objectif ultime de ST est de réaliser un portage transparent entre les MCU de la série STM32, et même un portage rapide entre les autres MCU.
Et depuis 2016, la société ST a progressivement cessé de mettre à jour la bibliothèque de micrologiciels standard et s'est tournée vers la mise à jour de la bibliothèque de micrologiciels HAL et de la bibliothèque sous-jacente de couche basse, arrêtant la mise à jour de la bibliothèque standard, ce qui signifie que l'utilisation de STM32CubeMX pour configurer le HAL / La bibliothèque LL est l'environnement de configuration principal ;
(1) Ouvrez le STMCubeMX installé
insérez la description de l'image ici
(2) Cliquez sur AIDE-> Gérer les packages logiciels intégrés :
insérez la description de l'image ici
(3) Une interface de sélection de modèle apparaîtra et vérifiera la bibliothèque HAL que vous souhaitez installer, cliquez sur "Installer maintenant" jusqu'à ce que l'installation soit réussie. Comme indiqué ci-dessous:
insérez la description de l'image ici

3. Nouveau projet

(1) Revenez à l'interface principale de STMCubeMX et créez un nouveau projet :
insérez la description de l'image ici
(2) Sélectionnez votre propre puce dans le nom de la pièce, cliquez sur les informations spécifiques à la puce dans la colonne d'informations pour la sélectionner, puis cliquez sur Démarrer le projet : (3
insérez la description de l'image ici
) Cliquez sur le noyau du système pour entrer dans SYS, sélectionnez le fil série sous débogage :
insérez la description de l'image ici
(4) configurez l'horloge, entrez le rcc ci-dessus, il y a deux horloges, l'une est hse et lse, nous voulons utiliser l'interface GPIO, et ces interfaces sont dans APB2 : Ensuite, observez l'architecture de l'horloge
insérez la description de l'image ici
, l'horloge du bus APB2 est contrôlée par hse, et en même temps, sélectionnez PLLCLK sur le côté droit de cette interface : (5
insérez la description de l'image ici
) Réglez hse comme Crystal/Ceramic Resonator :
insérez la description de l'image ici
(6) Cliquez sur GPIO, puis cliquez sur la broche correspondante pour définir le registre de sortie, qui est l'élément de sortie, et il y en a trois sélectionnés au total, qui sont PA4, PB9 et PC15 : (7) Cliquez sur le gestionnaire de projet, configurez votre propre chemin
insérez la description de l'image ici
et nom du projet, puis changez l'élément IDE en MDK-ARM :
insérez la description de l'image ici
(8) Entrez Sur l'interface de génération de code, sélectionnez pour générer le fichier d'initialisation .c/.h, puis cliquez sur générer le code, sélectionnez ouvrir le projet, puis accédez à KEIL5 :
insérez la description de l'image ici

Débogage de la simulation 4.keil

(1) Ouvrez le fichier .uvprojx (ou sélectionnez open project à l'étape précédente),
insérez la description de l'image ici
ouvrez le fichier main.c et glissez la partie de la fonction main :
insérez la description de l'image ici
(2) Mettez le code suivant dans la fonction main (remplacez le contenu à l'intérieur)

SystemClock_Config();//系统时钟初始化
  MX_GPIO_Init();//gpio初始化
  while (1)
  {
    
    		
		HAL_GPIO_WritePin(GPIOA,GPIO_PIN_4,GPIO_PIN_RESET);//PA4亮灯
		HAL_GPIO_WritePin(GPIOB,GPIO_PIN_9,GPIO_PIN_SET);//PB9熄灯
		HAL_GPIO_WritePin(GPIOC,GPIO_PIN_15,GPIO_PIN_SET);//PC15熄灯
		HAL_Delay(1000);//延时1s
		HAL_GPIO_WritePin(GPIOA,GPIO_PIN_4,GPIO_PIN_SET);//PA4熄灯
		HAL_GPIO_WritePin(GPIOB,GPIO_PIN_9,GPIO_PIN_RESET);//PB9亮灯
		HAL_GPIO_WritePin(GPIOC,GPIO_PIN_15,GPIO_PIN_SET);//PC15熄灯
		HAL_Delay(1000);//延时1s		
		HAL_GPIO_WritePin(GPIOA,GPIO_PIN_4,GPIO_PIN_SET);//PA4熄灯
		HAL_GPIO_WritePin(GPIOB,GPIO_PIN_9,GPIO_PIN_SET);//PB9熄灯
		HAL_GPIO_WritePin(GPIOC,GPIO_PIN_15,GPIO_PIN_RESET);//PC15亮灯
		HAL_Delay(1000);//延时1s
	}

(3) Connexion du circuit
Connectez le circuit selon le programme conçu :
pour le module USB vers TTL et la connexion stm32f103c8t6 :
GND — GND
3v3 — 3v3
TXD — A10
RXD — A9

Circuit total :
Rouge——B9
Vert——C15
Jaune——A4
(4) Gravure et exécution
La gravure du port série doit être éteinte et définir boot0 sur 0 pour fonctionner normalement :

ESSAI DE PLOMB

(5) Observez la forme d'onde de sortie du port GPIO
1. Sélectionnez la baguette magique, puis cliquez sur l'interface cible et sélectionnez la taille correcte de l'oscillateur à cristal.J'utilise un oscillateur à cristal externe de 8 MHz. Cette option joue un rôle très important dans la simulation logicielle. Si le mauvais choix est fait, la forme d'onde doit être erronée car l'heure n'est pas précise.
insérez la description de l'image ici
2. Paramètres sur la page Debug
insérez la description de l'image ici
3. Cliquez sur Debug pour accéder à la page de débogage
insérez la description de l'image ici
4. Sélectionnez l'analyseur logique :
insérez la description de l'image ici
5. Sélectionnez la broche à observer :
Cliquez sur Setup Logic Analyzer :
insérez la description de l'image ici
Ajoutez la broche à observer (notez que vous devez entrer faites-le vous-même, comme l'affichage de la broche A4 est entrée sur PORTA.4):
insérez la description de l'image ici
6. Paramètres associés
insérez la description de l'image ici
insérez la description de l'image ici
7. Programme en cours d'exécution:
insérez la description de l'image ici
8. Observez la forme d'onde:
insérez la description de l'image ici
la broche est allumée de bas niveau, la lumière de haut niveau est éteinte, haut-bas Le cycle de conversion de niveau (cycle de clignotement de LED) est d'environ 1 s.

3. Résumé

L'interface visuelle fournie par la bibliothèque HAL améliore considérablement l'efficacité de la programmation.Par rapport à l'utilisation de keil seul pour écrire des feux de circulation, vous devez écrire davantage d'instructions connexes.L'utilisation de HAL n'a pas besoin d'utiliser de code pour configurer les broches, et l'effet est très bon.

4. Références

https://blog.csdn.net/weixin_46129506/article/details/120780184
https://blog.csdn.net/qq_46467126/article/details/120847240

Je suppose que tu aimes

Origine blog.csdn.net/qq_55894922/article/details/127232999
conseillé
Classement