Πίνακας περιεχομένων:
2025 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2025-01-23 14:39
Γεια! Σε αυτό το σεμινάριο θα προσπαθήσουμε να δημιουργήσουμε επικοινωνία USART μεταξύ STM32F4 ARM MCU και Python (μπορεί να αντικατασταθεί από οποιαδήποτε άλλη γλώσσα). Ας ξεκινήσουμε λοιπόν:)
Βήμα 1: Απαιτήσεις λογισμικού και υλικού
Όσον αφορά το υλικό που χρειάζεστε:
- STM32F4 Discovery Board (ή οποιαδήποτε άλλη πλακέτα STM32)
- Μετατροπέας USB σε TTL
Όσον αφορά το λογισμικό:
- STM32CubeMX
- Keil uVision5
- Python με εγκατεστημένη σειριακή βιβλιοθήκη
Βήμα 2: Διαμόρφωση STM32CubeMX
Αρχικά ας καταλάβουμε τι θέλουμε να κάνουμε. Θέλουμε να μεταδώσουμε δεδομένα στον πίνακα από την Python μέσω του USART και να ελέγξουμε αν έχουμε σωστά δεδομένα και εναλλαγή led. Έτσι, χρειαζόμαστε ενεργοποίηση USART και Led.
-
Ενεργοποιήστε το USART2 από την καρτέλα Συνδεσιμότητα.
- Αλλάξτε τη λειτουργία σε ασύγχρονη
- Ρυθμός Baud στα 9600 Bits/s
- Μήκος λέξης έως 8 Bits χωρίς ισοτιμία
- Χωρίς ελάχιστη ισοτιμία
- Από τις ρυθμίσεις DMA προσθέστε USART2_RX σε κυκλική λειτουργία
- Από τις ρυθμίσεις NVIC ενεργοποιήστε την καθολική διακοπή USART2
- Ενεργοποιήστε το LED κάνοντας κλικ στο PD12
Στη συνέχεια, δημιουργήστε κώδικα:)
Βήμα 3: Ανάπτυξη λογισμικού Keil
#περιλαμβάνω
#περιλαμβάνω
Αυτές οι βιβλιοθήκες θα χρειαστούν σε λειτουργίες συμβολοσειράς και για τον ορισμό της μεταβλητής boolean.
/ *ΚΩΔΙΚΟΣ ΧΡΗΣΤΗ ΞΕΚΙΝΗΣΕ 2 */ HAL_UART_Receive_DMA (& huart2, (uint8_t *) data_buffer, 1); / * ΚΩΔΙΚΟΣ ΧΡΗΣΤΗ ΤΕΛΟΣ 2 */
Εδώ ξεκίνησε η λήψη UART με DMA.
/ *ΚΩΔΙΚΟΣ ΧΡΗΣΤΗ ΞΕΚΙΝΗΣΕ 4 */void HAL_UART_RxCpltCallback (UART_HandleTypeDef *huart) {/ *Αποτροπή αχρησιμοποίητου ορίσματος προειδοποίηση σύνταξης */ΧΡΗΣΙΜΟΠΟΙΗΜΕΝΟ (huart); / * ΣΗΜΕΙΩΣΗ: Αυτή η λειτουργία δεν πρέπει να τροποποιηθεί, όταν απαιτείται επανάκληση, το HAL_UART_RxCpltCallback θα μπορούσε να εφαρμοστεί στο αρχείο χρήστη */ if (data_buffer [0]! = '\ N') {data_full [index_] = data_buffer [0]; ευρετήριο _ ++; } else {index_ = 0; τελειωμένο = 1; } // HAL_UART_Transmit (& huart2, data_buffer, 1, 10); } / * ΚΩΔΙΚΟΣ ΧΡΗΣΤΗ ΤΕΛΟΣ 4 * /
Αυτό είναι ISR το οποίο ενεργοποιείται όταν παίρνουμε ένα byte χαρακτήρα. Ετσι. παίρνουμε αυτό το byte και το γράφουμε στο data_full που περιέχει τα πλήρη ληφθέντα δεδομένα μέχρι να πάρουμε '\ n'. Όταν παίρνουμε '\ n' κάνουμε την τελική σημαία 1 και τον βρόχο while:
ενώ (1) { / * ΚΩΔΙΚΟΣ ΧΡΗΣΤΗ ΤΕΛΟΣ ΛΟΓΟ * / εάν (τελειώσει) {if (strcmp (data_full, cmp_) == 0) {HAL_GPIO_TogglePin (GPIOD, GPIO_PIN_12); } memset (data_full, '\ 0', strlen (data_full)); τελειωμένο = 0; } else {_NOP (); } / * ΚΩΔΙΚΟΣ ΧΡΗΣΤΗ ΞΕΚΙΝΗΣΕ 3 * /}
Εάν η τελική σημαία είναι Υ HIGHΗΛΗ συγκρίνουμε τα περιεχόμενα των πλήρων ληφθέντων δεδομένων και δεδομένων που επιθυμούμε και αν είναι ίσα αλλάζουμε το led. Στη συνέχεια, καθαρίζουμε την τελική σημαία και περιμένουμε νέα δεδομένα, καθώς και τον πίνακα data_full για να μην αντικατασταθεί από τον πίνακα.
Βήμα 4: Ανάπτυξη λογισμικού Python
Έτσι, εδώ θέλουμε να στείλουμε τον αριθμό μας με '/n' στο τέλος, επειδή το λογισμικό Keil θα πρέπει να το δει για να μάθει το τέλος.
σειρά εισαγωγής
ser = serial. Serial ('COM17') #ελέγξτε τη θύρα στη συσκευή σας από τη Διαχείριση Συσκευών
ser.write (b'24 / n ')
Θα πρέπει να βλέπετε ότι το LED αλλάζει κάθε φορά που στέλνετε '24 / n '. Εάν στείλετε οτιδήποτε άλλο, δεν πρέπει να το επηρεάσει.
Βήμα 5: Συμπέρασμα
Φτάσαμε στο τέλος του σεμιναρίου. εάν έχετε οποιοδήποτε πρόβλημα ή ερώτηση, μη διστάσετε να ρωτήσετε. Θα προσπαθήσω να βοηθήσω όσο μπορώ. Ευχαριστώ πολύ:)
Συνιστάται:
Πώς να δημιουργήσετε και να εισαγάγετε έναν πίνακα και να προσθέσετε επιπλέον στήλες και/ή σειρές σε αυτόν τον πίνακα στο Microsoft Office Word 2007: 11 βήματα
Πώς να δημιουργήσετε και να εισαγάγετε έναν πίνακα και να προσθέσετε επιπλέον στήλες και/ή σειρές σε αυτόν τον πίνακα στο Microsoft Office Word 2007: Είχατε ποτέ πολλά δεδομένα με τα οποία εργάζεστε και σκεφτήκατε τον εαυτό σας … " πώς μπορώ να κάνω όλα αυτά τα δεδομένα φαίνονται καλύτερα και είναι πιο εύκολα κατανοητά; " Αν ναι, τότε η απάντησή σας μπορεί να είναι ένας πίνακας στο Microsoft Office Word 2007
Σύνδεση επεξεργασίας και Arduino και Make 7 Segment και Servo GUI Controller: 4 βήματα
Connecting Processing and Arduino and Make 7 Segment and Servo GUI Controller: Για ορισμένα έργα που κάνατε πρέπει να χρησιμοποιήσετε το Arduino καθώς παρέχει μια εύκολη πλατφόρμα πρωτοτύπων, αλλά η εμφάνιση γραφικών σε σειριακή οθόνη του Arduino μπορεί να διαρκέσει πολύ και είναι ακόμη και δύσκολο να γίνει. Μπορείτε να εμφανίσετε γραφήματα στο Arduino Serial Monitor bu
Βασικό κινητό τηλέφωνο με χρήση του STM32F407 Discovery Kit και GSM A6 Module: 14 βήματα (με εικόνες)
Βασικό κινητό τηλέφωνο με χρήση του STM32F407 Discovery Kit και GSM A6 Module: Θέλατε ποτέ να δημιουργήσετε ένα δροσερό ενσωματωμένο έργο ;. Αν ναι, τι θα λέγατε να φτιάξετε ένα από τα πιο δημοφιλή και αγαπημένα gadget όλων, δηλαδή το κινητό τηλέφωνο !!!. Σε αυτό το Instructable, θα σας καθοδηγήσω πώς να φτιάξετε ένα βασικό κινητό τηλέφωνο χρησιμοποιώντας το STM
8 Έλεγχος ρελέ με NodeMCU και δέκτη IR χρησιμοποιώντας WiFi και IR Τηλεχειριστήριο και εφαρμογή Android: 5 βήματα (με εικόνες)
8 Έλεγχος ρελέ με δέκτη NodeMCU και IR χρησιμοποιώντας WiFi και IR Τηλεχειριστήριο και εφαρμογή Android: Έλεγχος 8 διακοπτών ρελέ χρησιμοποιώντας nodemcu και δέκτη ir μέσω wifi και ir απομακρυσμένης και εφαρμογής Android. Το ir remote λειτουργεί ανεξάρτητα από τη σύνδεση wifi. ΕΔΩ ΕΙΝΑΙ ΕΝΗΜΕΡΩΜΕΝΗ ΚΛΙΚ ΕΔΩ
Ένδειξη θερμοκρασίας και υγρασίας και συλλογή δεδομένων με Arduino και επεξεργασία: 13 βήματα (με εικόνες)
Εμφάνιση θερμοκρασίας και υγρασίας και συλλογή δεδομένων με Arduino και επεξεργασία: Εισαγωγή: Πρόκειται για ένα έργο που χρησιμοποιεί έναν πίνακα Arduino, έναν αισθητήρα (DHT11), έναν υπολογιστή Windows και ένα πρόγραμμα επεξεργασίας (δωρεάν λήψη) για την εμφάνιση δεδομένων θερμοκρασίας, υγρασίας σε ψηφιακή και φόρμα γραφήματος, εμφάνιση ώρας και ημερομηνίας και εκτέλεση χρόνου αντίστροφης μέτρησης