STM32F103C8T6 Minimum System Development Board
Impormasyon ng Produkto
Ang STM32F103C8T6 ARM STM32 Minimum System Development Board Module ay isang development board na nakabatay sa STM32F103C8T6 microcontroller. Ito ay idinisenyo upang ma-program gamit ang Arduino IDE at tugma sa iba't ibang mga Arduino clone, variation, at mga third-party na board tulad ng ESP32 at ESP8266.
Ang board, na kilala rin bilang Blue Pill Board, ay gumagana sa frequency na humigit-kumulang 4.5 beses na mas mataas kaysa sa Arduino UNO. Maaari itong magamit para sa iba't ibang mga proyekto at maaaring konektado sa mga peripheral tulad ng mga TFT display.
Kasama sa mga kinakailangang bahagi para bumuo ng mga proyekto gamit ang board na ito ang STM32 Board, FTDI Programmer, Color TFT display, Push Button, Small Breadboard, Wires, Power Bank (opsyonal para sa stand-alone mode), at USB to Serial Converter.
Eskematiko
Upang ikonekta ang STM32F1 board sa 1.8 ST7735 na nakabatay sa kulay na TFT Display at isang push button, sundin ang mga pin-to-pin na koneksyon na inilarawan sa ibinigay na schematics.
Pag-set up ng Arduino IDE para sa STM32
- Buksan ang Arduino IDE.
- Pumunta sa Tools -> Board -> Board Manager.
- Sa dialog box na may search bar, hanapin ang "STM32F1" at i-install ang kaukulang package.
- Maghintay para makumpleto ang pamamaraan ng pag-install.
- Pagkatapos ng pag-install, ang STM32 board ay dapat na ngayong mapili sa ilalim ng Arduino IDE board list.
Programming STM32 boards gamit ang Arduino IDE
Mula nang magsimula ito, ipinakita ng Arduino IDE ang pagnanais na suportahan ang lahat ng uri ng mga platform, mula sa mga Arduino clone at mga variation ng iba't ibang mga tagagawa hanggang sa mga third-party na board tulad ng ESP32 at ESp8266. Habang mas maraming tao ang nagiging pamilyar sa IDE, nagsisimula silang suportahan ang higit pang mga board na hindi batay sa ATMEL chips at para sa tutorial ngayon ay titingnan natin ang isa sa mga naturang board. Susuriin namin kung paano i-program ang STM32-based, STM32F103C8T6 development board gamit ang Arduino IDE.
Ang STM32 board na gagamitin para sa tutorial na ito ay walang iba kundi ang STM32F103C8T6 chip-based na STM32F1 development board na karaniwang tinutukoy bilang "Blue Pill" alinsunod sa asul na kulay ng PCB nito. Ang Blue Pill ay pinapagana ng makapangyarihang 32-bit na STM32F103C8T6 ARM processor, na naka-clock sa 72MHz. Ang board ay nagpapatakbo sa 3.3v logic level ngunit ang mga GPIO pin nito ay nasubok na 5v tolerant. Bagama't hindi ito kasama ng WiFi o Bluetooth tulad ng mga variant ng ESP32 at Arduino, nag-aalok ito ng 20KB ng RAM at 64KB ng flash memory na ginagawa itong sapat para sa malalaking proyekto. Nagtataglay din ito ng 37 GPIO pin, 10 sa mga ito ay maaaring gamitin para sa mga Analog sensor dahil ang mga ito ay naka-enable ang ADC, kasama ang iba pang naka-enable para sa SPI, I2C, CAN, UART, at DMA. Para sa isang board na nagkakahalaga ng humigit-kumulang $3, sasang-ayon ka sa akin na ito ay mga kahanga-hangang spec. Ang isang summarized na bersyon ng mga pagtutukoy na ito kumpara sa isang Arduino Uno ay ipinapakita sa larawan sa ibaba.
Batay sa mga specs sa itaas, ang dalas ng pagpapatakbo ng Blue Pill ay humigit-kumulang 4.5 beses na mas mataas kaysa sa Arduino UNO, para sa tutorial ngayon, bilang exampKung paano gamitin ang STM32F1 board, ikokonekta namin ito sa isang 1.44″ TFT display at i-program ito upang kalkulahin ang pare-parehong "Pi". Tatalakayin natin kung gaano katagal ang board upang makuha ang halaga at ihambing ito sa oras na kinakailangan ng Arduino Uno upang maisagawa ang parehong gawain.
Mga Kinakailangang Bahagi
Ang mga sumusunod na bahagi ay kinakailangan upang maitayo ang proyektong ito;
- Lupon ng STM32
- Programmer ng FTDI
- Kulay ng TFT
- Push Button
- Maliit na Breadboard
- Mga wire
- Power Bank
- USB sa Serial Converter
Gaya ng dati, ang lahat ng mga sangkap na ginamit para sa tutorial na ito ay mabibili mula sa mga nakalakip na link. Gayunpaman, kailangan lang ang power bank kung gusto mong i-deploy ang proyekto sa isang stand-alone na mode.
Eskematiko
- Gaya ng nabanggit kanina, ikokonekta namin ang STM32F1 board sa 1.8″ ST7735 based colored TFT Display kasama ng push button.
- Ang push button ay gagamitin upang turuan ang board na simulan ang pagkalkula.
- Ikonekta ang mga bahagi tulad ng ipinapakita sa eskematiko sa ibaba.
Upang gawing madaling kopyahin ang mga koneksyon, ang mga pin-to-pin na koneksyon sa pagitan ng STM32 at ng display ay inilalarawan sa ibaba.
STM32 – ST7735
Suriin muli ang mga koneksyon upang matiyak na ang lahat ay tulad ng nararapat dahil ito ay medyo nakakalito. Sa tapos na ito, nagpatuloy kami sa pag-set up ng STM32 board upang mai-program sa Arduino IDE.
Pag-set up ng Arduino IDE para sa STM32
- Tulad ng karamihan sa mga board na hindi ginawa ng Arduino, kailangang gawin ang kaunting setup bago magamit ang board sa Arduino IDE.
- Kabilang dito ang pag-install ng board file alinman sa pamamagitan ng Arduino Board Manager o pag-download mula sa internet at pagkopya ng files sa folder ng hardware.
- Ang ruta ng Board Manager ay ang hindi nakakapagod at dahil ang STM32F1 ay kabilang sa mga nakalistang board, pupunta tayo sa rutang iyon. Magsimula sa pamamagitan ng pagdaragdag ng link para sa STM32 board sa mga listahan ng kagustuhan sa Arduino.
- Pumunta sa File -> Mga Kagustuhan, pagkatapos ay ilagay ito URL ( http://dan.drown.org/stm32duino/package_STM32duino_index.json ) sa kahon tulad ng ipinahiwatig sa ibaba at i-click ang ok.
- Now go to Tools -> Board -> Board Manager, it will open a dialogue box with a search bar. Maghanap para sa STM32F1 and install the corresponding package.
- Ang proseso ng pag-install ay tatagal ng ilang segundo. Pagkatapos nito, dapat na available na ang board para sa pagpili sa ilalim ng Arduino IDE board list.
Code
- Ang code ay isusulat sa parehong paraan kung paano namin isusulat ang anumang iba pang sketch para sa isang Arduino project, na ang pagkakaiba lamang ay ang paraan ng pagre-reference ng mga pin.
- Upang madaling mabuo ang code para sa proyektong ito, gagamit kami ng dalawang aklatan na parehong mga pagbabago ng karaniwang Arduino Libraries upang gawing tugma ang mga ito sa STM32.
- Gagamitin namin ang binagong bersyon ng Adafruit GFX at mga library ng Adafruit ST7735.
- Ang parehong mga aklatan ay maaaring ma-download sa pamamagitan ng mga link na naka-attach sa kanila. Gaya ng dati, gagawa ako ng maikling breakdown ng code.
- Sinisimulan namin ang code sa pamamagitan ng pag-import ng dalawang library na aming gagamitin.
- Susunod, tinutukoy namin ang mga pin ng STM32 kung saan nakakonekta ang CS, RST, at DC pin ng LCD.
- Susunod, gumawa kami ng ilang mga kahulugan ng kulay upang gawing madaling gamitin ang mga kulay sa pamamagitan ng kanilang mga pangalan sa code sa ibang pagkakataon sa halip na sa pamamagitan ng kanilang mga hex na halaga.
- Susunod, itinakda namin ang bilang ng mga pag-ulit na gusto naming pagdaanan ng board kasama ang tagal ng pag-refresh para sa progress bar na gagamitin.
- Sa tapos na ito, gumawa kami ng object ng ST7735 library na gagamitin para i-reference ang display sa buong proyekto.
- Ipinapahiwatig din namin ang pin ng STM32 kung saan nakakonekta ang pushbutton at lumikha ng isang variable upang hawakan ang estado nito.
- Kapag tapos na ito, lumipat kami sa void setup() function.
- Magsisimula tayo sa pamamagitan ng pagtatakda ng pinMode() ng pin kung saan nakakonekta ang pushbutton, pag-activate ng panloob na pull-up resistor sa pin dahil kumokonekta ang pushbutton sa lupa kapag pinindot.
- Susunod, sinisimulan namin ang serial communication at ang screen, na itinatakda ang background ng display sa itim at tinatawag ang print () function upang ipakita ang interface.
- Susunod ay ang void loop() function. Ang void loop function ay medyo simple at maikli, salamat sa paggamit ng mga library/function.
- Nagsisimula kami sa pamamagitan ng pagbabasa ng estado ng push button. Kung pinindot ang button, aalisin namin ang kasalukuyang mensahe sa screen gamit ang removePressKeyText() at iguguhit ang nagbabagong progress bar gamit ang drawBar() function.
- Pagkatapos ay tinawag namin ang function ng pagsisimula ng pagkalkula upang makuha at ipakita ang halaga ng Pi kasama ang oras na kinuha upang makalkula ito.
- Kung hindi pinindot ang pushbutton, mananatili ang device sa Idle mode na hinihiling ng screen na pindutin ang isang key upang makipag-ugnayan dito.
- Sa wakas, may ipinapasok na pagkaantala sa dulo ng loop upang magbigay ng kaunting oras bago mag-sketch ng "mga loop".
- Ang natitirang bahagi ng code ay ang mga function na tinatawag upang makamit ang mga gawain mula sa pagguhit ng bar hanggang sa pagkalkula ng Pi.
- Karamihan sa mga function na ito ay nasasakupan sa ilang iba pang mga tutorial na may kinalaman sa paggamit ng ST7735 display.
- Ang kumpletong code para sa proyekto ay magagamit sa ibaba at naka-attach sa ilalim ng seksyon ng pag-download.
Pag-upload ng Code sa STM32
- Ang pag-upload ng mga sketch sa STM32f1 ay medyo kumplikado kumpara sa mga karaniwang Arduino-compatible boards. Para mag-upload ng code sa board, kailangan namin ng FTDI-based, USB-to Serial converter.
- Ikonekta ang USB sa serial converter sa STM32 tulad ng ipinapakita sa schematics sa ibaba.
Narito ang isang pin-to-pin na mapa ng koneksyon
FTDI – STM32
- Kapag tapos na ito, binago namin ang posisyon ng state jumper ng board sa posisyon ng isa (tulad ng ipinapakita sa gif sa ibaba), upang ilagay ang board sa programming mode.
- Pindutin ang reset button sa board nang isang beses pagkatapos nito at handa na kaming i-upload ang code.
- Sa computer, tiyaking pipiliin mo ang "Generic STM32F103C board" at piliin ang serial para sa paraan ng pag-upload pagkatapos ay maaari mong pindutin ang upload button.
- Kapag kumpleto na ang Upload, palitan ang state jumper sa posisyon “O” Ilalagay nito ang board sa "run" mode at dapat na itong magsimulang tumakbo batay sa code na na-upload.
- Sa puntong ito, maaari mong idiskonekta ang FTDI at paganahin ang board sa USB nito. Kung sakaling hindi gumana ang code pagkatapos ng powering, tiyaking naibalik mo nang maayos ang jumper at i-recycle ang power sa board.
Demo
- Kapag kumpleto na ang code, sundin ang proseso ng pag-upload na inilarawan sa itaas upang i-upload ang code sa iyong setup.
- Dapat mong makita ang display na lumabas tulad ng ipinapakita sa larawan sa ibaba.
- Pindutin ang push button upang simulan ang pagkalkula. Dapat mong makita ang progress bar slide unti-unti hanggang sa katapusan.
- Sa pagtatapos ng proseso, ang halaga ng Pi ay ipinapakita kasama ang oras kung saan kinuha ang pagkalkula.
- Ang parehong code ay ipinatupad sa isang Arduino Uno. Ang resulta ay ipinapakita sa larawan sa ibaba.
- Kung ihahambing ang dalawang halagang ito, nakita namin na ang "Blue Pill" ay higit sa 7 beses na mas mabilis kaysa sa Arduino Uno.
- Ginagawa nitong perpekto para sa mga proyekto na may kasamang mabigat na pagproseso at mga hadlang sa oras.
- Ang maliit na sukat ng Blue Pill ay nagsisilbi ring advantage dito dahil mas malaki lang ito ng kaunti kaysa sa Arduino Nano at magagamit ito sa mga lugar kung saan hindi sapat ang bilis ng Nano.
Mga Dokumento / Mga Mapagkukunan
![]() |
STM32 STM32F103C8T6 Minimum System Development Board [pdf] User Manual STM32F103C8T6 Minimum System Development Board, STM32F103C8T6, Minimum System Development Board, System Development Board, Development Board, Board |