STM32-logo

STM32F103C8T6 Papan Pembangunan Sistem Minimum

STM32F103C8T6-Produk-Papan-Pembangunan-Sistem-Minimum

Maklumat Produk

Modul Papan Pembangunan Sistem Minimum STM32F103C8T6 ARM STM32 ialah papan pembangunan yang berasaskan mikropengawal STM32F103C8T6. Ia direka bentuk untuk diprogramkan menggunakan Arduino IDE dan serasi dengan pelbagai klon Arduino, variasi dan papan pihak ketiga seperti ESP32 dan ESP8266.

Papan tersebut, juga dikenali sebagai Blue Pill Board, beroperasi pada frekuensi kira-kira 4.5 kali lebih tinggi daripada Arduino UNO. Ia boleh digunakan untuk pelbagai projek dan boleh disambungkan kepada peranti seperti paparan TFT.

Komponen yang diperlukan untuk membina projek dengan papan ini termasuk Papan STM32, Pengaturcara FTDI, Paparan TFT Warna, Butang Tekan, Papan Breadboard Kecil, Wayar, Bank Kuasa (pilihan untuk mod bersendirian) dan Penukar USB ke Bersiri.

Skema

Untuk menyambungkan papan STM32F1 ke Paparan TFT berwarna berasaskan 1.8 ST7735 dan butang tekan, ikut sambungan pin-ke-pin yang diterangkan dalam skema yang disediakan.

Menyediakan IDE Arduino untuk STM32

  1. Buka Arduino IDE.
  2. Pergi ke Alat -> Papan -> Pengurus Lembaga.
  3. Dalam kotak dialog dengan bar carian, cari "STM32F1" dan pasang pakej yang sepadan.
  4. Tunggu prosedur pemasangan selesai.
  5. Selepas pemasangan, papan STM32 kini sepatutnya tersedia untuk pemilihan di bawah senarai papan IDE Arduino.

Memprogramkan papan STM32 dengan Arduino IDE

Sejak penubuhannya, Arduino IDE telah menunjukkan keinginan untuk menyokong semua jenis platform, daripada klon Arduino dan variasi pengeluar yang berbeza kepada papan pihak ketiga seperti ESP32 dan ESp8266. Apabila lebih ramai orang membiasakan diri dengan IDE, mereka mula menyokong lebih banyak papan yang tidak berdasarkan cip ATMEL dan untuk tutorial hari ini kita akan melihat salah satu papan tersebut. Kami akan mengkaji cara memprogramkan papan pembangunan STM32 berasaskan STM32F103C8T6 dengan Arduino IDE.

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

Papan STM32 yang akan digunakan untuk tutorial ini tidak lain adalah papan pembangunan STM32F103 berasaskan cip STM8F6C32T1 yang biasanya dirujuk sebagai "Pil Biru" selaras dengan warna biru PCBnya. Pil Biru dikuasakan oleh pemproses ARM 32-bit STM32F103C8T6 yang berkuasa, mencatatkan masa pada 72MHz. Papan beroperasi pada tahap logik 3.3v tetapi pin GPIOnya telah diuji untuk bertoleransi 5v. Walaupun ia tidak disertakan dengan WiFi atau Bluetooth seperti varian ESP32 dan Arduino, ia menawarkan 20KB RAM dan 64KB memori kilat yang menjadikannya mencukupi untuk projek besar. Ia juga mempunyai 37 pin GPIO, 10 daripadanya boleh digunakan untuk penderia Analog kerana ia telah mendayakan ADC, bersama-sama dengan yang lain yang didayakan untuk SPI, I2C, CAN, UART dan DMA. Untuk papan yang berharga sekitar $3, anda akan bersetuju dengan saya bahawa ini adalah spesifikasi yang mengagumkan. Versi ringkasan spesifikasi ini berbanding dengan Arduino Uno ditunjukkan dalam imej di bawah.

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

Berdasarkan spesifikasi di atas, kekerapan Pil Biru beroperasi adalah kira-kira 4.5 kali lebih tinggi daripada Arduino UNO, untuk tutorial hari ini, sebagai bekasampMengenai cara menggunakan papan STM32F1, kami akan menyambungkannya ke paparan TFT 1.44″ dan memprogramnya untuk mengira pemalar “Pi”. Kami akan perhatikan berapa lama masa yang diambil oleh papan untuk mendapatkan nilai dan bandingkan dengan masa yang diperlukan Arduino Uno untuk melaksanakan tugas yang sama.

Komponen yang Diperlukan

Komponen berikut diperlukan untuk membina projek ini;

  • Papan STM32
  • Pengaturcara FTDI
  • Warna TFT
  • Butang Tekan
  • Papan roti kecil
  • wayar
  • Power Bank
  • USB ke Penukar Bersiri

Seperti biasa, semua komponen yang digunakan untuk tutorial ini boleh dibeli dari pautan yang dilampirkan. Bank kuasa bagaimanapun hanya diperlukan jika anda ingin menggunakan projek dalam mod bersendirian.

Skema

  • Seperti yang dinyatakan sebelum ini, kami akan menyambungkan papan STM32F1 ke Paparan TFT berwarna berasaskan 1.8″ ST7735 bersama-sama dengan butang tekan.
  • Butang tekan akan digunakan untuk mengarahkan papan untuk memulakan pengiraan.
  • Sambungkan komponen seperti yang ditunjukkan dalam skema di bawah.

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

Untuk menjadikan sambungan mudah untuk direplikasi, sambungan pin-ke-pin antara STM32 dan paparan diterangkan di bawah.

STM32 – ST7735

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

Semak sambungan sekali lagi untuk memastikan semuanya adalah seperti yang sepatutnya kerana ia cenderung menjadi sedikit rumit. Dengan ini dilakukan, kami terus menyediakan papan STM32 untuk diprogramkan dengan IDE Arduino.

Menyediakan IDE Arduino untuk STM32

  • Seperti kebanyakan papan yang tidak dibuat oleh Arduino, sedikit persediaan perlu dilakukan sebelum papan boleh digunakan dengan Arduino IDE.
  • Ini melibatkan pemasangan papan file sama ada melalui Pengurus Papan Arduino atau memuat turun dari internet dan menyalin files ke dalam folder perkakasan.
  • Laluan Pengurus Lembaga adalah yang kurang membosankan dan memandangkan STM32F1 adalah antara papan yang disenaraikan, kami akan pergi ke laluan itu. Mulakan dengan menambah pautan untuk papan STM32 ke senarai keutamaan Arduino.
  • Pergi ke File -> Keutamaan, kemudian masukkan ini URL ( http://dan.drown.org/stm32duino/package_STM32duino_index.json ) dalam kotak seperti yang ditunjukkan di bawah dan klik 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. Cari untuk STM32F1 and install the corresponding package.

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

  • Prosedur pemasangan akan mengambil masa beberapa saat. Selepas itu, papan kini sepatutnya tersedia untuk pemilihan di bawah senarai papan IDE Arduino.

Kod

  • Kod itu akan ditulis dengan cara yang sama seperti kami menulis lakaran lain untuk projek Arduino, dengan satu-satunya perbezaan ialah cara pin dirujuk.
  • Untuk dapat membangunkan kod untuk projek ini dengan mudah, kami akan menggunakan dua perpustakaan yang merupakan pengubahsuaian bagi Perpustakaan Arduino standard untuk menjadikannya serasi dengan STM32.
  • Kami akan menggunakan versi diubah suai bagi perpustakaan Adafruit GFX dan Adafruit ST7735.
  • Kedua-dua perpustakaan boleh dimuat turun melalui pautan yang dilampirkan padanya. Seperti biasa, saya akan melakukan pecahan ringkas kod.
  • Kami memulakan kod dengan mengimport dua perpustakaan yang akan kami gunakan.

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

  • Seterusnya, kami mentakrifkan pin STM32 yang mana pin CS, RST dan DC LCD disambungkan.

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

  • Seterusnya, kami mencipta beberapa definisi warna untuk memudahkan penggunaan warna mengikut nama mereka dalam kod kemudian dan bukannya dengan nilai hex mereka.

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

  • Seterusnya, kami menetapkan bilangan lelaran yang kami mahu papan lalui bersama-sama dengan tempoh muat semula untuk bar kemajuan digunakan.

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

  • Dengan ini dilakukan, kami mencipta objek perpustakaan ST7735 yang akan digunakan untuk merujuk paparan sepanjang keseluruhan projek.
  • Kami juga menunjukkan pin STM32 yang mana butang tekan disambungkan dan mencipta pembolehubah untuk mengekalkan keadaannya.

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

  • Dengan ini selesai, kami beralih ke fungsi void setup() .
  • Kita mulakan dengan menetapkan pinMode() pin yang mana butang tekan disambungkan, mengaktifkan perintang tarik-ke atas dalaman pada pin kerana butang tekan bersambung ke tanah apabila ditekan.

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

  • Seterusnya, kami memulakan komunikasi bersiri dan skrin, menetapkan latar belakang paparan kepada hitam dan memanggil fungsi cetak () untuk memaparkan antara muka.

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

  • Seterusnya ialah fungsi void loop(). Fungsi gelung lompang agak mudah dan pendek, terima kasih kepada penggunaan perpustakaan/fungsi.
  • Kita mulakan dengan membaca keadaan butang tekan. Jika butang telah ditekan, kami mengalih keluar mesej semasa pada skrin menggunakan removePressKeyText() dan melukis bar kemajuan yang berubah menggunakan fungsi drawBar().
  • Kami kemudian memanggil fungsi pengiraan mula untuk mendapatkan dan memaparkan nilai Pi bersama-sama dengan masa yang diambil untuk mengiranya.

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

  • Jika butang tekan tidak ditekan, peranti kekal dalam mod Melahu dengan skrin menuntut kekunci ditekan untuk berinteraksi dengannya.

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

  • Akhir sekali, kelewatan dimasukkan pada penghujung gelung untuk memberi sedikit masa sebelum melakar "gelung".

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

  • Bahagian selebihnya kod ialah fungsi yang dipanggil untuk mencapai tugas daripada melukis bar hingga mengira Pi.
  • Kebanyakan fungsi ini telah diliputi dalam beberapa tutorial lain yang melibatkan penggunaan paparan 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

  • Kod lengkap untuk projek itu tersedia di bawah dan dilampirkan di bawah bahagian muat turun.

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

Memuat naik Kod ke STM32

  • Memuat naik lakaran ke STM32f1 adalah sedikit rumit berbanding dengan papan serasi Arduino standard. Untuk memuat naik kod ke papan, kami memerlukan penukar berasaskan FTDI, USB-ke Serial.
  • Sambungkan USB ke penukar bersiri kepada STM32 seperti yang ditunjukkan dalam skema di bawah.

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

Berikut ialah peta pin-ke-pin sambungan

FTDI – STM32

  • Dengan ini dilakukan, kami kemudian menukar kedudukan pelompat keadaan papan ke kedudukan satu (seperti yang ditunjukkan dalam gif di bawah), untuk meletakkan papan dalam mod pengaturcaraan.
  • Tekan butang set semula pada papan sekali selepas ini dan kami bersedia untuk memuat naik kod tersebut.

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

  • Pada komputer, pastikan anda memilih "Papan STM32F103C Generik" dan pilih bersiri untuk kaedah muat naik selepas itu anda boleh menekan butang muat naik.

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

  • Setelah Muat Naik selesai, tukar pelompat keadaan kepada kedudukan “O” Ini akan meletakkan papan dalam mod "lari" dan ia sepatutnya mula berjalan berdasarkan kod yang dimuat naik.
  • Pada ketika ini, anda boleh memutuskan sambungan FTDI dan kuasakan papan ke atas USBnya. Sekiranya kod tidak berjalan selepas dikuasakan, pastikan anda telah memulihkan pelompat dengan betul dan mengitar semula kuasa ke papan.

Demo

  • Dengan kod lengkap, ikut proses muat naik yang diterangkan di atas untuk memuat naik kod ke persediaan anda.
  • Anda sepatutnya melihat paparan muncul seperti yang ditunjukkan dalam imej di bawah.

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

  • Tekan butang tekan untuk memulakan pengiraan. Anda sepatutnya melihat bar kemajuan slaid secara beransur-ansur sehingga tamat.
  • Pada akhir proses, nilai Pi dipaparkan bersama-sama dengan masa yang diambil oleh pengiraan.

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

  • Kod yang sama dilaksanakan pada Arduino Uno. Hasilnya ditunjukkan dalam imej di bawah.

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

  • Membandingkan kedua-dua nilai ini, kita melihat bahawa "Pil Biru" adalah lebih 7 kali lebih pantas daripada Arduino Uno.
  • Ini menjadikannya sesuai untuk projek yang melibatkan pemprosesan berat dan kekangan masa.
  • Saiz kecil Pil Biru juga berfungsi sebagai advantage di sini kerana ia hanya sedikit lebih besar daripada Arduino Nano dan ia boleh digunakan di tempat di mana Nano tidak akan cukup laju.

Dokumen / Sumber

STM32 STM32F103C8T6 Papan Pembangunan Sistem Minimum [pdf] Manual Pengguna
STM32F103C8T6 Papan Pembangunan Sistem Minimum, STM32F103C8T6, Lembaga Pembangunan Sistem Minimum, Papan Pembangunan Sistem, Papan Pembangunan, Papan

Rujukan

Tinggalkan komen

Alamat e-mel anda tidak akan diterbitkan. Medan yang diperlukan ditanda *