Table des matières:
- Étape 1: Configuration logicielle et matérielle requise
- Étape 2: Configuration du STM32CubeMX
- Étape 3: Développement du logiciel Keil
- Étape 4: Développement de logiciels Python
- Étape 5: Conclusion
Vidéo: Carte de découverte STM32F4 et communication Python USART (STM32CubeMx) : 5 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:07
Salut! Dans ce tutoriel, nous allons essayer d'établir une communication USART entre le MCU ARM STM32F4 et Python (il peut être remplacé par n'importe quel autre langage). Alors, commençons:)
Étape 1: Configuration logicielle et matérielle requise
En termes de matériel, vous avez besoin de:
- Carte de découverte STM32F4 (ou toute autre carte STM32)
- Convertisseur USB vers TTL
Au niveau du logiciel:
- STM32CubeMX
- Keil uVision5
- Python avec bibliothèque série installée
Étape 2: Configuration du STM32CubeMX
Comprenons d'abord ce que nous voulons faire. Nous voulons transmettre des données à bord à partir de Python via USART et vérifier si nous avons des données correctes et basculer la LED. Nous devons donc activer USART et Led.
-
Activez USART2 à partir de l'onglet Connectivité.
- Changer de mode en Asynchrone
- Débit en bauds à 9600 Bits/s
- Longueur de mot à 8 Bits sans parité
- Pas de bit de parité
- À partir des paramètres DMA, ajoutez USART2_RX en mode circulaire
- À partir des paramètres NVIC, activez l'interruption globale USART2
- Activer la LED en cliquant sur PD12
Ensuite, générez du code:)
Étape 3: Développement du logiciel Keil
#comprendre
#comprendre
Ces bibliothèques seront nécessaires dans les opérations sur les chaînes et pour définir les variables booléennes.
/* USER CODE BEGIN 2 */ HAL_UART_Receive_DMA(&huart2, (uint8_t *) data_buffer, 1); /* CODE UTILISATEUR FIN 2 */
Ici, la réception UART avec DMA a commencé.
/* USER CODE BEGIN 4 */void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { /* Empêcher l'avertissement de compilation des arguments inutilisés */ UNUSED(huart); /* NOTE: Cette fonction ne doit pas être modifiée, lorsque le rappel est nécessaire, le HAL_UART_RxCpltCallback peut être implémenté dans le fichier utilisateur */ if(data_buffer[0] != '\n'){ data_full[index_] = data_buffer[0]; index_++; }autre{ index_ = 0; fini = 1; } //HAL_UART_Transmit(&huart2, data_buffer, 1, 10); } /* CODE UTILISATEUR FIN 4 */
C'est ISR qui est activé lorsque nous obtenons un octet de caractère. Donc. nous obtenons cet octet et l'écrivons dans le data_full qui contient toutes les données reçues jusqu'à ce que nous obtenions '\n'. Lorsque nous obtenons '\n', nous créons le drapeau fini 1 et la boucle while:
while (1) { /* USER CODE END WHILE */ if(finished){ if(strcmp(data_full, cmp_) == 0){ HAL_GPIO_TogglePin(GPIOD, GPIO_PIN_12); } memset(data_full, '\0', strlen(data_full)); fini = 0; }autre{ _NOP (); } /* CODE UTILISATEUR DEBUT 3 */ }
Si le drapeau fini est ÉLEVÉ, nous comparons le contenu des données reçues complètes et des données que nous désirons et s'ils sont égaux, nous basculons la LED. Après cela, nous effaçons l'indicateur de finition et attendons de nouvelles données et effaçons également le tableau data_full afin de ne pas écraser le tableau.
Étape 4: Développement de logiciels Python
Donc, ici, nous voulons envoyer notre numéro avec '/n' à la fin, car le logiciel Keil aura besoin de le voir pour connaître la fin.
importer la série
ser = serial. Serial('COM17') #vérifiez ce port sur votre appareil à partir du Gestionnaire de périphériques
ser.write(b'24\n')
Vous devriez voir que la LED bascule à chaque fois que vous envoyez '24\n'. Si vous envoyez autre chose, cela ne devrait pas l'affecter.
Étape 5: Conclusion
Nous avons atteint la fin du tutoriel. si vous avez un problème ou une question, n'hésitez pas à demander. Je vais essayer d'aider autant que je peux. Merci beaucoup:)
Conseillé:
Installation De La Carte TagTagTag Pour Nabaztag / Installer la carte TagTagTag sur votre Nabaztag : 15 étapes
Installation De La Carte TagTagTag Pour Nabaztag / Installation du TagTagTag Board on Your Nabaztag : (voir ci-dessous pour la version anglaise)La carte TagTagTag a été créée en 2018 lors de Maker Faire Paris pour faire renaitre les Nabaztag et les Nabaztag:tag. Elle a fait l'objet ensuite d'un financement participatif sur Ulule en juin 2019, si vous souhaitez
SOLARBOI - un rover solaire 4G à la découverte du monde ! : 3 étapes (avec photos)
SOLARBOI - un rover solaire 4G à la découverte du monde ! : Depuis que je suis jeune, j'ai toujours aimé explorer. Au fil des ans, j'ai vu de nombreuses versions de voitures télécommandées contrôlées par WiFi, et elles avaient l'air assez amusantes. Mais je rêvais d'aller tellement plus loin - dans le monde réel, bien au-delà des limites
Traceur de courbe semi-conducteur amélioré avec la découverte analogique 2: 8 étapes
Traceur de courbe semi-conducteur amélioré avec l'Analog Discovery 2: Le principe du traçage de courbe avec l'AD2 est décrit dans les liens suivants ci-dessous : https://www.instructables.com/id/Semiconductor-Cur… https://reference.digilentinc .com/reference/instru… Si le courant mesuré est assez élevé, alors l'accu
Configuration de FreeRTOS à partir de zéro sur le kit de découverte STM32F407 : 14 étapes
Configuration de FreeRTOS à partir de zéro sur le kit de découverte STM32F407 : Choisir FreeRTOS comme système d'exploitation en temps réel pour votre projet embarqué est un excellent choix. Le FreeRTOS est vraiment gratuit et fournit de nombreuses fonctionnalités RTOS simples et efficaces. Mais configurer freeRTOS à partir de zéro peut être difficile ou je peux dire un bi
Téléphone mobile de base utilisant le kit de découverte STM32F407 et le module GSM A6 : 14 étapes (avec photos)
Téléphone mobile de base utilisant le kit de découverte STM32F407 et le module GSM A6 : avez-vous déjà voulu créer un projet intégré sympa ?. Si oui, que diriez-vous de construire l'un des gadgets les plus populaires et préférés de tous, à savoir le téléphone portable !!!. Dans ce Instructable, je vais vous guider sur la façon de construire un téléphone mobile de base à l'aide de la STM