- Memilih dan Mengunduh Platform Pengembangan yang Diperlukan untuk Papan Nucleo64
- Diagram Sirkuit dan pengaturan Perangkat Keras
- Memulai STM32CubeMX untuk STM32 Nucleo64 Development Boards
- Pemrograman STM32 Nucleo64 Development Board menggunakan TrueSTUDIO
- STM32 Nucleo64 Program untuk Mengontrol LED menggunakan Push Button
- Debugging dan Mengunggah Kode ke Papan Pengembangan STM32 Necleo64 menggunakan TrueSTUDIO
Banyak dari kita harus terbiasa dengan mikrokontroler populer dan papan pengembangan seperti Arduino, Raspberry Pi, ESP8266, NoduMCU, 8051, dll. Faktanya, bagi kebanyakan orang, Arduino akan menjadi papan pengembangan pertama mereka, tetapi saat kita menggali lebih dalam dan memulai desain profesional, kami akan segera menyadari keterbatasan Arduino (seperti biaya, keserbagunaan, stabilitas, kecepatan, dll.) dan memahami kebutuhan untuk beralih ke platform Mikrokontroler yang lebih asli seperti PIC, STM, Renesas, dll.
Kami telah membahas urutan tutorial Mikrokontroler PIC, yang memandu pemula untuk mempelajari mikrokontroler PIC. Demikian pula, dimulai dengan artikel ini, kami juga akan merencanakan urutan Tutorial Papan Pengembangan Nucleo64 STM32 yang dapat membantu pemula mutlak untuk belajar dan mengembangkan menggunakan Platform STM32. Papan Pengembangan Nucleo64 adalah platform berbiaya rendah dan mudah digunakan untuk pengembang profesional serta untuk penghobi. Jika Anda benar-benar baru mengenal STM32 Nucleo64 Development Boards, lihat video Review Nucleo64 ini untuk memahami dasar-dasar board ini sebelum Anda melanjutkan lebih jauh. Video tersebut juga mendemonstrasikan bagaimana memprogram STM32 menggunakan ARM Mbed Platform tetapi untuk tutorial ini, kami akan menggunakan platform gratis lainnya dari ST Microelectronics yang disebut TrueSTUDIO.
Catatan: Ada banyak versi Papan Pengembangan Nucleo64 STM32, papan khusus yang digunakan dalam tutorial ini adalah NUCLEO-F030R8. Kami telah memilih papan ini terutama karena biayanya yang rendah. Bahkan, jika Anda memiliki versi yang berbeda, sebagian besar hal yang dibahas dalam tutorial ini sudah cukup bagi Anda untuk memulai.
Memilih dan Mengunduh Platform Pengembangan yang Diperlukan untuk Papan Nucleo64
Memulai dengan mikrokontroler apa pun akan membutuhkan IDE pemrograman seperti kita memiliki Arduino IDE untuk papan Arduino, Atmel Studio untuk mikrokontroler AVR, MP Lab untuk PIC, dll. Jadi di sini kita juga membutuhkan IDE untuk Papan Nucleo64 STM32 kita untuk melakukan pemrograman dan debugging. Keluarga STM32 terdiri dari Mikrokontroler 32-bit yang mendukung IDE dan toolchain berikut:
- IAR Embedded Workbench® for ARM® (EWARM).
- MDK-ARM Keil
- TrueSTUDIO
- Meja Kerja Sistem untuk STM32
Di sini untuk tutorial kami, TrueSTUDIO akan digunakan untuk menulis, menyusun, dan men-debug kode karena gratis untuk diunduh dan digunakan bahkan untuk proyek komersial tanpa persyaratan lisensi apa pun. Kemudian STM32CubeMX akan digunakan untuk menghasilkan driver periferal untuk papan STM32 agar pemrograman menjadi mudah. Untuk mengunggah program kami (file hex) ke papan pengembangan kami, orang biasanya menggunakan alat Utilitas STM32 ST-LINK, tetapi sebaliknya, kami akan menggunakan TrueSTUDIO sendiri untuk melakukan ini. TrueSTUDIO memiliki mode debug yang memungkinkan pemrogram mengunggah file hex langsung ke papan STM32. Baik TrueSTUIO dan STM32CubeMX mudah diunduh, cukup ikuti tautan di bawah ini, daftar dan unduh pengaturannya. Kemudian instal di Laptop Anda.
- Unduh STM32Cube MX
- Unduh TrueSTUDIO
Diagram Sirkuit dan pengaturan Perangkat Keras
Sebelum kita melanjutkan dengan bagian perangkat lunak dan pengkodean, mari persiapkan papan kita untuk proyek ini. Seperti yang disebutkan sebelumnya dalam artikel ini, kami akan mengontrol LED menggunakan tombol tekan. Sekarang, jika Anda telah melihat video yang ditautkan di atas, Anda seharusnya sudah tahu bahwa Papan Pengembangan STM32 Anda memiliki dua set pin konektor di kedua sisi yang disebut pin ST Morpho. Kami telah menghubungkan tombol tekan dan LED ke pin ini seperti yang ditunjukkan pada diagram sirkuit di bawah ini.
Koneksi sirkuit mudah untuk proyek ini, kita perlu menghubungkan LED di PA5 dari PORTA dan sakelar di PC13 dari PORTC sehubungan dengan GND. Setelah koneksi dibuat, pengaturan pengujian saya terlihat seperti ini.
Sebagai alternatif, kita juga dapat menggunakan LED bawaan dan tombol tekan di papan. LED dan tombol tekan bawaan ini juga terhubung pada pin yang sama seperti yang ditunjukkan pada diagram sirkuit. Kami telah menambahkan komponen eksternal hanya untuk latihan. Diagram pin di bawah dari Papan Pengembangan STM32 akan berguna untuk mengetahui di mana setiap pin morpho terhubung ke onboard.
Memulai STM32CubeMX untuk STM32 Nucleo64 Development Boards
Langkah 1: Setelah pemasangan, luncurkan STM32CubeMX, lalu pilih pemilih papan akses untuk memilih papan STM32.
Langkah 2: Sekarang cari papan dengan nama papan STM32 Anda seperti NUCLEO-F030R8 dan klik papan yang ditunjukkan pada gambar. Jika Anda memiliki papan yang berbeda, cari nama masing-masing. Perangkat lunak ini akan mendukung semua papan pengembangan STM32 dari ST Microelectronics.
Langkah 3: Sekarang klik ya seperti yang ditunjukkan pada gambar di bawah ini, untuk menginisialisasi semua periferal dalam mode default mereka. Kami nanti dapat mengubah yang diperlukan sesuai kebutuhan proyek kami.
Setelah mengklik 'Ya', layar akan mirip dengan gambar di bawah dan pin warna hijau yang menunjukkan bahwa mereka dimulai secara default.
Langkah 4: Sekarang pengguna dapat memilih pengaturan yang diinginkan dari kategori. Di sini, di tutorial ini, kita akan mengaktifkan LED menggunakan tombol push. Jadi, kita perlu membuat pin LED sebagai output dan pin saklar sebagai INPUT.
Anda dapat memilih pin apa saja, tetapi saya memilih PA5 dan mengubah statusnya menjadi GPIO_Output agar berfungsi sebagai pin keluaran seperti yang ditunjukkan pada gambar di bawah ini.
Demikian pula, saya memilih PC13 sebagai GPIO_Input sehingga saya dapat membaca status tombol tekan saya.
Sebagai alternatif, kita juga dapat mengkonfigurasi pin dari tab pinout dan konfigurasi seperti yang ditunjukkan di bawah ini.
Langkah 5: Pada langkah selanjutnya, pengguna dapat mengatur frekuensi yang diinginkan untuk mikrokontroler dan pin sesuai dengan osilator eksternal dan internal. Secara default, osilator kristal internal 8 MHz dipilih dan dengan menggunakan PLL, 8 ini diubah menjadi 48MHz. Artinya secara default papan STM32 atau mikrokontroler dan Pin akan bekerja pada 48MHz.
Langkah 6: Sekarang pindah ke manajer proyek dan beri nama proyek Anda, lokasi proyek, dan pilih toolchain atau IDE. Di sini kami menggunakan TrueSTUDIO, jadi saya telah memilih yang sama seperti yang ditunjukkan di bawah ini.
Langkah 7: Sekarang klik tanda Generate Code dengan lingkaran merah pada gambar di bawah.
Langkah 8: Sekarang Anda akan melihat popup seperti yang diberikan kemudian klik proyek terbuka. Tapi, pastikan Anda sudah menginstal TrueSTUDIO sebelum langkah ini.
Pemrograman STM32 Nucleo64 Development Board menggunakan TrueSTUDIO
Sekarang kode atau proyek Anda akan terbuka di TrueSTUDIO secara otomatis jika TrueSTUDIO meminta lokasi ruang kerja, berikan lokasi ruang kerja atau gunakan lokasi default.
Pengguna akan melihat layar yang diberikan di bawah ini dan kemudian perlu mengklik tanda sudut dengan warna merah.
Dan sekarang kita bisa melihat kode di TreuSTUDIO IDE kita. Di sisi kiri di bawah folder 'src' kita dapat melihat file program lain (dengan ekstensi.c) yang telah dibuatkan untuk kita dari STM32Cube. Kami hanya perlu memprogram file main.c. Bahkan dalam file main.c kita sudah memiliki beberapa hal yang diatur oleh CubeMX kita hanya perlu mengeditnya agar sesuai dengan program kita. Kode lengkap di dalam file main.c diberikan di bagian bawah halaman ini.
STM32 Nucleo64 Program untuk Mengontrol LED menggunakan Push Button
Karena semua driver dan kode yang diperlukan dihasilkan oleh STM32CubeMX, kita hanya perlu mengkonfigurasi pin LED sebagai output dan tombol tekan sebagai Input. Program untuk mengontrol led menggunakan tombol tekan harus ditulis di file main.c. Program lengkapnya dapat ditemukan di bagian bawah halaman ini. Penjelasannya adalah sebagai berikut
Kami hanya memiliki kode tertulis untuk menyalakan LED menggunakan tombol tekan. Untuk mencapai ini, pertama-tama kami menetapkan pin untuk LED dan tombol tekan. Di sini kami telah menetapkan LED di Pin 5 nomor PORTA
# Tentukan LED_PORT GPIOA # Tentukan LED_PIN GPIO_PIN_5
Dan tentukan sakelar di Pin Nomor 13 dari PORTC.
#define SW_PORT GPIOC #define SW_PIN GPIO_PIN_13
Kemudian di fungsi utama, kami telah menginisialisasi semua perangkat yang digunakan.
/ * Inisialisasi semua periferal yang dikonfigurasi * / MX_GPIO_Init (); MX_USART2_Init ();
Dan kemudian membaca tombol tekan menggunakan pernyataan if dan jika ditemukan tombol tekan (LOW) maka LED akan mengubah statusnya.
Sementara (1) {/ * KODE PENGGUNA AKHIR WHILE * / Jika (! HAL_GPIO_ReadPin (SW_PORT, SW_PIN)) {HAL_GPIO_TogglePin (SW_PORT, LED_PIN); HAL_Delay (200); } / * KODE PENGGUNA DIMULAI 3 * /}
Di sini fungsi HAL_GPIO_ReadPin (SW_PORT, SW_PIN) memiliki dua argumen, satu adalah PORT dan yang lainnya adalah pin di mana sakelar terhubung dan pin ini dikonfigurasi sebagai INPUT saat mengkonfigurasi perangkat di STM32CubeMX.
Debugging dan Mengunggah Kode ke Papan Pengembangan STM32 Necleo64 menggunakan TrueSTUDIO
Sekarang hubungkan papan Anda ke komputer menggunakan kabel programmer. Setelah Anda menghubungkannya, driver yang diperlukan untuk papan tersebut harus diunduh secara otomatis, Anda dapat memeriksanya menggunakan pengelola perangkat.
Kemudian, Tekan ikon debug yang ditandai dengan lingkaran merah pada gambar yang diberikan di bawah ini untuk mengkompilasi program dan masuk ke mode debug.
Dalam mode debug, kode akan diunggah secara otomatis. Sekarang kita perlu menjalankan kode dengan menekan 'Resume' atau F8 (ditandai dengan sirkuit merah pada gambar di bawah).
Sekarang kita dapat menguji kontrol LED dengan menekan tombol push. Menurut kode tersebut, LED harus berubah statusnya setiap kali Anda menekan tombol tekan. Pekerjaan lengkap juga dapat ditemukan dalam video yang ditautkan di bagian bawah halaman ini.
Setelah dilakukan pengujian, kita juga dapat menghentikan program dengan menekan icon terminate yang ditandai dengan lingkaran merah pada gambar di bawah ini.