STM32F103C8T6 Minimuma Sistemevoluiga Estraro
Produktaj Informoj
La STM32F103C8T6 ARM STM32 Minimuma Sistemevoluiga Tabulo-Modulo estas evolutabulo kiu baziĝas sur la mikroregilo STM32F103C8T6. Ĝi estas desegnita por esti programita per la Arduino IDE kaj estas kongrua kun diversaj Arduino-klonoj, varioj kaj triaj tabuloj kiel la ESP32 kaj ESP8266.
La tabulo, ankaŭ konata kiel la Blue Pill Board, funkcias kun frekvenco proksimume 4.5 fojojn pli alta ol Arduino UNO. Ĝi povas esti uzata por diversaj projektoj kaj povas esti konektita al ekstercentraj kiel ekzemple TFT-ekranoj.
La postulataj komponantoj por konstrui projektojn kun ĉi tiu tabulo inkluzivas la STM32-Estraron, FTDI-Programiston, Koloran TFT-ekranon, Puŝbutonon, Malgrandan Breadboard, Dratojn, Potencan Bankon (laŭvola por memstara reĝimo), kaj USB al Seria Konvertilo.
Skema
Por konekti la STM32F1-tabulon al la 1.8 ST7735-bazita kolora TFT-ekrano kaj prembutono, sekvu la pin-al-pintajn konektojn priskribitajn en la provizitaj skemoj.
Agordante la Arduino IDE por STM32
- Malfermu la Arduino-IDE.
- Iru al Iloj -> Tabulo -> Estraro-Administranto.
- En la dialogujo kun serĉbreto, serĉu "STM32F1" kaj instalu la respondan pakaĵon.
- Atendu, ke la instalado-procedo finiĝos.
- Post instalado, la STM32-tabulo nun devus esti disponebla por elekto sub la listo de Arduino IDE-tabulo.
Programante STM32-tabulojn kun la Arduino IDE
Ekde sia komenco, la Arduino IDE pruvis la deziron subteni ĉiajn platformojn, de Arduino-klonoj kaj varioj de malsamaj fabrikantoj ĝis triaj tabuloj kiel la ESP32 kaj ESp8266. Ĉar pli da homoj konatiĝas kun la IDE, ili komencas subteni pli da tabuloj kiuj ne estas bazitaj sur ATMEL-blatoj kaj por hodiaŭa lernilo ni rigardos unu el tiaj tabuloj. Ni ekzamenos kiel programi la STM32-bazitan, STM32F103C8T6 evolutabulo kun la Arduino IDE.
La STM32-tabulo uzota por ĉi tiu lernilo estas nenio alia ol la STM32F103C8T6-bazita peceta disvolva tabulo STM32F1 kutime nomata "Blua Pilolo" en linio kun la blua koloro de ĝia PCB. Blue Pill estas funkciigita de la potenca 32-bita STM32F103C8T6 ARM-procesoro, horloĝita je 72MHz. La tabulo funkcias sur 3.3v logikaj niveloj sed ĝiaj GPIO-stiftoj estis provitaj por esti 5v toleremaj. Kvankam ĝi ne venas kun WiFi aŭ Bluetooth kiel la variantoj ESP32 kaj Arduino, ĝi ofertas 20KB da RAM kaj 64KB da fulmmemoro, kio igas ĝin taŭga por grandaj projektoj. Ĝi ankaŭ posedas 37 GPIO-pinglojn, 10 el kiuj povas esti uzataj por Analogaj sensiloj ĉar ili havas ADC ebligita, kune kun aliaj kiuj estas ebligitaj por SPI, I2C, CAN, UART kaj DMA. Por tabulo, kiu kostas ĉirkaŭ $3, vi konsentos kun mi, ke ĉi tiuj estas imponaj specifaĵoj. Resuma versio de ĉi tiuj specifoj kompare kun tiu de Arduino Uno estas montrita en la suba bildo.
Surbaze de la supraj specifoj, la ofteco je kiu funkcias Blue Pill estas ĉirkaŭ 4.5 fojojn pli alta ol Arduino UNO, por hodiaŭa lernilo, kiel eksamppri kiel uzi la STM32F1-tabulon, ni konektos ĝin al 1.44″ TFT-ekrano kaj programos ĝin por kalkuli la konstantan "Pi". Ni rimarkos kiom longe daŭris la tabulo por akiri la valoron kaj kompari ĝin kun la tempo, kiun necesas Arduino Uno por plenumi la saman taskon.
Bezonataj Komponentoj
La sekvaj komponantoj estas postulataj por konstrui ĉi tiun projekton;
- Estraro STM32
- FTDI-Programisto
- Kolora TFT
- Puŝbutono
- Malgranda Breadboard
- Dratoj
- Potenca Banko
- USB al Seria Konvertilo
Kiel kutime, ĉiuj komponantoj uzataj por ĉi tiu lernilo povas esti aĉetitaj de la kunsenditaj ligiloj. La potenca banko estas tamen necesa nur se vi volas disfaldi la projekton en memstara reĝimo.
Skema
- Kiel menciite antaŭe, ni konektos la STM32F1-tabulon al la 1.8″ ST7735-bazita kolora TFT-ekrano kune kun prembutono.
- La prembutono estos uzata por instrui la tabulon komenci la kalkulon.
- Konektu la komponantojn kiel montrite en la skemo sube.
Por igi la ligojn facile reprodukteblajn, la pin-al-pinglaj ligoj inter la STM32 kaj la ekrano estas priskribitaj sube.
STM32 - ST7735
Reiru la konektojn por certigi, ke ĉio estas kiel ĝi devus esti, ĉar ĝi tendencas fariĝi iomete malfacila. Fininte ĉi tion, ni agordis la STM32-tabulon programon per la Arduino IDE.
Agordante la Arduino IDE por STM32
- Kiel ĉe plej multaj tabuloj ne faritaj de Arduino, iom da aranĝo devas esti farita antaŭ ol la tabulo povas esti uzata kun la Arduino IDE.
- Ĉi tio implikas instali la tabulon file ĉu per la Arduino Board Manager aŭ elŝutante de la interreto kaj kopiante la files en la aparatan dosierujon.
- La itinero de Board Manager estas la malpli teda kaj ĉar la STM32F1 estas inter la listigitaj tabuloj, ni iros tiun vojon. Komencu aldonante la ligilon por la STM32-tabulo al la preferlistoj de Arduino.
- Iru al File -> Preferoj, tiam enigu ĉi tion URL ( http://dan.drown.org/stm32duino/package_STM32duino_index.json ) en la skatolo kiel indikite sube kaj alklaku ok.
- Now go to Tools -> Board -> Board Manager, it will open a dialogue box with a search bar. Serĉu STM32F1 and install the corresponding package.
- La instala proceduro daŭros kelkajn sekundojn. Post tio, la tabulo nun estu disponebla por elekto sub la listo de Arduino IDE-tabulo.
Kodo
- La kodo estos skribita same kiel ni skribus ajnan alian skizon por Arduino-projekto, kun la nura diferenco estas la maniero kiel la pingloj estas referencitaj.
- Por povi facile disvolvi la kodon por ĉi tiu projekto, ni uzos du bibliotekojn, kiuj estas ambaŭ modifoj de normaj Arduino-Bibliotekoj por igi ilin kongruaj kun la STM32.
- Ni uzos la modifitan version de la bibliotekoj Adafruit GFX kaj Adafruit ST7735.
- Ambaŭ bibliotekoj estas elŝuteblaj per la ligiloj alkroĉitaj al ili. Kiel kutime, mi faros mallongan rompon de la kodo.
- Ni komencas la kodon importante la du bibliotekojn, kiujn ni uzos.
- Poste, ni difinas la pinglojn de la STM32 al kiuj la CS, RST kaj DC-stiftoj de la LCD estas konektitaj.
- Poste ni kreas kelkajn kolordifinojn por faciligi uzi kolorojn laŭ iliaj nomoj en la kodo poste anstataŭ laŭ iliaj deksesaj valoroj.
- Tuj poste, ni fiksas la nombron da ripetoj, kiujn ni volas, ke la tabulo trairu kune kun la refreŝiga daŭro por ke la progresa stango estu uzata.
- Fininte ĉi tion, ni kreas objekton de la biblioteko ST7735, kiu estos uzata por referenci la ekranon tra la tuta projekto.
- Ni ankaŭ indikas la pinglon de la STM32 al kiu la prembutono estas konektita kaj kreas variablon por teni ĝian staton.
- Fininte ĉi tion, ni moviĝas al la funkcio void setup().
- Ni komencas fiksante la pinMode() de la pinglo al kiu la prembutono estas konektita, aktivigante internan tirreziston sur la pinglo ĉar la prembutono konektas al la grundo kiam premata.
- Poste, ni pravigas serian komunikadon kaj la ekranon, metante la fonon de la ekrano al nigra kaj nomante la print () funkcion por montri la interfacon.
- Poste estas la funkcio void loop(). La malplena buklofunkcio estas sufiĉe simpla kaj mallonga, danke al la uzo de bibliotekoj/funkcioj.
- Ni komencas legante la staton de la prembutono. Se la butono estis premita, ni forigas la nunan mesaĝon sur la ekrano uzante la removePressKeyText () kaj desegnas la ŝanĝantan progresstangon per la drawBar () funkcio.
- Ni tiam vokas la komencan kalkulfunkcion por akiri kaj montri la valoron de Pi kune kun la tempo necesa por kalkuli ĝin.
- Se la prembutono ne estas premita, la aparato restas en Neaktiva reĝimo kaj la ekrano postulas, ke klavo estu premita por interagi kun ĝi.
- Fine, prokrasto estas enmetita ĉe la fino de la buklo por doni iom da tempo antaŭ skizi "buklojn".
- La restanta parto de la kodo estas la funkcioj nomitaj por atingi la taskojn de desegnado de la stango ĝis kalkulo de la Pi.
- La plej multaj el ĉi tiuj funkcioj estis kovritaj en pluraj aliaj lerniloj, kiuj implikas la uzon de la ekrano ST7735.
- La kompleta kodo por la projekto estas havebla sube kaj estas alfiksita sub la elŝuta sekcio.
Alŝutante Kodon al la STM32
- Alŝuti skizojn al la STM32f1 estas iom kompleksa kompare kun normaj Arduino-kongruaj tabuloj. Por alŝuti kodon al la tabulo, ni bezonas FTDI-bazitan, USB-al Seria konvertilo.
- Konektu la USB al seria konvertilo al la STM32 kiel montrite en la skemoj sube.
Jen ping-al-stifta mapo de la konekto
FTDI - STM32
- Fininte ĉi tion, ni tiam ŝanĝas la pozicion de la ŝtatsaltilo de la tabulo al pozicio unu (kiel montrite en la gif sube), por meti la tabulon en programan reĝimon.
- Premu la restarigi butonon sur la tabulo unufoje post ĉi tio kaj ni pretas alŝuti la kodon.
- Sur la komputilo, certigu, ke vi elektas "Ĝenerala STM32F103C-tabulo" kaj elektu serian por la alŝuta metodo, post kiu vi povas premi la alŝutan butonon.
- Post kiam la Alŝuto estas kompleta, ŝanĝu la ŝtatsaltilon al pozicio "O" Ĉi tio metos la tabulon en "kuri" reĝimon kaj ĝi nun devus komenci funkcii surbaze de la kodo alŝutita.
- Je ĉi tiu punkto, vi povas malkonekti la FTDI kaj funkciigi la tabulon per ĝia USB. Se la kodo ne funkcias post ŝaltado, certigu, ke vi restarigis la jumper ĝuste kaj recikli potencon al la tabulo.
Demo
- Kun la kodo kompleta, sekvu la alŝutan procezon priskribitan supre por alŝuti la kodon al via agordo.
- Vi devus vidi la ekranon aperi kiel montrite en la bildo sube.
- Premu la puŝbutonon por komenci la kalkulon. Vi devus vidi la progresstangon gliti iom post iom ĝis la fino.
- Ĉe la fino de la procezo, la valoro de Pi montriĝas kune kun la tempo, kiun la kalkulo prenis.
- La sama kodo estas efektivigita sur Arduino Uno. La rezulto estas montrita en la bildo sube.
- Komparante ĉi tiujn du valorojn, ni vidas, ke "Blua Pilolo" estas pli ol 7 fojojn pli rapida ol la Arduino Uno.
- Ĉi tio igas ĝin ideala por projektoj kiuj implikas pezan prilaboradon kaj tempolimojn.
- La eta grandeco de la Blua Pilolo ankaŭ funkcias kiel avancotagĈi tie ĉar ĝi estas nur iom pli granda ol la Arduino Nano kaj ĝi povas esti uzata en lokoj kie la Nano ne estos sufiĉe rapida.
Dokumentoj/Rimedoj
![]() |
STM32 STM32F103C8T6 Minimuma Sistemevoluiga Estraro [pdf] Uzanto-manlibro STM32F103C8T6 Minimuma Sistemevoluiga Estraro, STM32F103C8T6, Minimuma Sistemevoluiga Estraro, Sistemevoluiga Estraro, Disvolva Estraro, Estraro |