- Ρύθμιση του Arduino IDE
- Ρύθμιση της πλακέτας STM8S103F3 για τον προγραμματισμό Arduino IDE
- Αναβοσβήνει LED στο STM8S103F3 χρησιμοποιώντας το Arduino
- Arduino Pin Mapping για STM8S103F3
- Σύνταξη βιβλιοθηκών SPL στο Arduino IDE
Το Arduino έχει αναμφισβήτητα εξελιχθεί σε ένα φιλικό προς το χρήστη και γρήγορο εργαλείο πρωτοτύπωσης, χάρη στην υποστηρικτική κοινότητα χρηστών του. Σήμερα, λόγω της ανοιχτής πηγής της φύσης, η πλατφόρμα δεν περιορίζεται μόνο στις πλακέτες Arduino αλλά και σε άλλους πίνακες ανάπτυξης όπως οι NodeMCU, ESP8266, STM32, MSP430 κ.λπ. μπορούν επίσης να προγραμματιστούν από το Arduino IDE. Εάν ενδιαφέρεστε να μάθετε πώς, μπορείτε να ακολουθήσετε τους παρακάτω συνδέσμους.
- Προγραμματισμός NodeMCU με Arduino IDE
- Προγραμματισμός ESP8266 με Arduino IDE
- Προγραμματισμός STM32 με Arduino IDE
- Προγραμματισμός MSP430 με Energeia (παρόμοιο με το Arduino)
Χωρίς αμφιβολία, το Arduino IDE είναι ιδανικό για αρχάριους, αλλά παρόλα αυτά, για επαγγελματική ανάπτυξη, είναι καλό να συνεργάζεστε με περιβάλλοντα και μεταγλωττιστές. Όπως το MPLABX για μικροελεγκτές PIC και το στούντιο σύνθεσης κώδικα για μικροελεγκτές TI. Η χρήση της εγγενούς πλατφόρμας μας επιτρέπει να εργαζόμαστε σε επίπεδο εγγραφής (ακόμη και σε επίπεδο συναρμολόγησης εάν απαιτείται) επιτρέποντας στο πρόγραμμα να είναι πιο αποτελεσματικό στη μνήμη. Γι 'αυτό όταν ξεκινήσαμε το σεμινάριο μικροελεγκτή STM8Sσειρά, η επιλογή της πλατφόρμας ήταν STVD και Cosmic C compiler, και οι δύο είναι δωρεάν για λήψη και χρήση. Δυστυχώς όμως, το STVD είναι ένα πολύ παλιό IDE και αισθάνεται σαν τη δεκαετία του '90 ενώ συνεργάζεται με αυτό. Επιπλέον, το εργαλείο προγραμματιστή STVP δεν είναι επίσης καλά ενσωματωμένο με το IDE και πρέπει να το χρησιμοποιήσετε ξεχωριστά. Αυτό αυξάνει τον χρόνο συλλογής και μεταφόρτωσης και κάνει την ανάπτυξη και τον εντοπισμό σφαλμάτων έναν πόνο.
Ψάχνω για εναλλακτικές λύσεις και εκεί ήταν που το Arduino IDE ήρθε για διάσωση. Ένα εργαλείο που ονομάζεται Sduino από τον Michael Mayor μας επιτρέπει να προγραμματίζουμε εύκολα τους μικροελεγκτές STM8s (οι περισσότεροι από τους δημοφιλείς) απευθείας από το Arduino IDE και χρειάζονται μόνο λίγα λεπτά για να το ρυθμίσετε και να ξεκινήσετε. Αυτό που είναι πιο ενδιαφέρον είναι ότι, εκτός από την υποστήριξη του προγραμματισμού στιλ Arduino, το Sduino μας επιτρέπει επίσης να χρησιμοποιήσουμε την τυπική περιφερειακή βιβλιοθήκη (SPL), με άλλα λόγια, μπορούμε σχεδόν να συντάξουμε το ίδιο πρόγραμμα στο STVD στο Arduino IDE. Αν και το Sduino είναι ένα υπέροχο εργαλείο, είναι ακόμη σε εξέλιξη και δεν υποστηρίζει πολλές από τις βιβλιοθήκες και τις λειτουργίες του Arduino. Τούτου λεχθέντος, ας μάθουμε πώς να χρησιμοποιούμε το Arduino IDE με τον πίνακα ανάπτυξης STM8S103F.Εάν είστε εντελώς νέος σε αυτόν τον πίνακα, ελέγξτε το ξεκίνημα με τον οδηγό STM8S103F. Εκτός από τους STM8S103F, το Sduino υποστηρίζει επίσης άλλους μικροελεγκτές STM8S όπως οι STM8S003, STM8S105C, STM8S105K, STM8S, STM8S208MB, ESP14 κ.λπ. Η διαδικασία που εξηγείται σε αυτό το σεμινάριο είναι η ίδια για όλους.
Ρύθμιση του Arduino IDE
Βήμα 1: Εάν είστε εντελώς νέοι στο περιβάλλον Arduino, κάντε λήψη του Arduino με βάση το λειτουργικό σας σύστημα και εγκαταστήστε το.
Βήμα 2: Ακολουθήστε το αρχείο -> Προτιμήσεις για να ανοίξετε το παράθυρο προτιμήσεων και επικολλήστε τον σύνδεσμο που δίνεται παρακάτω στο πλαίσιο κειμένου πρόσθετων πινάκων διαχείρισης URL και κάντε κλικ στο OK.
github.com/tenbaht/sduino/raw/master/package_sduino_stm8_index.json
Βήμα 3: Ακολουθήστε Εργαλεία -> Διοικητικό Συμβούλιο -> Διαχειριστής πλακέτας για να ανοίξετε το παράθυρο διαλόγου διαχειριστή πλακέτας και αναζητήστε το "sduino" Κάντε κλικ στην εγκατάσταση και κλείστε το παράθυρο διαλόγου μετά την ολοκλήρωση της εγκατάστασης.
Βήμα 4: Επανεκκινήστε το IDE και μετά ακολουθήστε Εργαλεία -> Πίνακας -> STM8S103F3 . Μπορείτε να επιλέξετε άλλους πίνακες εάν έχετε διαφορετικό πίνακα ανάπτυξης.
Τώρα το Arduino IDE είναι έτοιμο για προγραμματισμό του STM8S103F3 Development Board. Ας ρυθμίσουμε την πλακέτα, να τη συνδέσουμε στον υπολογιστή και να προγραμματίσουμε ένα απλό LED που αναβοσβήνει.
Ρύθμιση της πλακέτας STM8S103F3 για τον προγραμματισμό Arduino IDE
Συνδέστε το ST-Link V2 με την πλακέτα ανάπτυξης όπως φαίνεται παρακάτω.
Οι συνδέσεις είναι αρκετά απλές και το καλύτερο είναι ότι δεν χρειάζεστε εξωτερικά εξαρτήματα. Η ρύθμιση του υλικού μου για προγραμματισμό φαίνεται παρακάτω, μόλις χρησιμοποίησα τα θηλυκά καλώδια κεφαλίδας για να κάνω τη σύνδεσή μου. Ωστόσο, λάβετε υπόψη ότι το pinout του ST-Link ενδέχεται να διαφέρει από το δικό μου, φροντίστε να ακολουθήσετε το pinout στη συσκευή πριν πραγματοποιήσετε τις συνδέσεις.
Πραγματοποιήστε τη σύνδεση και συνδέστε τη συσκευή στον υπολογιστή σας, η εγκατάσταση του προγράμματος οδήγησης θα ξεκινήσει αυτόματα. Μπορείτε να χρησιμοποιήσετε τη διαχείριση συσκευών για να βεβαιωθείτε ότι ο υπολογιστής σας έχει ανακαλύψει σωστά το ST-LINK V2. Θα παρατηρήσετε επίσης ότι η δοκιμαστική λυχνία στην πλακέτα αναβοσβήνει εάν είναι η πρώτη φορά που τροφοδοτείτε την πλακέτα.
Αναβοσβήνει LED στο STM8S103F3 χρησιμοποιώντας το Arduino
Τώρα για ένα απλό LED που αναβοσβήνει, μπορούμε να χρησιμοποιήσουμε το πρόγραμμα αναλαμπής από την ενότητα παραδείγματος. Ακολουθήστε το αρχείο -> Παράδειγμα -> Generic_Example -> Βασικά -> Blink .
Το πλήρες πρόγραμμα για να αναβοσβήνει το ενσωματωμένο led φαίνεται παρακάτω-
άκυρη ρύθμιση () {// αρχικοποίηση ψηφιακού πινέλου LED_BUILTIN ως έξοδος. pinMode (LED_BUILTIN, OUTPUT); } // η λειτουργία βρόχου εκτελείται ξανά και ξανά για πάντα άκυρο βρόχο () {digitalWrite (LED_BUILTIN, HIGH); // ανάψτε το LED (HIGH είναι το επίπεδο τάσης) καθυστέρηση (1000). // περιμένετε ένα δεύτερο digitalWrite (LED_BUILTIN, LOW). // σβήστε το LED κάνοντας καθυστέρηση χαμηλής τάσης (1000). // περιμένετε ένα δευτερόλεπτο}
Όπως μπορείτε να δείτε, αυτό είναι πολύ παρόμοιο με το πρόγραμμα Arduino blink. Για να ανεβάσετε το πρόγραμμα, βεβαιωθείτε ότι η πλακέτα σας είναι συνδεδεμένη μέσω st-link v2 όπως συζητήθηκε παραπάνω και επιλέξτε τον προγραμματιστή ως "ST-Link / V2" όπως φαίνεται παρακάτω.
Σημείωση: Σε αντίθεση με τις πλακέτες Arduino, δεν χρειάζεται να επιλέξετε τη σωστή θύρα COM για τον προγραμματισμό της πλακέτας. Θα χρησιμοποιήσετε τη θύρα COM μόνο για σειριακή επικοινωνία.
Μόλις επιλεγεί η θύρα COM, η αποστολή του κώδικα είναι επίσης πολύ απλή. Απλώς πατήστε το κουμπί μεταφόρτωσης (περικυκλωμένο με κόκκινο χρώμα) και ο κωδικός θα μεταγλωττιστεί και θα φορτωθεί αυτόματα στον πίνακα μας.
Αυτό είναι, το πρόγραμμα μεταφορτώνεται απευθείας στον πίνακα και θα πρέπει να αναβοσβήνει η ενδεικτική λυχνία. Χωρίς εξωτερικό λογισμικό μεταφόρτωσης, όχι τίποτα. Τόσο εύκολο όσο αυτό. Μπορείτε να δείτε το βίντεο στο κάτω μέρος αυτής της σελίδας για να λειτουργήσει.
Arduino Pin Mapping για STM8S103F3
Αν θέλετε να προχωρήσετε από εδώ, πρέπει να γνωρίζετε πώς να απευθύνεστε σε κάθε καρφίτσα στον πίνακα ανάπτυξης STM8S103F3. Η χαρτογράφηση καρφιτσών μπορεί να γίνει κατανοητή από αυτήν την παρακάτω εικόνα-
Για παράδειγμα, από το διάγραμμα κυκλώματος πλακέτας STM8S103F3, γνωρίζουμε ότι το ενσωματωμένο LED είναι συνδεδεμένο στο PB5. Για να αντιμετωπίσουμε αυτήν την καρφίτσα στο Arduino, πρέπει να χρησιμοποιήσουμε το 3, επομένως το πρόγραμμα μπορεί να γραφτεί ως-
άκυρη ρύθμιση () {// αρχικοποίηση ψηφιακού πινέλου LED_BUILTIN ως έξοδος. pinMode (3, ΕΞΟΔΟΣ); } // η λειτουργία βρόχου εκτελείται ξανά και ξανά για πάντα άκυρο βρόχο () {digitalWrite (3, LOW); // ανάψτε το LED (HIGH είναι το επίπεδο τάσης) καθυστέρηση (1000). // περιμένετε ένα δεύτερο digitalWrite (3, HIGH). // σβήστε το LED κάνοντας καθυστέρηση χαμηλής τάσης (1000). // περιμένετε ένα δευτερόλεπτο}
Σύνταξη βιβλιοθηκών SPL στο Arduino IDE
Όπως αναφέρθηκε προηγουμένως, μπορούμε επίσης να χρησιμοποιήσουμε τη βιβλιοθήκη SPL στο Arduino IDE. Αν θυμάστε, στον προηγούμενο οδηγό STM8S GPIO, γράψαμε έναν κωδικό για να αναβοσβήνει το ενσωματωμένο LED και επίσης ένα εξωτερικό LED χρησιμοποιώντας το κουμπί. Ο ίδιος κωδικός με πολύ λίγες τροποποιήσεις μπορεί επίσης να συνταχθεί στο Arduino. Ο τροποποιημένος κώδικας φαίνεται παρακάτω.
#define Green_LED GPIOA, GPIO_PIN_3 άκυρη ρύθμιση () {GPIO_DeInit (GPIOA); // προετοιμασία της θύρας A για εργασία GPIO_DeInit (GPIOB). // προετοιμασία της θύρας B για εργασία // Δηλώστε το PA2 ως εισερχόμενη καρφίτσα GPIO_Init (GPIOA, GPIO_PIN_2, GPIO_MODE_IN_PU_IT). // Δηλώστε το PA3 ως καρφίτσα εξόδου ώθησης GPIO_Init (Green_LED, GPIO_MODE_OUT_PP_LOW_SLOW) // Δηλώστε το PB5 ως ώθηση εξόδου pin Pin GPIO_Init (GPIOB, GPIO_PIN_5, GPIO_MODE_OUT_PP_LOW_SLOW); } void loop () {if (GPIO_ReadInputPin (GPIOA, GPIO_PIN_2)) // εάν πατηθεί το κουμπί GPIO_WriteLow (Green_LED); // LED ON other GPIO_WriteHigh (Green_LED). // LED OFF GPIO_WriteReverse (GPIOB, GPIO_PIN_5); καθυστέρηση (100) }
Το να ολοκληρώσετε το Arduino IDE μαζί με το Sduino είναι πολύ καλή επιλογή αν θέλετε να ξεκινήσετε την ανάπτυξή σας με STM8S. Ωστόσο, η πλατφόρμα βρίσκεται ακόμη υπό ανάπτυξη και πολλές βιβλιοθήκες Arduino δεν έχουν ακόμη υποστηριχθεί. Ωστόσο, αν θέλετε να σκάψετε βαθιά και να συμβάλλετε στην ανάπτυξη, θα ήταν υπέροχο. Αλλά, για χάρη της μάθησης, θα συνεχίσω τη σειρά μαθημάτων με STVD και κοσμικό C μεταγλωττιστή.