- Επιλογή και λήψη των απαιτούμενων πλατφορμών ανάπτυξης για πίνακες Nucleo64
- Διάγραμμα κυκλώματος και ρύθμιση υλικού
- Ξεκινώντας με το STM32CubeMX για τους πίνακες ανάπτυξης STM32 Nucleo64
- Προγραμματισμός πλακέτας ανάπτυξης STM32 Nucleo64 χρησιμοποιώντας το TrueSTUDIO
- Πρόγραμμα STM32 Nucleo64 για τον έλεγχο των LED χρησιμοποιώντας το κουμπί
- Εντοπισμός σφαλμάτων και μεταφόρτωση κώδικα στο STM32 Necleo64 Development Board χρησιμοποιώντας το TrueSTUDIO
Πολλοί από εμάς θα πρέπει να γνωρίζουμε τους δημοφιλείς μικροελεγκτές και τους πίνακες ανάπτυξης όπως Arduino, Raspberry Pi, ESP8266, NoduMCU, 8051 κ.λπ. Στην πραγματικότητα, για τους περισσότερους ανθρώπους, το Arduino θα ήταν ο πρώτος πίνακας ανάπτυξης τους, αλλά καθώς σκάβουμε βαθιά και αρχίζουμε επαγγελματικά σχέδια, σύντομα θα συνειδητοποιήσουμε τους περιορισμούς του Arduino (όπως το κόστος, την ευελιξία, τη σταθερότητα, την ταχύτητα κ.λπ.) και θα κατανοήσουμε την ανάγκη μετάβασης σε μια πιο εγγενή πλατφόρμα Microcontroller όπως PIC, STM, Renesas κ.λπ.
Έχουμε ήδη καλύψει μια σειρά μαθημάτων PIC Microcontroller, τα οποία καθοδηγούν τους αρχάριους για την εκμάθηση PIC microcontrollers. Παρομοίως, ξεκινώντας με αυτό το άρθρο, θα σχεδιάσουμε επίσης μια ακολουθία STM32 Nucleo64 Development Board Tutorials που μπορούν να βοηθήσουν τους απόλυτους αρχάριους να μάθουν και να αναπτύξουν χρησιμοποιώντας την πλατφόρμα STM32. Οι Πίνακες Ανάπτυξης Nucleo64 είναι πλατφόρμα χαμηλού κόστους και εύχρηστη για επαγγελματίες προγραμματιστές καθώς και για χόμπι. Εάν είστε εντελώς νέος στους πίνακες ανάπτυξης STM32 Nucleo64, ρίξτε μια ματιά σε αυτό το βίντεο αξιολόγησης Nucleo64 για να κατανοήσετε τα βασικά αυτού του πίνακα προτού προχωρήσετε περαιτέρω. Το βίντεο δείχνει επίσης τον τρόπο προγραμματισμού του STM32 χρησιμοποιώντας την πλατφόρμα ARM Mbed αλλά για αυτό το σεμινάριο, θα χρησιμοποιήσουμε μια άλλη πλατφόρμα δωρεάν χρήσης από την ST Microelectronics που ονομάζεται TrueSTUDIO.
Σημείωση: Υπάρχουν πολλές εκδόσεις του STM32 Nucleo64 Development Boards, ο συγκεκριμένος πίνακας που χρησιμοποιείται σε αυτό το σεμινάριο είναι το NUCLEO-F030R8. Επιλέξαμε αυτόν τον πίνακα κυρίως λόγω του χαμηλού κόστους του. Ακόμα και αν έχετε διαφορετική έκδοση, τα περισσότερα πράγματα που συζητούνται στο σεμινάριο θα αρκούν για να ξεκινήσετε.
Επιλογή και λήψη των απαιτούμενων πλατφορμών ανάπτυξης για πίνακες Nucleo64
Για να ξεκινήσετε με οποιονδήποτε μικροελεγκτή θα χρειαστεί IDE προγραμματισμού, όπως έχουμε Arduino IDE για πίνακες Arduino, Atmel Studio για μικροελεγκτή AVR, MP Lab για PIC κ.λπ. Η οικογένεια STM32 αποτελείται από μικροελεγκτές 32-bit που υποστηρίζουν τα ακόλουθα IDE και αλυσίδες εργαλείων:
- IAR Embedded Workbench® για ARM® (EWARM).
- MDK-ARM Keil
- TrueSTUDIO
- Πάγκος εργασίας συστήματος για STM32
Εδώ για τα σεμινάρια μας, το TrueSTUDIO θα χρησιμοποιηθεί για τη σύνταξη, τη μεταγλώττιση και τον εντοπισμό σφαλμάτων κώδικα, επειδή είναι δωρεάν για λήψη και χρήση ακόμη και για εμπορικά έργα χωρίς καμία απαίτηση άδειας. Στη συνέχεια, το STM32CubeMX θα χρησιμοποιηθεί για τη δημιουργία περιφερειακών προγραμμάτων οδήγησης για πλακέτες STM32 για να διευκολύνει τον προγραμματισμό. Για να ανεβάσετε το πρόγραμμά μας (αρχείο hex) στον πίνακα ανάπτυξης μας, οι άνθρωποι συνήθως χρησιμοποιούν το εργαλείο STM32 ST-LINK Utility, αλλά αντ 'αυτού, θα χρησιμοποιούμε το ίδιο το TrueSTUDIO. Το TrueSTUDIO διαθέτει λειτουργία εντοπισμού σφαλμάτων που επιτρέπει στους προγραμματιστές να ανεβάζουν το αρχείο hex απευθείας στον πίνακα STM32. Τόσο το TrueSTUIO όσο και το STM32CubeMX είναι εύκολο στη λήψη, απλώς ακολουθήστε τον παρακάτω σύνδεσμο, εγγραφείτε και κατεβάστε τη ρύθμιση. Στη συνέχεια, εγκαταστήστε τα στον φορητό υπολογιστή σας.
- Λήψη STM32Cube MX
- Λήψη TrueSTUDIO
Διάγραμμα κυκλώματος και ρύθμιση υλικού
Πριν προχωρήσουμε με την ενότητα λογισμικού και την κωδικοποίηση, ας προετοιμάσουμε τον πίνακα μας για αυτό το έργο. Όπως αναφέρθηκε προηγουμένως σε αυτό το άρθρο, πρόκειται να ελέγξουμε ένα LED χρησιμοποιώντας ένα κουμπί. Τώρα, εάν έχετε δει το βίντεο συνδεδεμένο παραπάνω, θα πρέπει να γνωρίζετε ήδη ότι το STM32 Development Board σας έχει δύο σετ ακίδων σύνδεσης και στις δύο πλευρές που ονομάζονται ST Morpho pin. Έχουμε συνδέσει ένα μπουτόν και ένα LED σε αυτές τις ακίδες όπως φαίνεται στο παρακάτω διάγραμμα κυκλώματος.
Οι συνδέσεις κυκλώματος είναι εύκολες για αυτό το έργο, πρέπει να συνδέσουμε ένα LED στο PA5 του PORTA και έναν διακόπτη στο PC13 του PORTC σε σχέση με το GND. Μόλις έγιναν οι συνδέσεις, η δοκιμαστική μου ρύθμιση έμοιαζε έτσι.
Εναλλακτικά, μπορούμε επίσης να χρησιμοποιήσουμε το ενσωματωμένο LED και το κουμπί στο ταμπλό. Αυτά τα ενσωματωμένα LED και το μπουτόν συνδέονται επίσης στον ίδιο πείρο όπως φαίνεται στο διάγραμμα κυκλώματος. Έχουμε προσθέσει εξωτερικά στοιχεία μόνο για εξάσκηση. Το παρακάτω διάγραμμα ακίδων του STM32 Development Board θα είναι χρήσιμο για να μάθετε πού συνδέονται κάθε καρφίτσα morpho.
Ξεκινώντας με το STM32CubeMX για τους πίνακες ανάπτυξης STM32 Nucleo64
Βήμα 1: Μετά την εγκατάσταση, εκκινήστε το STM32CubeMX και, στη συνέχεια, επιλέξτε τον επιλογέα πλακέτας πρόσβασης για να επιλέξετε την πλακέτα STM32.
Βήμα 2: Τώρα αναζητήστε την πλακέτα με το όνομα της πλακέτας STM32 όπως το NUCLEO-F030R8 και κάντε κλικ στον πίνακα που εμφανίζεται στην εικόνα. Εάν έχετε διαφορετική αναζήτηση στον πίνακα για το αντίστοιχο όνομά της. Το λογισμικό θα υποστηρίζει όλους τους πίνακες ανάπτυξης STM32 από την ST Microelectronics.
Βήμα 3: Τώρα κάντε κλικ στο ναι όπως φαίνεται στην παρακάτω εικόνα, για να προετοιμάσετε όλα τα περιφερειακά στην προεπιλεγμένη λειτουργία τους. Μπορούμε αργότερα να αλλάξουμε τα απαιτούμενα όπως απαιτείται από το έργο μας.
Αφού κάνετε κλικ στο "Ναι", η οθόνη θα μοιάζει με την παρακάτω εικόνα και την πράσινη καρφίτσα που υποδεικνύει ότι ξεκινούν από προεπιλογή.
Βήμα 4: Τώρα οι χρήστες μπορούν να επιλέξουν την επιθυμητή ρύθμιση από τις κατηγορίες. Εδώ σε αυτό το σεμινάριο, πρόκειται να αλλάξουμε ένα LED χρησιμοποιώντας ένα κουμπί. Πρέπει λοιπόν να κάνουμε τον πείρο LED ως έξοδο και τον πινέλο εναλλαγής ως INPUT.
Μπορείτε να επιλέξετε οποιαδήποτε καρφίτσα, αλλά επιλέγω το PA5 και αλλάζω την κατάστασή του σε GPIO_Output για να το κάνει να λειτουργεί ως pin εξόδου όπως φαίνεται στην παρακάτω εικόνα.
Παρομοίως, επιλέγω PC13 ως GPIO_Input ώστε να μπορώ να διαβάσω την κατάσταση του κουμπιού μου.
Εναλλακτικά, μπορούμε να δημιουργήσουμε επίσης καρφίτσες διαμόρφωσης από την καρτέλα pinout και διαμόρφωσης, όπως φαίνεται παρακάτω.
Βήμα 5: Στο επόμενο βήμα, ο χρήστης μπορεί να ορίσει την επιθυμητή συχνότητα για τον μικροελεγκτή και τις ακίδες σύμφωνα με τον εξωτερικό και τον εσωτερικό ταλαντωτή. Από προεπιλογή, επιλέγεται ένας εσωτερικός κρυσταλλικός ταλαντωτής 8 MHz και με τη χρήση PLL, αυτός ο 8 μετατρέπεται σε 48MHz. Αυτό σημαίνει ότι από προεπιλογή η πλακέτα STM32 ή ο μικροελεγκτής και οι ακίδες θα λειτουργούν στα 48MHz.
Βήμα 6: Τώρα μεταβείτε στον διαχειριστή έργου και δώστε ένα όνομα στο έργο σας, την τοποθεσία του έργου και επιλέξτε αλυσίδα εργαλείων ή IDE. Εδώ χρησιμοποιούμε το TrueSTUDIO, οπότε έχω επιλέξει το ίδιο όπως φαίνεται παρακάτω.
Βήμα 7: Τώρα κάντε κλικ στο Δημιουργία κωδικού σήματος από τον κόκκινο κύκλο στην παρακάτω εικόνα.
Βήμα 8: Τώρα θα δείτε ένα αναδυόμενο παράθυρο όπως δίνεται και κάντε κλικ στο ανοιχτό έργο. Ωστόσο, βεβαιωθείτε ότι έχετε εγκαταστήσει το TrueSTUDIO πριν από αυτό το βήμα.
Προγραμματισμός πλακέτας ανάπτυξης STM32 Nucleo64 χρησιμοποιώντας το TrueSTUDIO
Τώρα ο κώδικας ή το έργο σας θα ανοίξει αυτόματα στο TrueSTUDIO εάν το TrueSTUDIO ζητήσει τη θέση του χώρου εργασίας και, στη συνέχεια, δώστε μια θέση στο χώρο εργασίας ή μεταβείτε με την προεπιλεγμένη θέση.
Ο χρήστης θα δει την παρακάτω οθόνη και, στη συνέχεια, πρέπει να κάνει κλικ στο γωνιακό σημάδι με κόκκινο χρώμα.
Και τώρα μπορούμε να δούμε κώδικα στο TreuSTUDIO IDE μας. Στην αριστερή πλευρά κάτω από το φάκελο 'src' μπορούμε να δούμε άλλα αρχεία προγράμματος (με επέκταση.c) που έχουν ήδη δημιουργηθεί για εμάς από το STM32Cube. Απλά πρέπει να προγραμματίσουμε το αρχείο main.c. Ακόμα και στο αρχείο main.c θα έχουμε ήδη λίγα πράγματα για εμάς από το CubeMX, πρέπει να το επεξεργαστούμε μόνο για να ταιριάζει στο πρόγραμμά μας. Ο πλήρης κωδικός μέσα στο αρχείο main.c δίνεται στο κάτω μέρος αυτής της σελίδας.
Πρόγραμμα STM32 Nucleo64 για τον έλεγχο των LED χρησιμοποιώντας το κουμπί
Δεδομένου ότι όλο το απαιτούμενο πρόγραμμα οδήγησης και ο κωδικός παράγεται από το STM32CubeMX, πρέπει να διαμορφώσουμε μόνο έναν πείρο LED ως έξοδο και ένα μπουτόν ως είσοδο. Το πρόγραμμα για τον έλεγχο του led χρησιμοποιώντας το κουμπί πρέπει να είναι γραμμένο στο αρχείο main.c. Το πλήρες πρόγραμμα βρίσκεται στο κάτω μέρος αυτής της σελίδας. Η εξήγησή του έχει ως εξής
Έχουμε μόνο γραπτό κώδικα για εναλλαγή του LED χρησιμοποιώντας το κουμπί. Για να το επιτύχουμε αυτό, ορίζουμε πρώτα καρφίτσες για LED και κουμπιά. Εδώ έχουμε ορίσει ένα LED στον αριθμό Pin 5 του PORTA
# καθορισμός LED_PORT GPIOA # καθορισμός LED_PIN GPIO_PIN_5
Και ορίστε διακόπτη στον αριθμό Pin 13 του PORTC.
# καθορισμός SW_PORT GPIOC # καθορισμός SW_PIN GPIO_PIN_13
Στη συνέχεια, στην κύρια λειτουργία, έχουμε αρχικοποιήσει όλα τα χρησιμοποιημένα περιφερειακά.
/ * Αρχικοποιήστε όλα τα διαμορφωμένα περιφερειακά * / MX_GPIO_Init (); MX_USART2_Init ();
Και, στη συνέχεια, διαβάστε το κουμπί χρησιμοποιώντας τη δήλωση if και αν βρεθεί το κουμπί (LOW), τότε το LED θα αλλάξει την κατάστασή του.
Ενώ (1) {/ * ΤΕΛΟΣ ΚΩΔΙΚΟΥ ΧΡΗΣΤΗ * / Εάν (! HAL_GPIO_ReadPin (SW_PORT, SW_PIN)) {HAL_GPIO_TogglePin (SW_PORT, LED_PIN); HAL_Delay (200); } / * ΚΩΔΙΚΟΣ ΧΡΗΣΤΗΣ ΑΠΟ ΤΗΝ 3 * /}
Εδώ η συνάρτηση HAL_GPIO_ReadPin (SW_PORT, SW_PIN) έχει δύο ορίσματα, το ένα είναι PORT και το άλλο είναι μια καρφίτσα στην οποία είναι συνδεδεμένος ο διακόπτης και αυτός ο ακροδέκτης έχει διαμορφωθεί ως INPUT κατά τη διαμόρφωση περιφερειακών στο STM32CubeMX.
Εντοπισμός σφαλμάτων και μεταφόρτωση κώδικα στο STM32 Necleo64 Development Board χρησιμοποιώντας το TrueSTUDIO
Τώρα συνδέστε την πλακέτα σας στον υπολογιστή χρησιμοποιώντας το καλώδιο προγραμματιστή. Μόλις το συνδέσετε, το πρόγραμμα οδήγησης που απαιτείται για την πλακέτα θα πρέπει να ληφθεί αυτόματα, μπορείτε να το ελέγξετε χρησιμοποιώντας τη διαχείριση συσκευών.
Στη συνέχεια, Πατήστε το εικονίδιο εντοπισμού σφαλμάτων που επισημαίνεται με τον κόκκινο κύκλο στην παρακάτω εικόνα για να μεταγλωττίσετε το πρόγραμμα και να εισέλθετε σε λειτουργία εντοπισμού σφαλμάτων.
Στη λειτουργία εντοπισμού σφαλμάτων, ο κώδικας θα μεταφορτωθεί αυτόματα. Τώρα πρέπει να εκτελέσουμε τον κωδικό πατώντας «Συνέχιση» ή F8 (επισημαίνεται στο κόκκινο κύκλωμα στην παρακάτω εικόνα).
Τώρα μπορούμε να δοκιμάσουμε τον έλεγχο του LED πατώντας το κουμπί. Σύμφωνα με τον κωδικό, το LED πρέπει να αλλάζει την κατάστασή του κάθε φορά που πατάτε το κουμπί. Η πλήρης εργασία μπορεί επίσης να βρεθεί στο βίντεο που συνδέεται στο κάτω μέρος αυτής της σελίδας.
Μετά τη δοκιμή, μπορούμε επίσης να τερματίσουμε το πρόγραμμα πατώντας το εικονίδιο τερματισμού, που επισημαίνεται με τον κόκκινο κύκλο στην παρακάτω εικόνα.