2024-07-11
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
L'ordinateur peut imprimer toutes les variables qu'il souhaite voir directement sur l'écran, mais les ordinateurs monopuces ne disposent souvent pas d'une évaluation solide en raison de limitations de coût et de structure de circuit.
Tout comme l’apprentissage du langage C, il n’y a aucun moyen d’apprendre sans la fonction printf. Vous avez donc besoin d'un outil de débogage.
Le débogage du port série est très courant. Utiliser un port série pour connecter un microcontrôleur à un ordinateur équivaut à accrocher l'écran de l'ordinateur sur le microcontrôleur, ce qui permet au microcontrôleur d'afficher les informations de débogage. Lors de la conception du PCB, il y aura une broche de communication série. pour le débogage du programme (l'avantage est qu'il peut Avec l'aide d'un ordinateur puissant pour le débogage, le logiciel sur l'ordinateur peut non seulement afficher des paramètres individuels, mais également afficher des courbes, des graphiques, des images, etc. Vous pouvez également créer votre propre logiciel pour obtenir de puissantes fonctions d'interaction utilisateur) (L'inconvénient est que vous devez faire glisser l'ordinateur et que l'assistant de port série habituel ne peut présenter les données que sous forme de flux d'informations, c'est-à-dire qu'il ne peut imprimer que ligne par ligne. S'il y a beaucoup de données changeantes qui doivent être affichées, elles ne peuvent alors être affichées sur l'ordinateur qu'en faisant glisser l'écran)
L'avantage du débogage de l'affichage est que les données modifiées peuvent être écrasées et actualisées, et que l'affichage peut toujours être connecté au microcontrôleur. La méthode d'affichage est très directe. Lorsque vous effectuez quelque chose de légèrement compliqué, une interface d'interaction homme-machine est donc nécessaire. qu'il est plus facile d'utiliser l'écran dans le cadre du produit (l'inconvénient est que l'écran est trop petit et le contenu de l'affichage est limité)
L'écran peut être utilisé pour le débogage et la fonction du pilote sera discutée plus tard.Traitez d'abord OLED comme un module de débogage de programme
Il existe également une méthode de débogage de l'éclairage. Si vous ne savez pas où le programme est exécuté, vous pouvez mettre un code d'éclairage à cet endroit.
Méthode de débogage des commentaires, si le programme était initialement bon, mais est mort après l'ajout d'un certain programme, vous pouvez supprimer tous les commentaires nouvellement ajoutés, le restaurer à son état d'exécution normal, puis décommenter ligne par ligne jusqu'à ce que l'erreur apparaisse ou en commenter un. partie pour tester une autre partie, réduire la partie du programme qui s'exécute et localiser le programme problématique.
Utilisez la méthode de comparaison pour trouver un programme qui ne présente aucun problème et remplacez progressivement sa logique de programme par la vôtre.
Idées de base sur les procédures de test : restriction du champ d'application, contrôle des variables, tests comparatifs, etc.
Chaque pixel de l'OLED est une diode électroluminescente distincte, tandis que l'écran LCD nécessite un rétroéclairage, ce qui le rend relativement économe en énergie.
La vitesse de réponse rapide permet à OLED d'avoir un taux de rafraîchissement plus élevé
Une synchronisation rapide du bus peut également éviter le blocage des programmes
Grand angle de vision : l’OLED étant auto-lumineux, le contenu affiché est clair sous n’importe quel angle.
Piloter ce simple OLED ne nécessite que quelques fils et consomme relativement peu de ressources.
Les couleurs des pixels comprennent : blanc, bleu, jaune et bleu (1/4 est jaune, 3/4 est bleu, ce n'est pas un vrai bicolore, mais fixe dans différentes zones, adapté pour créer une interface qui doit afficher un ligne de titre)
La broche 4 utilise généralement le protocole IIC et la broche 7 utilise généralement le protocole SPI.
Si les broches STM32 ne sont pas initialisées, elles sont par défaut en mode d'entrée flottante.
Pour utiliser ce module OLED, il vous suffit de changer les broches, ainsi que les périphériques et horloges qui utilisent les broches. Le reste des fonctions est packagé.
Le fichier OLED_FONT.h stocke les données de police d'OLED. Étant donné que l'écran d'affichage OLED n'a pas de police, donc si vous souhaitez afficher des graphiques de caractères, vous devez d'abord définir les données de matrice de points des caractères, ce qui stocke la matrice de points. des caractères.
Le langage C ne peut pas écrire de nombres binaires et ne peut utiliser que l'hexadécimal. Le langage C, en tant que langage de programmation informatique de bas niveau, ne prend pas en charge l'écriture de nombres binaires. De plus, le langage C doit être traduit en langage assembleur, mais l'assembleur prend en charge l'écriture binaire. entrer. Mais c'est peut-être la règle.
L'option du projet Debug peut configurer les options de débogage. La sélection par défaut est celle de droite pour la simulation en ligne sur le matériel qui doit être connecté au microcontrôleur.
Celui de gauche utilise un émulateur, afin que l'ordinateur simule le fonctionnement du microcontrôleur.
Avant la simulation, assurez-vous qu'il n'y a aucun problème avec la compilation du projet (s'il y a des problèmes, résolvez-les d'abord)
Cliquez sur "rouge d" pour entrer en mode débogage. Si STLINK n'est pas connecté, une erreur sera signalée.
Si vous utilisez la programmation assembleur pour programmer le groupe de registres et les indicateurs d'état, vous devez les comprendre très clairement.
Si vous utilisez le langage C, vous n'avez pas à vous en soucier.
Cette partie est le contrôle de l'exécution du programme
1. Réinitialiser 2. Exécuter à pleine vitesse 3. Arrêter de fonctionner à pleine vitesse 4. Opération en une seule étape 5. Sauter la ligne actuelle et exécuter une seule étape 6. Sortir de la fonction actuelle et exécuter une seule étape 7. Passer à la ligne spécifiée par le curseur et exécutez une seule étape
La flèche jaune indique la prochaine ligne de code à exécuter et la flèche bleue indique la ligne où se trouve le curseur.
Cliquez sur la zone gris foncé à gauche pour définir un point d'arrêt. Cliquez sur Exécuter à pleine vitesse, et le programme continuera à s'exécuter jusqu'à ce que le point d'arrêt s'arrête. S'il n'y a pas de point d'arrêt, puis s'exécutera à pleine vitesse, le programme ne s'arrêtera pas automatiquement. et vous devez cliquer sur le bouton Arrêter, le programme s'arrêtera,
Cliquez sur RST pour réinitialiser et le programme reviendra au début. Vous pouvez voir que le programme est dans la fonction d'interruption de réinitialisation, indiquant que le programme commence à s'exécuter à partir d'ici après la réinitialisation.
Tout d’abord, le programme passera à la fonction SystemInit, puis la fonction sera exécutée vers la fonction principale.
Cette approche nous permet de suivre exactement le fonctionnement de notre programme. Vous pouvez explorer comment la fonction est exécutée étape par étape dans ce mode. De cette façon, la compréhension logique du programme sera plus profonde.
Il s'agit d'une fonction simple en mode débogage. Il existe des fonctions plus puissantes en mode débogage.
La première est la fenêtre de commande, qui peut être ouverte et fermée
Deuxième fenêtre de démontage
La troisième fenêtre de symboles vous permet de visualiser les valeurs de toutes les variables du programme en temps réel
Si vous souhaitez voir les modifications apportées à la valeur de la structure, vous pouvez cliquer avec le bouton droit et l'ajouter à la fenêtre Watch1.
Cliquez sur une seule étape pour exécuter et vous pourrez voir les changements dans les valeurs des variables, ce qui est très pratique.
Il y a aussi un affichage du port série
analyseur logique
Attends, tu peux prendre le temps d'en apprendre plus toi-même
Vous pouvez également cliquer sur le menu des périphériques et afficher les ressources système pour voir tous les registres périphériques.
Par exemple, si vous sélectionnez GPIOA, tous les registres des périphériques GPIOA seront affichés à droite.
Pendant le débogage, STM32 exécute également le programme en temps réel. Lorsque le point de simulation est arrêté, le programme stm32 s'arrête également. Si vous cliquez à nouveau sur exécuter, stm32 continuera à s'exécuter, même s'il y aura un certain retard dans les modifications en temps réel. la fonction de débogage en ligne est toujours très puissante. stm32 exécute le programme en temps réel, le logiciel keil affiche l'état du registre périphérique en temps réel. Vous pouvez également contrôler le démarrage, l'arrêt et le fonctionnement en une seule étape du programme à tout moment. Lorsque vous rencontrez un programme difficile à régler, par exemple, vous ne savez pas comment le programme est exécuté, ou vous voulez voir beaucoup de variables mais il n'est pas pratique de les afficher, ou vous voulez voir si le registre les valeurs sont configurées correctement, vous pouvez utiliser keil pour automatiquement Avec le mode débogage. Si vous modifiez le programme, vous ne pouvez pas le modifier directement en mode débogage. Pour modifier le programme, vous devez d'abord quitter le mode débogage, recompiler, puis entrer en mode débogage.
D'autres fonctions de Keil attendent davantage d'exploration.
L'aide ouvre le document d'aide officiel, qui contient l'introduction la plus fiable et la plus détaillée, et contient davantage de technologies noires sur la façon d'utiliser Keil.