STM32-loqosu

STM32F103C8T6 Minimum Sistem İnkişafı Şurası

STM32F103C8T6-Minimum-Sistem-İnkişafı-Lövhə-məhsulu

Məhsul haqqında məlumat

STM32F103C8T6 ARM STM32 Minimum Sistem İnkişafı Paneli Modulu, STM32F103C8T6 mikro nəzarətçisinə əsaslanan inkişaf lövhəsidir. O, Arduino IDE istifadə edərək proqramlaşdırılmaq üçün nəzərdə tutulmuşdur və müxtəlif Arduino klonları, varyasyonları və ESP32 və ESP8266 kimi üçüncü tərəf lövhələri ilə uyğun gəlir.

Blue Pill Board kimi də tanınan lövhə Arduino UNO-dan təxminən 4.5 dəfə yüksək tezlikdə işləyir. O, müxtəlif layihələr üçün istifadə edilə bilər və TFT displeylər kimi periferiya qurğularına qoşula bilər.

Bu lövhə ilə layihələr qurmaq üçün tələb olunan komponentlərə STM32 Board, FTDI Programmer, Rəngli TFT displey, Push Button, Small Breadboard, Wire, Power Bank (müstəqil rejim üçün istəyə görə) və USB to Serial Converter daxildir.

Sxematik

STM32F1 lövhəsini 1.8 ST7735 əsaslı rəngli TFT Displeyə və təkan düyməsinə qoşmaq üçün təqdim olunmuş sxemlərdə təsvir edilən pin-to-pin birləşmələrinə əməl edin.

STM32 üçün Arduino IDE-nin qurulması

  1. Arduino IDE-ni açın.
  2. Tools -> Board -> Board Manager bölməsinə keçin.
  3. Axtarış çubuğu olan dialoq qutusunda “STM32F1” axtarın və müvafiq paketi quraşdırın.
  4. Quraşdırma prosedurunun tamamlanmasını gözləyin.
  5. Quraşdırıldıqdan sonra STM32 lövhəsi artıq Arduino IDE lövhəsi siyahısında seçim üçün əlçatan olmalıdır.

Arduino IDE ilə STM32 lövhələrinin proqramlaşdırılması

Yarandığı gündən etibarən Arduino IDE, Arduino klonlarından və müxtəlif istehsalçıların variasiyalarından tutmuş ESP32 və ESp8266 kimi üçüncü tərəf lövhələrinə qədər hər cür platformanı dəstəkləmək arzusunu nümayiş etdirdi. Daha çox insan IDE ilə tanış olduqca, onlar ATMEL çiplərinə əsaslanmayan daha çox lövhəni dəstəkləməyə başlayırlar və bugünkü dərslik üçün biz belə lövhələrdən birinə baxacağıq. STM32 əsaslı, STM32F103C8T6 inkişaf lövhəsinin Arduino IDE ilə necə proqramlaşdırılacağını araşdıracağıq.

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

Bu dərslik üçün istifadə ediləcək STM32 lövhəsi, PCB-nin mavi rənginə uyğun olaraq adətən “Mavi həb” kimi adlandırılan STM32F103C8T6 çip əsaslı STM32F1 inkişaf lövhəsindən başqa bir şey deyil. Blue Pill güclü 32 bitlik STM32F103C8T6 ARM prosessoru ilə təchiz edilib, 72 MHz tezliyi ilə işləyir. Lövhə 3.3v məntiq səviyyələrində işləyir, lakin onun GPIO pinləri 5v-a dözümlü olması üçün sınaqdan keçirilib. ESP32 və Arduino variantları kimi WiFi və ya Bluetooth ilə təchiz olunmasa da, 20KB RAM və 64KB flash yaddaş təklif edir ki, bu da onu böyük layihələr üçün adekvat edir. O, həmçinin 37 GPIO pininə malikdir, onlardan 10-u SPI, I2C, CAN, UART və DMA üçün aktivləşdirilən digərləri ilə birlikdə ADC-ni aktivləşdirdiyi üçün Analoq sensorlar üçün istifadə edilə bilər. Təxminən 3 dollara başa gələn bir lövhə üçün bunların təsir edici xüsusiyyətlər olduğu mənimlə razılaşarsınız. Arduino Uno ilə müqayisədə bu spesifikasiyaların ümumiləşdirilmiş versiyası aşağıdakı şəkildə göstərilmişdir.

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

Yuxarıdakı xüsusiyyətlərə əsasən, Blue Pill-in işləmə tezliyi Arduino UNO-dan təxminən 4.5 dəfə yüksəkdir.ampSTM32F1 lövhəsindən necə istifadə ediləcəyi ilə bağlı biz onu 1.44″ TFT displeyinə qoşacağıq və onu “Pi” sabitini hesablamaq üçün proqramlaşdıracağıq. Lövhənin dəyəri əldə etmək üçün nə qədər vaxt sərf etdiyini qeyd edəcəyik və onu Arduino Uno-nun eyni işi yerinə yetirməsi üçün lazım olan vaxtla müqayisə edəcəyik.

Tələb olunan komponentlər

Bu layihəni qurmaq üçün aşağıdakı komponentlər tələb olunur;

  • STM32 lövhəsi
  • FTDI Proqramçısı
  • Rəngli TFT
  • Düyməni basın
  • Kiçik çörək lövhəsi
  • Tellər
  • Power Bank
  • USB-dən seriala çevirici

Həmişə olduğu kimi, bu dərslik üçün istifadə olunan bütün komponentləri əlavə edilmiş linklərdən almaq olar. Bununla belə, enerji bankı yalnız layihəni müstəqil rejimdə yerləşdirmək istəyirsinizsə lazımdır.

Sxematik

  • Daha əvvəl qeyd edildiyi kimi, biz STM32F1 lövhəsini təkan düyməsi ilə birlikdə 1.8 ″ ST7735 əsaslı rəngli TFT displeyinə birləşdirəcəyik.
  • Hesablamaya başlamaq üçün lövhəyə göstəriş vermək üçün düymədən istifadə ediləcək.
  • Aşağıdakı sxemdə göstərildiyi kimi komponentləri birləşdirin.

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

Əlaqələrin təkrarlanmasını asanlaşdırmaq üçün STM32 və displey arasında pin-to-pin əlaqələri aşağıda təsvir edilmişdir.

STM32 - ST7735

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

Hər şeyin olduğu kimi olduğundan əmin olmaq üçün əlaqələri bir daha nəzərdən keçirin, çünki bir az çətinləşir. Bunu etdikdən sonra, Arduino IDE ilə proqramlaşdırılacaq STM32 lövhəsini qurmağa davam etdik.

STM32 üçün Arduino IDE-nin qurulması

  • Arduino tərəfindən hazırlanmayan əksər lövhələrdə olduğu kimi, lövhəni Arduino IDE ilə istifadə etməzdən əvvəl bir az quraşdırma aparılmalıdır.
  • Bu, lövhənin quraşdırılmasını əhatə edir file ya Arduino Board Manager vasitəsilə, ya da internetdən endirərək kopyalayın files hardware qovluğuna daxil edin.
  • Şura Meneceri marşrutu daha az yorucudur və STM32F1 sadalanan lövhələr arasında olduğundan, biz bu marşrutla gedəcəyik. STM32 lövhəsi üçün linki Arduino seçim siyahılarına əlavə etməklə başlayın.
  • gedin File -> Preferences, sonra bunu daxil edin URL ( http://dan.drown.org/stm32duino/package_STM32duino_index.json ) aşağıda göstərildiyi kimi qutuya daxil edin və ok düyməsini basın.

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

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

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

  • Quraşdırma proseduru bir neçə saniyə çəkəcək. Bundan sonra, lövhə indi Arduino IDE board siyahısı altında seçim üçün mövcud olmalıdır.

Kod

  • Kod, Arduino layihəsi üçün hər hansı digər eskiz yazdığımız kimi yazılacaq, yeganə fərq sancaqlara istinad üsuludur.
  • Bu layihənin kodunu asanlıqla inkişaf etdirmək üçün standart Arduino Kitabxanalarının modifikasiyası olan iki kitabxanadan istifadə edəcəyik ki, onları STM32 ilə uyğunlaşdıraq.
  • Biz Adafruit GFX və Adafruit ST7735 kitabxanalarının dəyişdirilmiş versiyasından istifadə edəcəyik.
  • Hər iki kitabxananı onlara əlavə edilmiş keçidlər vasitəsilə yükləmək olar. Həmişə olduğu kimi, kodun qısa təsvirini edəcəyəm.
  • İstifadə edəcəyimiz iki kitabxananı idxal etməklə kodu işə salırıq.

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

  • Sonra, LCD-nin CS, RST və DC pinlərinin qoşulduğu STM32-nin sancaqlarını təyin edirik.

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

  • Daha sonra, rəngləri onaltılıq dəyərlərinə görə deyil, kodda adları ilə istifadə etməyi asanlaşdırmaq üçün bəzi rəng tərifləri yaradırıq.

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

  • Sonra, istifadə olunacaq tərəqqi çubuğu üçün yeniləmə müddəti ilə birlikdə lövhənin keçməsini istədiyimiz iterasiyaların sayını təyin edirik.

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

  • Bununla biz bütün layihə boyu ekrana istinad etmək üçün istifadə olunacaq ST7735 kitabxanasının obyektini yaradırıq.
  • Biz həmçinin düymənin qoşulduğu STM32 pinini göstəririk və onun vəziyyətini saxlamaq üçün dəyişən yaradırıq.

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

  • Bunu etdikdən sonra void setup() funksiyasına keçirik.
  • Düymənin bağlandığı sancağın pinMode() parametrini təyin etməklə başlayırıq, çünki düymə basıldıqda yerə qoşulur, çünki pin üzərində daxili çəkilmə rezistorunu aktivləşdiririk.

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

  • Sonra, ekranın fonunu qara rəngə təyin edərək və interfeysi göstərmək üçün çap () funksiyasını çağıraraq, serial əlaqəni və ekranı işə salırıq.

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

  • Sonrakı boş döngə () funksiyasıdır. Void loop funksiyası kitabxanaların/funksiyaların istifadəsi sayəsində olduqca sadə və qısadır.
  • Düymənin vəziyyətini oxumaqla başlayırıq. Düymə basılıbsa, biz removePressKeyText() istifadə edərək ekrandakı cari mesajı silirik və drawBar() funksiyasından istifadə edərək dəyişən irəliləyiş zolağı çəkirik.
  • Daha sonra Pi dəyərini hesablamaq üçün sərf olunan vaxtla birlikdə əldə etmək və göstərmək üçün başlanğıc hesablama funksiyasını çağırırıq.

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

  • Düymə basılmırsa, cihaz onunla qarşılıqlı əlaqə yaratmaq üçün bir düyməyə basılmasını tələb edən ekranla Boş rejimdə qalır.

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

  • Nəhayət, "döngülərin" eskizini çəkməzdən əvvəl bir az vaxt vermək üçün döngənin sonunda bir gecikmə qoyulur.

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

  • Kodun qalan hissəsi çubuğun çəkilməsindən tutmuş Pi-nin hesablanmasına qədər tapşırıqları yerinə yetirmək üçün çağırılan funksiyalardır.
  • Bu funksiyaların əksəriyyəti ST7735 displeyindən istifadəni nəzərdə tutan bir neçə digər dərsliklərdə əhatə olunub.

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

  • Layihənin tam kodu aşağıda mövcuddur və yükləmə bölməsinin altına əlavə edilmişdir.

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

Kod STM32-ə yüklənir

  • Eskizləri STM32f1-ə yükləmək standart Arduino-uyğun lövhələrlə müqayisədə bir az mürəkkəbdir. Kodu lövhəyə yükləmək üçün bizə FTDI əsaslı, USB-dən Seriala çevirici lazımdır.
  • Aşağıdakı sxemlərdə göstərildiyi kimi USB-ni serial çeviriciyə STM32-yə qoşun.

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

Budur əlaqənin pin-to-pin xəritəsi

FTDI - STM32

  • Bunu etdikdən sonra, lövhəni proqramlaşdırma rejiminə qoymaq üçün lövhənin vəziyyəti tullanan yerini birinci yerə dəyişdiririk (aşağıdakı gif-də göstərildiyi kimi).
  • Bundan sonra lövhədəki sıfırlama düyməsini bir dəfə basın və biz kodu yükləməyə hazırıq.

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

  • Kompüterdə “Generic STM32F103C board” seçdiyinizə əmin olun və yükləmə metodu üçün serialı seçin, bundan sonra yükləmə düyməsini vura bilərsiniz.

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

  • Yükləmə tamamlandıqdan sonra vəziyyət keçidini vəziyyətinə dəyişdirin “O” Bu, lövhəni "çalış" rejiminə keçirəcək və o, yüklənmiş kod əsasında işə başlamalıdır.
  • Bu nöqtədə siz FTDI-ni ayıra və boardu USB vasitəsilə gücləndirə bilərsiniz. Enerji verildikdən sonra kodun işləmədiyi halda, keçidi düzgün bərpa etdiyinizə əmin olun və lövhəyə enerjini təkrar istifadə edin.

Demo

  • Kod tamamlandıqda, kodu quraşdırmanıza yükləmək üçün yuxarıda təsvir edilən yükləmə prosesini izləyin.
  • Aşağıdakı şəkildə göstərildiyi kimi ekranın göründüyünü görməlisiniz.

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

  • Hesablamağa başlamaq üçün düyməni basın. Siz tərəqqi çubuğunun sona qədər tədricən sürüşdüyünü görməlisiniz.
  • Prosesin sonunda hesablamanın çəkdiyi vaxtla birlikdə Pi dəyəri göstərilir.

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

  • Eyni kod Arduino Uno-da tətbiq olunur. Nəticə aşağıdakı şəkildə göstərilir.

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

  • Bu iki dəyəri müqayisə etsək görərik ki, “Mavi həb” Arduino Uno-dan 7 dəfə daha sürətlidir.
  • Bu, onu ağır emal və vaxt məhdudiyyətlərini əhatə edən layihələr üçün ideal hala gətirir.
  • Blue Pill-in kiçik ölçüsü də bir advan kimi xidmət edirtage burada, çünki o, Arduino Nano-dan bir qədər böyükdür və Nano-nun kifayət qədər sürətli olmadığı yerlərdə istifadə edilə bilər.

Sənədlər / Resurslar

STM32 STM32F103C8T6 Minimum Sistem İnkişafı Şurası [pdf] İstifadəçi Təlimatı
STM32F103C8T6 Minimum Sistem İnkişafı Şurası, STM32F103C8T6, Minimum Sistem İnkişafı Şurası, Sistem İnkişafı Şurası, İnkişaf Şurası, İdarə Heyəti

İstinadlar

Şərh buraxın

E-poçt ünvanınız dərc olunmayacaq. Tələb olunan sahələr qeyd olunub *