- ST-LINK V2
- STM32CubeMX
- Bahan yang Diperlukan
- Diagram dan Sambungan Litar
- Membuat dan membakar program ke dalam STM32 menggunakan Keil uVision dan ST-Link
- Hasil daripada Keil Board STM32 yang Diprogramkan
- Program
Mikrokontroler STM32 yang menggunakan seni bina ARM Cortex M kini menjadi popular dan digunakan dalam banyak aplikasi kerana ciri, kos dan prestasinya. Kami telah memprogram STM32F103C8 menggunakan Arduino IDE dalam tutorial sebelumnya. Memprogram STM32 dengan Arduino IDE adalah mudah, kerana terdapat banyak perpustakaan yang tersedia untuk pelbagai sensor untuk melakukan tugas apa pun, kami hanya perlu menambahkan perpustakaan tersebut dalam program. Ini adalah prosedur yang mudah dan anda mungkin tidak akan belajar mendalam tentang pemproses ARM. Jadi sekarang kita memasuki tahap pengaturcaraan seterusnya yang disebut pengaturcaraan ARM. Dengan ini kita dapat, bukan sahaja memperbaiki struktur kod kita tetapi juga dapat menjimatkan ruang memori dengan tidak menggunakan perpustakaan yang tidak perlu.
STMicroelectronics memperkenalkan alat bernama STM32Cube MX, yang menghasilkan kod asas mengikut periferal dan papan STM32 yang dipilih. Oleh itu, kita tidak perlu bimbang tentang pengekodan untuk pemacu asas dan periferal. Selanjutnya kod yang dihasilkan ini dapat digunakan di Keil uVision untuk diedit sesuai dengan keperluan. Dan akhirnya kod tersebut dibakar menjadi STM32 menggunakan programmer ST-Link dari STMicroelectronics.
Dalam tutorial ini kita akan belajar bagaimana memprogram STM32F103C8 menggunakan Keil uVision & STM32CubeMX dengan melakukan projek mudah antara muka menekan butang dan LED dengan papan STM32F103C8 Blue Pill. Kami akan menghasilkan kod menggunakan STM32Cube MX kemudian menyunting & memuat naik kod ke STM32F103C8 menggunakan Keil uVision. Sebelum mengetahui secara terperinci, kita akan terlebih dahulu mengetahui mengenai programmer ST-LINK dan alat perisian STM32CubeMX.
ST-LINK V2
The ST-LINK / V2 adalah penyahpepijat dan programmer di litar untuk STM8 dan STM32 keluarga pengawal mikro. Kita boleh memuat naik kod ke STM32F103C8 dan mikrokontroler STM8 & STM32 lain menggunakan ST-LINK ini. Antara muka modul antara wayar tunggal (SWIM) dan JTAG / siri wayar debugging (SWD) digunakan untuk berkomunikasi dengan mikrokontroler STM8 atau STM32 yang terdapat di papan aplikasi. Oleh kerana aplikasi STM32 menggunakan antara muka berkelajuan penuh USB untuk berkomunikasi dengan persekitaran pembangunan bersepadu Atollic, IAR, Keil atau TASKING, jadi kami dapat menggunakan perkakasan ini untuk memprogram mikrokontroler STM 8 & STM32.
Di atas adalah gambar dongle ST-LINK V2 dari STMicroelectronics yang menyokong pelbagai antara muka debugging STM32 SWD, antara muka 4-wayar sederhana (termasuk kuasa), cepat dan stabil. Ia terdapat dalam pelbagai warna. Badan dibuat daripada aloi aluminium. Ia mempunyai petunjuk LED biru kerana digunakan untuk memerhatikan keadaan ST-LINK yang berfungsi. Nama pin ditandai dengan jelas di cangkang seperti yang dapat kita lihat pada gambar di atas. Ia dapat dihubungkan dengan perisian Keil di mana program ini dapat di-flash ke mikrokontroler STM32. Oleh itu, mari kita lihat dalam tutorial ini bagaimana pengaturcara ST-LINK ini dapat digunakan untuk memprogram mikrokontroler STM32. Gambar di bawah menunjukkan pin modul ST-LINK V2.
Catatan: Semasa menyambungkan ST-Link dengan komputer untuk pertama kalinya. Kami memerlukan pemacu peranti dipasang. Pemacu peranti boleh didapati di pautan ini mengikut sistem operasi anda.
STM32CubeMX
Alat STM32CubeMX adalah sebahagian daripada STMicroelectronics STMCube. Alat perisian ini memudahkan pembangunan dengan mengurangkan usaha, masa dan kos pembangunan. STM32Cube merangkumi STM32CubeMX yang merupakan alat konfigurasi perisian grafik yang membolehkan penjanaan kod inisialisasi C menggunakan penyihir grafik. Kod itu boleh digunakan dalam pelbagai persekitaran pembangunan seperti keil uVision, GCC, IAR dll. Anda boleh memuat turun alat ini dari pautan berikut.
STM32CubeMX mempunyai ciri berikut
- Sematkan penyelesaian masalah
- Pembantu pengaturan pokok jam
- Kalkulator penggunaan kuasa
- Utiliti yang melaksanakan konfigurasi periferal MCU seperti pin GPIO, USART dll
- Utiliti yang melakukan konfigurasi periferal MCU untuk timbunan middleware seperti USB, TCP / IP dll
Bahan yang Diperlukan
Perkakasan
- Papan Pil Biru STM32F103C8
- ST-LINK V2
- Tekan butang
- LED
- Papan roti
- Wayar Pelompat
Perisian
- Alat Penjanaan Kod STM32CubeMX (Pautan)
- Keil uVision 5 (pautan)
- Pemacu untuk ST-Link V2 (pautan)
Diagram dan Sambungan Litar
Di bawah adalah gambarajah litar untuk hanya menyambungkan LED dengan papan STM32 menggunakan butang tekan.
Sambungan antara ST-LINK V2 & STM32F103C8
Di sini papan STM32 Blue Pill dihidupkan dari ST-LINK yang disambungkan ke port USB komputer. Oleh itu, kita tidak perlu menghidupkan STM32 secara berasingan. Jadual di bawah menunjukkan hubungan antara papan pil ST-Link dan Biru.
STM32F103C8 |
Pautan ST-V2 |
GND |
GND |
SWCLK |
SWCLK |
SWDIO |
SWDIO |
3V3 |
3.3V |
Butang LED & Tekan
LED digunakan untuk menunjukkan output dari papan Pill Biru apabila butang tekan ditekan. Anod LED disambungkan ke pin PC13 papan Pill Biru dan katod dibumikan.
A butang tekan disambungkan untuk memberi input kepada PA1 pin Blue Pill kapal. Kita juga mesti menggunakan resistor penarik bernilai 10k kerana pin mungkin melayang tanpa input ketika butang dilepaskan. Satu hujung butang tekan disambungkan ke tanah dan hujung lain ke pin PA1 & penarik tarik 10k juga disambungkan ke 3.3V papan Blue Pill.
Membuat dan membakar program ke dalam STM32 menggunakan Keil uVision dan ST-Link
Langkah 1: - Pertama memasang semua pemandu peranti untuk ST-LINK V2, alat perisian STM32Cube MX & Keil uVision dan memasang pakej perlu bagi STM32F103C8.
Langkah 2: - Langkah kedua adalah Buka >> STM32Cube MX
Langkah 3: - Kemudian Klik pada Projek Baru
Langkah 4: - Selepas carian & pilih mikrokontroler STM32F103C8 kami
Langkah 5: - Sekarang lakaran pin-out STM32F103C8 muncul, di sini kita dapat mengatur konfigurasi pin. Kami juga boleh memilih pin kami di bahagian periferal mengikut projek kami.
Langkah 6: - Anda juga dapat mengklik pin secara langsung dan senarai muncul, sekarang pilih konfigurasi pin yang diperlukan.
Langkah 7: - Untuk projek kami, kami telah memilih PA1 sebagai GPIO INPUT, PC13 sebagai GPIO OUTPUT & SYS debug sebagai SERIAL WIRE, di sini hanya kami menghubungkan pin ST-LINK SWCLK & SWDIO. Pin yang dipilih & dikonfigurasi muncul dalam warna HIJAU. Anda dapat memperhatikannya dalam gambar di bawah.
Langkah 8: - Selanjutnya di bawah tab Konfigurasi , pilih GPIO untuk menetapkan konfigurasi pin GPIO untuk pin yang telah kita pilih.
Langkah 9: - Selanjutnya di kotak konfigurasi pin ini kita dapat mengkonfigurasi Label Pengguna untuk pin yang kita gunakan, iaitu nama pin yang ditentukan pengguna.
Langkah 10: - Selepas itu klik pada Projek >> Hasilkan Kod .
Langkah 11: - Sekarang kotak dialog tetapan projek muncul. Di kotak ini pilih nama dan lokasi projek anda dan pilih persekitaran pembangunan. Kami menggunakan Keil jadi pilih MDK-ARMv5 sebagai IDE.
Langkah 12: - Seterusnya di bawah tab Penjana Kod , pilih Salin hanya fail perpustakaan yang diperlukan dan kemudian klik OK.
Langkah 13: - Sekarang kotak dialog penjanaan kod muncul. Pilih Open Project untuk membuka projek secara automatik kod yang dihasilkan di Keil uvsion.
Langkah 14: - Sekarang alat Keil uVision dibuka dengan kod yang dihasilkan kami di STM32CubeMx dengan nama projek yang sama dengan perpustakaan dan kod yang diperlukan yang dikonfigurasi untuk pin yang kami pilih.
Langkah 15: - Sekarang kita hanya perlu memasukkan logik untuk melakukan beberapa tindakan pada output LED (pin PC13) ketika butang ditekan dan dilepaskan pada input GPIO (pin PA1). Oleh itu, pilih program main.c kami untuk memasukkan beberapa kod.
Langkah 16: - Sekarang tambahkan kod dalam gelung sementara (1) , lihat gambar di bawah di mana saya menyerlahkan bahagian itu untuk menjalankan kod secara berterusan.
sementara (1) {if (HAL_GPIO_ReadPin (BUTN_GPIO_Port, BUTN_Pin) == 0) // => Butang DETECTS Ditekan {HAL_GPIO_WritePin (LEDOUT_GPIO_Port, LEDOUT_Pin, 1); // Untuk menjadikan output tinggi ketika butang menekand} lain {HAL_GPIO_WritePin (LEDOUT_GPIO_Port, LEDOUT_Pin, 0); // Untuk menjadikan output Rendah apabila butang ditekan}}
Langkah 17: - Setelah selesai mengedit kod, klik ikon Pilihan untuk Sasaran di bawah tab debug pilih ST-LINK Debugger
Juga, klik pada butang Tetapan dan kemudian di bawah tab Muat turun Flash, tandakan kotak semak Atur Semula dan Jalankan dan klik 'ok'.
Langkah 18: - Sekarang klik pada ikon Bina semula untuk membina semula semua fail sasaran.
Langkah 19: - Sekarang anda boleh memasangkan ST-LINK ke komputer dengan sambungan litar yang siap dan klik pada ikon DOWNLOAD atau tekan F8 untuk menyalakan STM32F103C8 dengan kod yang telah anda hasilkan dan edit.
Langkah 20: - Anda dapat melihat petunjuk yang berkelip di bahagian bawah tetingkap keil uVision.
Hasil daripada Keil Board STM32 yang Diprogramkan
Sekarang apabila kita menekan butang tekan, LED menyala dan ketika kita melepaskannya, LED mati.
Program
Bahagian utama yang telah kami tambahkan dalam program yang dihasilkan ditunjukkan di bawah. Kod di bawah ini perlu disertakan semasa (1 ) program main.c dihasilkan oleh STM32CubeMX. Anda boleh kembali ke Langkah 15 hingga langkah 17 untuk mengetahui bagaimana ia harus ditambahkan dalam program main.c.
sementara (1) {if (HAL_GPIO_ReadPin (BUTN_GPIO_Port, BUTN_Pin) == 0) // => Butang DETECTS Ditekan {HAL_GPIO_WritePin (LEDOUT_GPIO_Port, LEDOUT_Pin, 1); // Untuk menjadikan output tinggi ketika butang menekand} lain {HAL_GPIO_WritePin (LEDOUT_GPIO_Port, LEDOUT_Pin, 0); // Untuk menjadikan output Rendah apabila butang ditekan}}
Proses lengkap membuat dan memuat naik projek ke papan STM32 juga dijelaskan dalam Video yang diberikan pada akhir. Juga kod lengkap fail main.c diberikan di bawah termasuk kod yang diberikan di atas.
Selanjutnya, anda boleh mendapatkan set lengkap projek STM32 kami di sini.