- Opsætning af Arduino IDE
- Opsætning af STM8S103F3-kortet til Arduino IDE-programmering
- LED blinker på STM8S103F3 ved hjælp af Arduino
- Arduino Pin Mapping til STM8S103F3
- Kompilering af SPL-biblioteker på Arduino IDE
Arduino er utvivlsomt vokset til et brugervenligt og hurtigt prototypeværktøj takket være dets støttende brugerfællesskab. I dag er platformen på grund af sin open source-natur ikke kun begrænset til Arduino-kortene, men også til andre udviklingskort som NodeMCU, ESP8266, STM32, MSP430 osv. Kan også programmeres fra Arduino IDE. Hvis du er interesseret i at vide hvordan, kan du følge nedenstående links.
- Programmering af NodeMCU med Arduino IDE
- Programmering ESP8266 med Arduino IDE
- Programmering STM32 med Arduino IDE
- Programmering MSP430 med Energeia (ligner Arduino)
Uden tvivl er Arduino IDE fantastisk til begyndere, men stadig til professionel udvikling er det godt at arbejde med native udviklingsmiljøer og kompilatorer. Ligesom MPLABX til PIC Microcontrollers og Code Composer Studio til TI Microcontrollers. Brug af den indbyggede platform giver os mulighed for at arbejde på registerniveau (selv monteringsniveau, hvis det kræves), hvilket gør det muligt for programmet at være mere hukommelseseffektivt. Dette er grunden til, da vi startede STM8S Microcontroller tutorialserie, valg af platform var STVD og Cosmic C compiler, som begge er gratis at downloade og bruge. Desværre er STVD en meget gammel IDE, og det føles som 90'ere, mens du arbejder med det. Derudover er STVP-programmeringsværktøjet heller ikke godt integreret med IDE, og du skal bruge det separat. Dette øger kompilerings- og uploadtiden og gør udvikling og fejlretning til en smerte.
Jeg søgte efter alternativer, og det var da Arduino IDE kom til redning. Et værktøj kaldet Sduino af Michael Mayor giver os mulighed for nemt at programmere STM8s Microcontrollers (de fleste af de populære) fra Arduino IDE direkte, og det tager kun få minutter at opsætte dette og komme i gang. Hvad der er mere interessant er, at bortset fra understøttelse af Arduino-stilprogrammering, giver Sduino os også mulighed for at bruge Standard Peripheral Library (SPL), med andre ord kan vi næsten kompilere det samme program på STVD til Arduino IDE. Selvom Sduino er et sejt værktøj, er det stadig under udvikling og understøtter endnu ikke mange af Arduino-bibliotekerne og funktionerne. Når det er sagt, lad os lære at bruge Arduino IDE med STM8S103F Development Board.Hvis du er helt ny på dette tavle, skal du kontrollere at komme i gang med STM8S103F tutorial. Bortset fra STM8S103F understøtter Sduino også andre STM8S mikrocontrollere som STM8S003, STM8S105C, STM8S105K, STM8S, STM8S208MB, ESP14 osv. Proceduren forklaret i denne vejledning er den samme for alle.
Opsætning af Arduino IDE
Trin 1: Hvis du er helt ny i Arduino-miljøet, skal du downloade Arduino baseret på dit operativsystem og installere det.
Trin 2: Følg Filer -> Indstillinger for at åbne vinduet med præferencer og indsætte nedenstående link i tekstfeltet til styring af URL-adresser, og klik på OK.
github.com/tenbaht/sduino/raw/master/package_sduino_stm8_index.json
Trin 3: Følg Tools -> Board -> Board manager for at åbne dialogboksen board manager og søge efter "sduino". Klik på installer og luk dialogboksen, når installationen er afsluttet.
Trin 4: Genstart IDE, og følg derefter Tools -> Board -> STM8S103F3 . Du kan vælge andre brædder, hvis du har et andet udviklingskort.
Nu er Arduino IDE klar til programmering af STM8S103F3 Development Board. Lad os sætte brættet op, slutte det til computeren og programmere et simpelt LED-blink.
Opsætning af STM8S103F3-kortet til Arduino IDE-programmering
Forbind ST-Link V2 med udviklingskortet som vist nedenfor.
Forbindelserne er ret lige fremad, og det bedste er, at du ikke har brug for eksterne komponenter. Min hardwareopsætning til programmering er vist nedenfor, jeg har lige brugt de kvindelige headerledninger til at oprette min forbindelse. Bemærk dog, at pin-out på din ST-Link kan afvige fra min. Sørg for at følge pinout på enheden, før du opretter forbindelser.
Opret forbindelsen og tilslut enheden til din computer, driverinstallationen skal begynde automatisk. Du kan bruge enhedsadministratoren til at sikre, om din computer har opdaget ST-LINK V2 korrekt. Du vil også bemærke, at test-LED'en på tavlen blinker, hvis det er første gang, at tændes for tavlen.
LED blinker på STM8S103F3 ved hjælp af Arduino
Nu for en simpel LED-blinkning kan vi bruge blinkprogrammet fra eksempelafsnittet. Følg File -> Eksempel -> Generic_Example -> Basics -> Blink .
Det komplette program til at blinke den indbyggede LED er vist nedenfor -
ugyldig opsætning () {// initialiser digital pin LED_BUILTIN som output. pinMode (LED_BUILTIN, OUTPUT); } // loop-funktionen kører igen og igen for evigt ugyldig loop () {digitalWrite (LED_BUILTIN, HIGH); // tænd lysdioden (HIGH er spændingsniveauet) forsinkelse (1000); // vent på en anden digitalWrite (LED_BUILTIN, LOW); // sluk lysdioden ved at gøre spændingen LAV forsinkelse (1000); // vent et øjeblik}
Som du kan se, ligner dette meget Arduino-blinkprogrammet. For at uploade programmet skal du sørge for, at dit kort er forbundet via st-link v2 som beskrevet ovenfor, og vælg programmøren som “ST-Link / V2” som vist nedenfor.
Bemærk: I modsætning til Arduino-kort behøver du ikke vælge den rigtige COM-port til programmering af kortet. Du bruger kun COM-porten til seriel kommunikation.
Når COM-porten er valgt, er det også meget simpelt at uploade koden. Bare tryk på upload-knappen (omgivet af rødt nedenfor), så bliver koden samlet og uploadet automatisk til vores tavle.
Det er det, programmet uploades direkte til tavlen, og du skal se den indbyggede LED blinke. Ingen ekstern uploadsoftware, intet. Så let som det. Du kan tjekke videoen nederst på denne side for at arbejde.
Arduino Pin Mapping til STM8S103F3
Hvis du vil fortsætte herfra, skal du vide, hvordan du adresserer hver pin på STM8S103F3 Development-kortet. Pin-kortlægningen kan forstås ud fra dette billede nedenfor-
For eksempel fra STM8S103F3-kredsløbsdiagrammet ved vi, at den indbyggede LED er forbundet til PB5. For at adressere denne pin på Arduino skal vi bruge 3, hvorfor programmet kan skrives som-
ugyldig opsætning () {// initialiser digital pin LED_BUILTIN som output. pinMode (3, OUTPUT); } // loop-funktionen kører igen og igen for evigt ugyldig loop () {digitalWrite (3, LOW); // tænd lysdioden (HIGH er spændingsniveauet) forsinkelse (1000); // vent på en anden digitalWrite (3, HIGH); // sluk lysdioden ved at gøre spændingen LAV forsinkelse (1000); // vent et øjeblik}
Kompilering af SPL-biblioteker på Arduino IDE
Som tidligere nævnt kan vi også bruge SPL-biblioteket på Arduino IDE. Hvis du husker, i vores forrige STM8S GPIO-tutorial, skrev vi en kode for at blinke den indbyggede LED og også en ekstern LED ved hjælp af trykknappen. Den samme kode med meget få ændringer kan også kompileres på Arduino. Den ændrede kode vises nedenfor.
#define Green_LED GPIOA, GPIO_PIN_3 ugyldig opsætning () {GPIO_DeInit (GPIOA); // forbered port A til at arbejde GPIO_DeInit (GPIOB); // forbered port B til arbejde // Erklær PA2 som input pull up pin GPIO_Init (GPIOA, GPIO_PIN_2, GPIO_MODE_IN_PU_IT); // Erklær PA3 som Push Pull Output pin GPIO_Init (Green_LED, GPIO_MODE_OUT_PP_LOW_SLOW); // Erklær PB5 som push pull Output pin GPIO_Init (GPIOB, GPIO_PIN_5, GPIO_MODE_OUT_PP_LOW_SLOW); } ugyldig sløjfe () {hvis (GPIO_ReadInputPin (GPIOA, GPIO_PIN_2)) // hvis knappen trykkes på GPIO_WriteLow (Green_LED); // LED ON ellers GPIO_WriteHigh (Green_LED); // LED OFF GPIO_WriteReverse (GPIOB, GPIO_PIN_5); forsinkelse (100); }
At afslutte Arduino IDE sammen med Sduino er meget god mulighed, hvis du vil starte din udvikling med STM8S. Imidlertid er platformen stadig under udvikling, og mange Arduino-biblioteker er endnu ikke understøttet. Stadig, hvis du ønsker at grave dybt ind og bidrage til udviklingen, ville det være godt. Men af hensyn til indlæringen fortsætter jeg tutorialsserien med STVD og kosmisk C-kompilator.