STM32-merki

STM32F103C8T6 Lágmarkskerfisþróunarborð

STM32F103C8T6-Lágmarks-kerfisþróunar-borðsvara

Upplýsingar um vöru

STM32F103C8T6 ARM STM32 Minimum System Development Board Module er þróunarborð sem er byggt á STM32F103C8T6 örstýringunni. Það er hannað til að forrita með Arduino IDE og er samhæft við ýmsa Arduino klóna, afbrigði og þriðja aðila borð eins og ESP32 og ESP8266.

Stjórnin, einnig þekkt sem Blue Pill Board, starfar á um það bil 4.5 sinnum hærri tíðni en Arduino UNO. Það er hægt að nota í ýmis verkefni og hægt að tengja það við jaðartæki eins og TFT skjái.

Nauðsynlegir hlutir til að byggja verkefni með þessu borði eru STM32 borð, FTDI forritari, TFT litaskjár, þrýstihnappur, lítið breadboard, vír, rafmagnsbanki (valfrjálst fyrir sjálfstæða stillingu) og USB til raðbreytir.

Teikning

Til að tengja STM32F1 borðið við 1.8 ST7735-byggðan litaðan TFT skjá og þrýstihnapp skaltu fylgja pinna-í-pinna tengingunum sem lýst er í meðfylgjandi skýringarmynd.

Að setja upp Arduino IDE fyrir STM32

  1. Opnaðu Arduino IDE.
  2. Farðu í Tools -> Board -> Board Manager.
  3. Leitaðu að „STM32F1“ í glugganum með leitarstiku og settu upp samsvarandi pakka.
  4. Bíddu eftir að uppsetningarferlinu lýkur.
  5. Eftir uppsetningu ætti STM32 borðið nú að vera hægt að velja undir Arduino IDE borð listanum.

Forritun STM32 borð með Arduino IDE

Frá upphafi hefur Arduino IDE sýnt fram á löngunina til að styðja alls kyns palla, allt frá Arduino klónum og afbrigðum mismunandi framleiðenda til þriðja aðila borð eins og ESP32 og ESp8266. Eftir því sem fleiri kynnast IDE eru þeir farnir að styðja fleiri borð sem eru ekki byggð á ATMEL flögum og fyrir kennsluna í dag munum við skoða eitt slíkt borð. Við munum skoða hvernig á að forrita STM32-undirstaða, STM32F103C8T6 þróunarborðið með Arduino IDE.

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

STM32 borðið sem á að nota fyrir þessa kennslu er engin önnur en STM32F103C8T6 flís-undirstaða STM32F1 þróunarspjaldið sem almennt er nefnt „Blue Pill“ í samræmi við bláa litinn á PCB þess. Blue Pill er knúinn af öflugum 32-bita STM32F103C8T6 ARM örgjörva, klukka á 72MHz. Stjórnin starfar á 3.3v rökfræðistigi en GPIO pinnar hennar hafa verið prófaðar til að þola 5v. Þó að það komi ekki með WiFi eða Bluetooth eins og ESP32 og Arduino afbrigði, þá býður það upp á 20KB af vinnsluminni og 64KB af flassminni sem gerir það fullnægjandi fyrir stór verkefni. Það hefur einnig 37 GPIO pinna, þar af 10 sem hægt er að nota fyrir hliðræna skynjara þar sem þeir hafa ADC virkt, ásamt öðrum sem eru virkjaðir fyrir SPI, I2C, CAN, UART og DMA. Fyrir borð sem kostar um $3, munt þú vera sammála mér um að þetta séu glæsilegar upplýsingar. Samantekt útgáfa af þessum forskriftum samanborið við Arduino Uno er sýnd á myndinni hér að neðan.

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

Byggt á forskriftunum hér að ofan, er tíðnin sem Blue Pill starfar á um 4.5 sinnum hærri en Arduino UNO, fyrir kennsluna í dag, sem fyrrverandiampLeiðsögn um hvernig á að nota STM32F1 borðið, munum við tengja það við 1.44 tommu TFT skjá og forrita það til að reikna út „Pi“ fastann. Við munum athuga hversu langan tíma það tók stjórnina að fá gildið og bera það saman við tímann sem það tekur Arduino Uno að framkvæma sama verkefni.

Nauðsynlegir íhlutir

Eftirfarandi þættir eru nauðsynlegir til að byggja þetta verkefni;

  • STM32 borð
  • FTDI forritari
  • Litur TFT
  • Þrýstihnappur
  • Lítið brauðbretti
  • Vírar
  • Power Bank
  • USB til raðbreytir

Eins og venjulega er hægt að kaupa alla íhluti sem notaðir eru fyrir þessa kennslu á meðfylgjandi tenglum. Kraftbankinn er þó aðeins nauðsynlegur ef þú vilt dreifa verkefninu í sjálfstæðum ham.

Teikning

  • Eins og fyrr segir munum við tengja STM32F1 borðið við 1.8 tommu ST7735 litaða TFT skjáinn ásamt þrýstihnappi.
  • Þrýstihnappurinn verður notaður til að leiðbeina stjórninni um að hefja útreikninginn.
  • Tengdu íhlutina eins og sýnt er á skýringarmyndinni hér að neðan.

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

Til að auðvelda endurgerð tenginganna er pinna-í-pinna tengingunum milli STM32 og skjásins lýst hér að neðan.

STM32 – ST7735

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

Farðu yfir tengingarnar enn og aftur til að vera viss um að allt sé eins og það á að vera þar sem það hefur tilhneigingu til að verða svolítið erfiður. Að þessu loknu héldum við áfram að setja upp STM32 borðið til að forrita með Arduino IDE.

Að setja upp Arduino IDE fyrir STM32

  • Eins og með flest borð sem ekki eru gerð af Arduino, þarf að gera smá uppsetningu áður en hægt er að nota borðið með Arduino IDE.
  • Þetta felur í sér að setja upp borðið file annað hvort í gegnum Arduino Board Manager eða að hlaða niður af internetinu og afrita files inn í vélbúnaðarmöppuna.
  • Stjórnarleiðin er sú leiðinlegri og þar sem STM32F1 er meðal skráðra stjórna, munum við fara þá leið. Byrjaðu á því að bæta hlekknum fyrir STM32 borðið við Arduino vallistana.
  • Farðu til File -> Preferences, sláðu svo inn þetta URL ( http://dan.drown.org/stm32duino/package_STM32duino_index.json ) í reitnum eins og sýnt er hér að neðan og smelltu á OK.

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

  • Now go to Tools -> Board -> Board Manager, it will open a dialogue box with a search bar. Leitaðu að STM32F1 and install the corresponding package.

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

  • Uppsetningarferlið mun taka nokkrar sekúndur. Eftir það ætti borðið nú að vera tiltækt fyrir val undir Arduino IDE borð listanum.

Kóði

  • Kóðinn verður skrifaður á sama hátt og við myndum skrifa allar aðrar skissur fyrir Arduino verkefni, þar sem eini munurinn er hvernig vísað er í pinnana.
  • Til að geta auðveldlega þróað kóðann fyrir þetta verkefni munum við nota tvö bókasöfn sem eru bæði breytingar á venjulegum Arduino bókasöfnum til að gera þau samhæf við STM32.
  • Við munum nota breytta útgáfu af Adafruit GFX og Adafruit ST7735 bókasöfnunum.
  • Hægt er að hlaða niður báðum söfnunum í gegnum tenglana sem fylgja þeim. Eins og venjulega mun ég gera stutta sundurliðun á kóðanum.
  • Við byrjum kóðann með því að flytja inn tvö bókasöfn sem við munum nota.

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

  • Næst skilgreinum við pinna STM32 sem CS, RST og DC pinnar á LCD eru tengdir við.

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

  • Næst búum við til nokkrar litaskilgreiningar til að gera það auðvelt að nota liti eftir nöfnum þeirra í kóðanum síðar í stað þess að nota sexgildi þeirra.

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

  • Næst stillum við fjölda endurtekninga sem við viljum að stjórnin fari í gegnum ásamt endurnýjunartíma fyrir framvindustikuna sem á að nota.

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

  • Með þessu búum við til hlut ST7735 bókasafnsins sem verður notaður til að vísa til skjásins í öllu verkefninu.
  • Við tilgreinum líka pinna á STM32 sem þrýstihnappurinn er tengdur við og búum til breytu til að halda stöðu sinni.

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

  • Þegar þessu er lokið förum við yfir í ógilt uppsetningu() aðgerðina.
  • Við byrjum á því að stilla pinMode() á pinnanum sem þrýstihnappurinn er tengdur við, virkja innri uppdráttarviðnám á pinnanum þar sem þrýstihnappurinn tengist jörðu þegar ýtt er á hann.

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

  • Næst frumstillum við raðsamskipti og skjáinn, stillum bakgrunn skjásins á svartan og köllum prentunaraðgerðina () til að sýna viðmótið.

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

  • Næst er ógilt lykkja() fallið. Void loop aðgerðin er frekar einföld og stutt, þökk sé notkun á bókasöfnum/aðgerðum.
  • Við byrjum á því að lesa stöðu þrýstihnappsins. Ef ýtt hefur verið á hnappinn fjarlægjum við núverandi skilaboð á skjánum með því að nota removePressKeyText() og teiknum framvindustikuna með því að nota drawBar() aðgerðina.
  • Við köllum síðan upphafsreikningsaðgerðina til að fá og sýna gildi Pi ásamt tímanum sem það tók að reikna það út.

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

  • Ef ekki er ýtt á þrýstihnappinn er tækið áfram í aðgerðalausri stillingu og skjárinn krefst þess að ýtt sé á takka til að hafa samskipti við það.

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

  • Að lokum er seinkun sett inn í lok lykkjunnar til að gefa smá tíma áður en þú skissar "lykkjur".

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

  • Það sem eftir er af kóðanum eru aðgerðirnar sem kallaðar eru til að ná verkefnum frá því að teikna strikið til að reikna út Pi.
  • Fjallað hefur verið um flestar þessar aðgerðir í nokkrum öðrum námskeiðum sem fela í sér notkun ST7735 skjásins.

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

  • Heildarkóði verkefnisins er fáanlegur hér að neðan og er meðfylgjandi undir niðurhalshlutanum.

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

Hleður upp kóða í STM32

  • Að hlaða upp skissum á STM32f1 er svolítið flókið miðað við venjuleg Arduino-samhæfðar töflur. Til að hlaða upp kóða á borðið þurfum við FTDI-byggðan, USB-í raðbreytir.
  • Tengdu USB við raðbreytirinn við STM32 eins og sýnt er á skýringarmyndinni hér að neðan.

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

Hér er pinna-í-pinna kort af tengingunni

FTDI – STM32

  • Þegar þessu er lokið breytum við stöðu stöðustökkvars töflunnar í stöðu eitt (eins og sýnt er í gifinu hér að neðan), til að setja töfluna í forritunarham.
  • Ýttu einu sinni á endurstillingarhnappinn á töflunni eftir þetta og við erum tilbúin til að hlaða upp kóðanum.

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

  • Á tölvunni skaltu ganga úr skugga um að þú velur „Generic STM32F103C borð“ og veldu raðnúmer fyrir upphleðsluaðferðina og eftir það geturðu ýtt á upphleðsluhnappinn.

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

  • Þegar upphleðslunni er lokið skaltu breyta stöðustökkvaranum í stöðu “Ó” Þetta mun setja borðið í „keyra“ ham og það ætti nú að byrja að keyra byggt á kóðanum sem hlaðið var upp.
  • Á þessum tímapunkti geturðu aftengt FTDI og kveikt á borðinu yfir USB þess. Ef kóðinn keyrir ekki eftir virkjun, vertu viss um að þú hafir endurheimt jumperinn á réttan hátt og endurnýttu rafmagn til borðsins.

Demo

  • Þegar kóðanum er lokið skaltu fylgja upphleðsluferlinu sem lýst er hér að ofan til að hlaða kóðanum upp í uppsetninguna þína.
  • Þú ættir að sjá skjáinn koma upp eins og sýnt er á myndinni hér að neðan.

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

  • Ýttu á þrýstihnappinn til að hefja útreikninginn. Þú ættir að sjá framvindustikuna renna smám saman til loka.
  • Í lok ferlisins birtist gildi Pi ásamt tímanum sem útreikningurinn tók.

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

  • Sami kóði er útfærður á Arduino Uno. Niðurstaðan er sýnd á myndinni hér að neðan.

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

  • Með því að bera saman þessi tvö gildi sjáum við að „Blue Pill“ er yfir 7 sinnum hraðari en Arduino Uno.
  • Þetta gerir það tilvalið fyrir verkefni sem fela í sér mikla vinnslu og tímatakmörkun.
  • Smæð Bláu pillanna þjónar einnig sem kosturtage hér þar sem það er aðeins stærra en Arduino Nano og það er hægt að nota það á stöðum þar sem Nano verður ekki nógu hratt.

Skjöl / auðlindir

STM32 STM32F103C8T6 Lágmarkskerfisþróunarborð [pdfNotendahandbók
STM32F103C8T6 Lágmarkskerfisþróunarráð, STM32F103C8T6, Lágmarkskerfisþróunarráð, kerfisþróunarráð, þróunarráð, stjórn

Heimildir

Skildu eftir athugasemd

Netfangið þitt verður ekki birt. Nauðsynlegir reitir eru merktir *