STM32-logo

STM32F103C8T6 Scheda minima di sviluppu di u sistema

STM32F103C8T6-Produttu-minimu-di-sviluppu-di-sistema

Informazione di u produttu

U STM32F103C8T6 ARM STM32 Minimum System Development Board Module hè una scheda di sviluppu chì hè basatu annantu à u microcontroller STM32F103C8T6. Hè pensatu per esse programatu cù l'IDE Arduino è hè cumpatibile cù diversi cloni Arduino, variazioni è schede di terze parti cum'è ESP32 è ESP8266.

A scheda, cunnisciuta ancu com'è Blue Pill Board, opera à una frequenza circa 4.5 volte più altu ch'è un Arduino UNO. Pò esse usatu per diversi prughjetti è ponu esse cunnessi à periferiche cum'è display TFT.

I cumpunenti necessarii per custruisce prughjetti cù questa scheda includenu u STM32 Board, FTDI Programmer, Display TFT Color, Push Button, Small Breadboard, Wires, Power Bank (opcional per u modu stand-alone), è USB to Serial Converter.

Schematicu

Per cunnette a scheda STM32F1 à u Display TFT di culore basatu in ST1.8 7735 è un buttone, seguitate e cunnessione pin-to-pin descritte in i schemi furniti.

Configurazione di l'IDE Arduino per STM32

  1. Aprite l'IDE Arduino.
  2. Andà à Strumenti -> Board -> Board Manager.
  3. In a casella di dialogu cù una barra di ricerca, cercate "STM32F1" è installate u pacchettu currispundente.
  4. Aspettate chì a prucedura di stallazione finisci.
  5. Dopu a stallazione, a scheda STM32 deve esse avà dispunibule per a selezzione sottu a lista di a scheda Arduino IDE.

Programmazione di schede STM32 cù l'IDE Arduino

Dapoi u so principiu, l'IDE Arduino hà dimustratu u desideriu di supportà ogni tipu di piattaforme, da i cloni Arduino è variazioni di diversi fabricatori à schede di terze parti cum'è l'ESP32 è l'ESp8266. Quandu più persone si familiarizanu cù l'IDE, cumincianu à supportà più schede chì ùn sò micca basate nantu à chips ATMEL è per u tutoriale di l'oghje guardemu una di queste schede. Esamineremu cumu prugrammà u pianu di sviluppu STM32F32C103T8 basatu in STM6 cù l'IDE Arduino.

STM32F103C8T6-Minimum-System-Development-Board-fig-1

A scheda STM32 per esse aduprata per stu tutoriale ùn hè micca altru ch'è a scheda di sviluppu STM32F103 basata in chip STM8F6C32T1 comunmente chjamata "Pillola Blu" in linea cù u culore blu di u so PCB. Blue Pill hè alimentatu da u putente processore ARM 32-bit STM32F103C8T6, clock à 72MHz. U bordu opera nantu à livelli logici 3.3v, ma i so pins GPIO sò stati pruvati per esse toleranti 5v. Ancu s'ellu ùn vene micca cù WiFi o Bluetooth cum'è e varianti ESP32 è Arduino, offre 20KB di RAM è 64KB di memoria flash chì a rende adatta per grandi prughjetti. Possede ancu 37 pins GPIO, 10 di quali ponu esse aduprati per i sensori analogichi postu chì anu ADC attivatu, cù altri chì sò attivati ​​​​per SPI, I2C, CAN, UART è DMA. Per un bordu chì costa circa $ 3, vi cuncordate cun mè chì queste sò specs impressiunanti. Una versione riassuntu di sti specificazioni cumparatu cù quellu di un Arduino Uno hè mostratu in l'imaghjini sottu.

STM32F103C8T6-Minimum-System-Development-Board-fig-2

Basatu nantu à e specifiche sopra, a frequenza à quale Blue Pill opera hè circa 4.5 volte più altu ch'è un Arduino UNO, per u tutoriale d'oghje, cum'è ex.ampPer sapè cumu utilizà a scheda STM32F1, a cunnettamu à un display TFT di 1.44″ è u prugramma per calculà a custante "Pi". Avemu da nutà quantu tempu hà pigliatu a scheda per ottene u valore è paragunà cù u tempu chì ci vole à un Arduino Uno per fà u listessu compitu.

Cumpunenti richiesti

I seguenti cumpunenti sò necessarii per custruisce stu prughjettu;

  • Bordu STM32
  • Programmatore FTDI
  • TFT di culore
  • Pulsante
  • Small Breadboard
  • Fili
  • Power Bank
  • Convertitore USB à Serial

Comu solitu, tutti i cumpunenti utilizati per stu tutoriale ponu esse compru da i ligami attaccati. U bancu di putenza hè però solu necessariu s'ellu vulete implementà u prugettu in modu stand-alone.

Schematicu

  • Cumu l'ammentatu prima, cunnetteremu a scheda STM32F1 à u Display TFT culuratu 1.8″ ST7735 cù un buttone.
  • U buttone push serà utilizatu per urdinà à u bordu per inizià u calculu.
  • Cunnette i cumpunenti cum'è mostra in u schema sottu.

STM32F103C8T6-Minimum-System-Development-Board-fig-3

Per fà e cunnessione faciuli di riplicà, e cunnessione pin-to-pin trà u STM32 è a visualizazione sò descritte quì sottu.

STM32 - ST7735

STM32F103C8T6-Minimum-System-Development-Board-fig-4

Andate nantu à e cunnessione una volta per esse sicuru chì tuttu hè cum'è deve esse postu chì tende à diventà un pocu complicatu. Cù questu fattu, avemu procedutu à stallà a scheda STM32 per esse programata cù l'IDE Arduino.

Configurazione di l'IDE Arduino per STM32

  • Cum'è cù a maiò parte di e schede chì ùn sò micca fatte da Arduino, un pocu di cunfigurazione deve esse fattu prima chì a scheda pò esse usata cù l'IDE Arduino.
  • Questu implica a stallazione di u bordu file sia via l'Arduino Board Manager o scaricamentu da Internet è copiandu u files in u cartulare hardware.
  • A strada di Board Manager hè a menu tediosa è postu chì l'STM32F1 hè trà i bordi listati, andemu per quella strada. Cumincià aghjunghjendu u ligame per a scheda STM32 à a lista di preferenze Arduino.
  • Andà à File -> Preferenze, dopu entre in questu URL ( http://dan.drown.org/stm32duino/package_STM32duino_index.json ) in a casella cum'è indicatu quì sottu è cliccate ok.

STM32F103C8T6-Minimum-System-Development-Board-fig-5

  • Avà andate à Strumenti -> Board -> Board Manager, apre una finestra di dialogu cù una barra di ricerca. Cerca STM32F1 è installate u pacchettu currispundente.

STM32F103C8T6-Minimum-System-Development-Board-fig-6

  • A prucedura di stallazione hà da piglià uni pochi seconde. Dopu à quessa, a tavula deve esse avà dispunibule per a selezzione sottu a lista di schede Arduino IDE.

Codice

  • U codice serà scrittu da a listessa manera chì scriveremu qualsiasi altru sketch per un prughjettu Arduino, cù l'unica differenza chì hè a manera chì i pins sò riferiti.
  • Per pudè sviluppà facilmente u codice per stu prughjettu, useremu duie librerie chì sò tramindui mudificazioni di Biblioteche Arduino standard per rende cumpatibili cù u STM32.
  • Avemu aduprà a versione mudificata di l'Adafruit GFX è e librerie Adafruit ST7735.
  • E duie biblioteche ponu esse scaricate attraversu i ligami attaccati à elli. Cum'è di solitu, aghju da fà un brevi spartimentu di u codice.
  • Cuminciamu u codice impurtendu e duie biblioteche chì avemu da aduprà.

STM32F103C8T6-Minimum-System-Development-Board-fig-7

  • In seguitu, definiscemu i pins di u STM32 à quale i pins CS, RST è DC di u LCD sò cunnessi.

STM32F103C8T6-Minimum-System-Development-Board-fig-8

  • In seguitu, creemu alcune definizioni di culore per fà fà fà fàciule à utilizà i culori per i so nomi in u codice più tardi invece di i so valori hex.

STM32F103C8T6-Minimum-System-Development-Board-fig-9

  • In seguitu, avemu stabilitu u numeru di iterazioni chì vulemu chì u bordu passa cù a durata di rinfrescante per a barra di prugressu per esse usata.

STM32F103C8T6-Minimum-System-Development-Board-fig-10

  • Cù questu fattu, creemu un ughjettu di a biblioteca ST7735 chì serà utilizatu per riferite a visualizazione in tuttu u prugettu.
  • Avemu ancu indicatu u pin di u STM32 à quale u pushbutton hè cunnessu è creanu una variabile per mantene u so statu.

STM32F103C8T6-Minimum-System-Development-Board-fig-11

  • Cù questu fattu, andemu à a funzione void setup ().
  • Cuminciamu per stabilisce u pinMode () di u pin à quale u buttone hè cunnessu, attivendu una resistenza interna di pull-up in u pin da chì u pushbutton cunnetta à a terra quandu pressatu.

STM32F103C8T6-Minimum-System-Development-Board-fig-12

  • In seguitu, avemu inizializatu a cumunicazione seriale è u screnu, ponendu u fondu di a visualizazione in neru è chjamendu a funzione di stampa () per vede l'interfaccia.

STM32F103C8T6-Minimum-System-Development-Board-fig-13

  • Dopu hè a funzione void loop(). A funzione void loop hè abbastanza simplice è corta, grazia à l'usu di biblioteche / funzioni.
  • Cuminciamu da leghje u statu di u buttone. Se u buttone hè stata pressu, sguassate u messagiu attuale nantu à u screnu usendu removePressKeyText () è tracciate a barra di prugressu cambiante cù a funzione drawBar ().
  • Dopu chjamemu a funzione di calculu iniziale per ottene è visualizà u valore di Pi cù u tempu chì hà pigliatu per calculà.

STM32F103C8T6-Minimum-System-Development-Board-fig-14

  • Se u pushbutton ùn hè micca pressatu, u dispusitivu ferma in modalità Idle cù a pantalla chì esige chì una chjave sia pressata per interagisce cun ella.

STM32F103C8T6-Minimum-System-Development-Board-fig-15

  • Infine, un ritardu hè inseritu à a fine di u ciclu per dà un pocu di tempu prima di sketching "loops".

STM32F103C8T6-Minimum-System-Development-Board-fig-16

  • A parte restante di u codice hè e funzioni chjamate per ottene i travaglii da disegnu a barra à calculà u Pi.
  • A maiò parte di sti funzioni sò stati cuparti in parechji altri tutoriali chì implicanu l'usu di a visualizazione ST7735.

STM32F103C8T6-Minimum-System-Development-Board-fig-17STM32F103C8T6-Minimum-System-Development-Board-fig-18STM32F103C8T6-Minimum-System-Development-Board-fig-19STM32F103C8T6-Minimum-System-Development-Board-fig-20STM32F103C8T6-Minimum-System-Development-Board-fig-21STM32F103C8T6-Minimum-System-Development-Board-fig-22

  • U codice cumpletu per u prugettu hè dispunibule quì sottu è hè attaccatu sottu a sezione di scaricamentu.

STM32F103C8T6-Minimum-System-Development-Board-fig-23STM32F103C8T6-Minimum-System-Development-Board-fig-24 STM32F103C8T6-Minimum-System-Development-Board-fig-25 STM32F103C8T6-Minimum-System-Development-Board-fig-26 STM32F103C8T6-Minimum-System-Development-Board-fig-27 STM32F103C8T6-Minimum-System-Development-Board-fig-28 STM32F103C8T6-Minimum-System-Development-Board-fig-29 STM32F103C8T6-Minimum-System-Development-Board-fig-30 STM32F103C8T6-Minimum-System-Development-Board-fig-31 STM32F103C8T6-Minimum-System-Development-Board-fig-32 STM32F103C8T6-Minimum-System-Development-Board-fig-33 STM32F103C8T6-Minimum-System-Development-Board-fig-34

Caricà u codice à u STM32

  • Caricà sketches à l'STM32f1 hè un pocu cumplessu cumparatu cù schede standard compatibili con Arduino. Per carica u codice à u bordu, avemu bisognu di un cunvertitore USB-à Serial basatu in FTDI.
  • Cunnette u USB à u cunvertitore seriale à u STM32 cum'è mostra in i schemi sottu.

STM32F103C8T6-Minimum-System-Development-Board-fig-35

Eccu una mappa pin-to-pin di a cunnessione

FTDI - STM32

  • Cù questu fattu, cambiamu a pusizione di u jumper di u statu di u bordu à a pusizione unu (cum'è mostra in u gif sottu), per mette u bordu in modu di prugrammazione.
  • Press u buttone resetten nant'à u bordu una volta dopu à questu è simu pronti à carica u codice.

STM32F103C8T6-Minimum-System-Development-Board-fig-37

  • Nantu à l'urdinatore, assicuratevi di selezziunate "Generic STM32F103C board" è selezziunate seriale per u metudu di carica dopu chì pudete chjappà u buttone di carica.

STM32F103C8T6-Minimum-System-Development-Board-fig-38

  • Una volta u Upload hè cumpletu, cambiate u jumper di u statu in a pusizione "O" Stu vi mette u bordu in modu "corsa" è avà deve principiatu à curriri basatu nantu à u codice uploaded.
  • À questu puntu, pudete disconnect u FTDI è alimentà u bordu nantu à u so USB. In casu chì u codice ùn curre micca dopu l'alimentazione, assicuratevi chì avete restauratu u jumper bè è riciclà u putere à u bordu.

Demo

  • Cù u codice cumpletu, seguitate u prucessu di carica descrittu sopra per carica u codice in a vostra cunfigurazione.
  • Duvete vede a visualizazione cum'è mostra in l'imaghjini sottu.

STM32F103C8T6-Minimum-System-Development-Board-fig-39

  • Appughjà u buttone per inizià u calculu. Duvete vede a barra di prugressu slide gradualmente finu à a fine.
  • À a fine di u prucessu, u valore di Pi hè visualizatu cù u tempu chì hà pigliatu u calculu.

STM32F103C8T6-Minimum-System-Development-Board-fig-40

  • U listessu codice hè implementatu nantu à un Arduino Uno. U risultatu hè mostratu in l'imagine sottu.

STM32F103C8T6-Minimum-System-Development-Board-fig-41

  • Paragunendu sti dui valori, vedemu chì "Blue Pill" hè più di 7 volte più veloce di l'Arduino Uno.
  • Questu a rende ideale per i prughjetti chì implicanu processi pesanti è limitazioni di tempu.
  • A piccula dimensione di u Blue Pill serve ancu com'è un avanzutage quì chì hè solu un pocu più grande di l'Arduino Nano è pò esse usatu in i posti induve u Nano ùn serà micca abbastanza veloce.

Documenti / Risorse

STM32 STM32F103C8T6 Scheda minima di sviluppu di u sistema [pdfManuale d'usu
STM32F103C8T6 Scheda Minimu di Sviluppu di Sistema, STM32F103C8T6, Cunsigliu Minimu di Sviluppu di Sistema, Cunsigliu di Sviluppu di Sistema, Cunsigliu di Sviluppu, Board

Referenze

Lascia un cumentu

U vostru indirizzu email ùn serà micca publicatu. I campi obbligatori sò marcati *