Table des matières:
Vidéo: Configuration de Blue Pill Board dans STM32CubeIDE : 8 étapes
2025 Auteur: John Day | [email protected]. Dernière modifié: 2025-01-13 06:57
La Blue Pill est une carte de développement ARM simple et très bon marché. Il a un STM32F103C8 comme processeur qui a 64 ko de mémoire flash et 20 ko de mémoire RAM. Il fonctionne jusqu'à 72 MHz et est le moyen le moins cher de se lancer dans le développement de logiciels embarqués ARM.
La plupart des exemples de projets et des instructions décrivent la programmation de la carte Blue Pill à l'aide de l'environnement Auduino. Bien que cela fonctionne et soit un moyen de commencer, il a ses limites. L'environnement Arduino vous protège un peu du matériel sous-jacent - c'est son objectif de conception. De ce fait, vous ne pourrez pas profiter de toutes les fonctionnalités offertes par le processeur, et l'intégration d'un système d'exploitation temps réel n'est pas vraiment prise en charge. Cela signifie que l'environnement Arduino n'est pas largement utilisé dans l'industrie. Si vous souhaitez faire carrière dans le développement de logiciels embarqués, Arduino est un bon point de départ, mais vous devez passer à autre chose et utiliser un environnement de développement utilisé de manière industrielle. ST fournit utilement une suite d'environnements de développement entièrement gratuite pour leurs processeurs appelée STM32CubeIDE. Ceci est largement utilisé dans l'industrie, c'est donc un bon choix.
Cependant, et c'est le grand cependant, STM32CubeIDE est terriblement compliqué et est un logiciel intimidant à utiliser. Il prend en charge toutes les fonctionnalités de tous les processeurs ST et leur permet d'être configurés intimement, ce que vous ne rencontrez pas dans l'IDE Arduino car tout est fait pour vous.
Vous devez d'abord configurer votre carte dans STM32CubeIDE. L'IDE connaît les propres cartes de développement de ST et les configure pour vous, mais la Blue Pill, tout en utilisant un processeur ST, n'est pas un produit ST, vous êtes donc seul ici.
Cette instructable vous guide tout au long du processus de configuration de votre carte Blue Pill, d'activation d'un port série et d'écriture de texte. Ce n'est pas beaucoup, mais c'est un premier pas important.
Fournitures
STM32CubeIDE - à télécharger sur le site Web de ST. Vous devez vous inscrire et le téléchargement prend un certain temps.
Un tableau Blue Pill. Vous pouvez les obtenir sur ebay. Vous en avez besoin d'un avec un véritable processeur ST, contrairement à d'autres. Sur ebay, zoomez sur l'image et cherchez le logo ST sur le processeur.
Un débogueur/programmeur ST-LINK v2 disponible sur ebay pour quelques euros.
Un câble série FTDI TTL vers USB 3.3V pour la sortie et 2 fils d'en-tête mâle à femelle pour le connecter.
Un programme de terminal série comme PuTTY.
Étape 1: Création d'un nouveau projet
- Démarrez STM32CubeIDE, puis dans le menu, choisissez Fichier|Nouveau|Projet STM32.
- Dans la zone de recherche de numéro de pièce, entrez STM32F103C8.
- Dans la liste des MCU/MPU, vous devriez voir STM32F103C8. Sélectionnez cette ligne comme dans l'image ci-dessus.
- Cliquez sur Suivant.
- Dans la boîte de dialogue Configuration du projet, donnez un nom au projet.
- Laissez tout le reste tel quel et cliquez sur Terminer. Votre projet apparaîtra à gauche dans le volet Explorateur de projets.
Étape 2: Configuration du processeur
- Dans le volet Explorateur de projets, ouvrez votre projet et double-cliquez sur le fichier.ioc.
- Dans l'onglet Projet et configuration, développez System Core, puis sélectionnez SYS.
- Sous SYS Mode and Configuration dans la liste déroulante Debug, choisissez Serial Wire.
- Sélectionnez maintenant RCC dans la liste System Core juste au-dessus de SYS que vous avez sélectionné ci-dessus.
- Sous RCC Mode & Configuration dans la liste déroulante High Speed Clock (HSE), sélectionnez Crystal/Ceramic Resonator.
- Maintenant, sous Catégories à nouveau, ouvrez Connectivité et sélectionnez USART2.
- Sous Mode et configuration USART2 dans la liste déroulante Mode, sélectionnez Asynchrone.
- Sélectionnez maintenant l'onglet Configuration de l'horloge et passez à l'étape suivante.
Étape 3: Configuration des horloges
Vous pouvez maintenant voir un diagramme d'horloge plutôt intimidant, mais il n'a besoin d'être configuré qu'une seule fois. C'est le plus difficile à décrire ici car le schéma est complexe. Toutes les choses que vous devez changer sont mises en évidence dans l'image ci-dessus.
- La carte Blue Pill est livrée avec un cristal de 8 MHz sur la carte et c'est ce que le diagramme de configuration de l'horloge utilise par défaut, nous n'avons donc pas besoin de changer cela.
- Sous PLL Source Mux, sélectionnez le choix inférieur, HSE.
- Juste à droite, définissez PLLMul sur X9.
- À nouveau à droite sous System Clock Mux, sélectionnez PLLCLK.
- À nouveau à droite sous APB1 Prescalar, sélectionnez /2.
- C'est ça. Si vous voyez des parties du diagramme surlignées en violet, vous avez fait quelque chose de mal.
Étape 4: Enregistrez et créez
- Enregistrez la configuration.ioc avec Ctrl-S. Lorsqu'il vous est demandé si vous souhaitez générer du code, sélectionnez Oui (et cochez Se souvenir de ma décision afin que l'on ne vous le demande pas à chaque fois). Vous pouvez fermer le fichier.ioc.
- Faites maintenant un build à partir du menu Project|Build Project.
Étape 5: ajouter du code
Nous allons maintenant ajouter du code pour utiliser le port série que nous avons configuré.
- Dans l'explorateur de projet, ouvrez Core\Src et double-cliquez sur main.c pour le modifier.
- Faites défiler vers le bas jusqu'à ce que vous trouviez la fonction main() et ajoutez le code ci-dessous juste en dessous du commentaire /* USER CODE BEGIN 3 */ puis refaites une compilation.
HAL_UART_Transmit(&huart2, (uint8_t *)"Bonjour tout le monde !\r\n", 15U, 100U);
Ensuite, connectez le matériel et essayez-le.
Étape 6: connexion du matériel
Connexion du ST-LINK v2
Le ST-LINK v2 aurait dû être livré avec un câble plat femelle à femelle à 4 fils. Vous devez effectuer les connexions suivantes:
Pilule bleue vers ST-LINK v2
GND à GND
CLK vers SWCLK
DIO vers SWDIO
3,3 à 3,3 V
Voir la première image ci-dessus.
Connexion du câble série
Si vous revenez au fichier.ioc et regardez le diagramme de la puce sur la droite, vous verrez que la ligne Tx de l'UART2 est sur la broche PA2. Pour cela, connectez la broche étiquetée PA2 sur la carte Blue Pill à la connexion avec le fil jaune sur le câble série FTDI. Connectez également l'une des broches de masse de la Blue Pill (marquée G) au fil noir du câble série FTDI.
Voir la deuxième image ci-dessus.
Étape 7: Débogage
Branchez votre câble série FTDI et lancez un terminal série à 115200 bauds. Branchez ensuite votre ST-LINK v2 et vous êtes prêt à partir.
- Depuis STM32CubeIDE, choisissez Exécuter|Déboguer. Lorsqu'une boîte de dialogue Déboguer en tant que s'affiche, choisissez Application STM32 Cortex-M C/C++ et OK.
- Lorsqu'une boîte de dialogue Modifier la configuration apparaît, appuyez simplement sur OK.
- Le débogueur s'arrêtera sur la première ligne de main(). Dans le menu, choisissez Exécuter|Reprendre et vérifiez les messages dans le terminal série.
Étape 8: Faire plus
Ça y est, votre première application STM32CubeIDE est configurée et en cours d'exécution. Cet exemple ne fait pas grand-chose - envoie simplement des données hors du port série.
Pour utiliser d'autres périphériques et écrire des pilotes pour des périphériques externes, vous devez à nouveau vous attaquer à ce redoutable éditeur de configuration ! Pour vous aider, j'ai produit une série d'exemples de projets STM32CubeIDE qui configurent et testent tous les périphériques du processeur de Blue Pill dans de petits projets faciles à comprendre. Ils sont tous open source et vous êtes libre d'en faire ce que vous voulez. Chaque périphérique est configuré et dispose ensuite d'un exemple de code pour l'exercer de manière isolée (presque !) afin que vous puissiez vous concentrer sur le fonctionnement d'un seul périphérique à la fois.
Il existe également des pilotes pour les périphériques externes, des simples puces EEPROM aux capteurs de pression, des écrans LCD texte et graphiques, un modem SIM800 pour TCP, HTTP et MQTT, des claviers, des modules radio, USB et également une intégration avec FatFS, cartes SD et FreeRTOS.
Ils peuvent tous être trouvés dans Github ici…
github.com/miniwinwm/BluePillDemo