Tutorial STM32F4: Memulai Memprogram Nucleo-F446RE dengan STM32CubeIDE
Setelah sebelumnya dikenalkan dengan development board Nucleo-F446RE kini saatnya, embeddednesia mengulas lebih lanjut dengan menujukkan bagaimana memulai memprogram Mikrokontroler STM32F446RE yang ada pada development board Nucleo-F446RE menggunakan STM32CubeIDE.
- Prasyarat Perangkat Lunak
- STM32CubeIDE
Bagi pembaca yang belum menginstal STM32CubeIDE silahkan terlebih dahulu mengunduh dan install STM32CubeIDE dengan membaca terlebih dahulu artikel sebelumnya. Selain itu, pengguna juga diasumsikan telah menginstal driver ST-LINK/2.1. Jika belum, silahkan unduh dan instal terlebih dahulu di tautan ini.
STM32CubeF4 adalah paket firmware dan library untuk mikrokontroler seri STM32F4 beberapa diantaranya adalah, HAL, API Low Layer dan CMSIS, USB, TCP/IP, FIle System, RTOS, grafis termasuk contoh – contoh program untuk Board keluaran ST, seperti Nucleo dan Discovery.
Sebenarnya STM32CubeF4 akan diunduh secara otomatis oleh STM32CubeIDE saat proses pembuatan project. Namun karena file yang cukup besar (berkisar 600MB ke atas), maka sebaiknya proses pengunduhan dilakukan secara terpisah, yaitu sebelum membuat project baru pada STM32CubeIDE.
STM32CubeF4 dapat diunduh melalui situs resmi ST di tautan ini. Saat tulisan ini dibuat versi terakhir adalah 1.24.0 pastikan juga telah mengunduh patch file (jika ada) sebagaimana yang tersedia pada situs resmi STMicroelectronics sebagaimana contoh di dalam gambar (unduh kedua versi: V1.24.0 dan V.24.1). Pastikan telah terdaftar dan login di situs ST sebelum mengunduh paket library tersebut.
Setelah selesei mengunduh, ikuti perintah sebagaimana pernah dibahas pada instruksi yang dibahas di artikel berjudul Tips STM32CubeIDE: Mengunduh Library STM32CubeFx Secara Manual
- Membuat Project Baru
Jalankan STM32CubeIDE yang telah terinstal, kemudian buat project baru melalui menu File > New > STM32 Project. Jendela Target Selection sebagaimana gambar 2, akan terbuka, pilih tab Board Selector, ketikkan Nucleo-F446RE
pada field pencarian Part Number Search (Nomer 1 ). Kemudian klik pada tabel hasil pencarian (nomer 2). Setelah itu Klik button Next ( Nomer 3)
Berikutnya, jendela Project Setup terbuka, isi Project Name dengan nama project yang dibuat, misalnya blinky_nucleo-f466re
lalu biarkan semua field yang lain dalam kondisi default. Klik button Next
Pada jendela berikutnya STM32CubeIDE akan menunjukan informasi Firmware Library Package Setup yang merupakan STM32CubeF4 yang sudah diunduh dan diekstrak sebagaimana pada langkah sebelumnya Perhatikan versi dan repository yang diinformasikan pada jendela dialog ini sama dengan yang telah dilakukan pada langkah sebelumnya.
Klik Finish jika semua sudah beres. Kemudian STM32CubeIDE akan menanyakan Initialize All Peripheral with their default Mode? Pertanyaan ini muncul karena tadi programmer telah mengatur menggunakan Development Board Nucleo-F446RE.
Masing – masing development board branded dari ST sudah memiliki konfigurasi default yang terdaftar di repositori ST, sehingga programmer tidak perlu lagi melakukan pengaturan dan inisialisasi periferal di tiap mikrokontroler dari awal. Klik saja Button YES.
STM32CubeIDE akan mulai mengenerate project berdasarkan pengaturan tersebut, sembari membuka prespective baru bernama Device Configuration Tool Prespective.
Kini pada Project Explorer telah terbentuk code sebagaimana pengaturan pada konfigurasi di Device Configuration Tool. Sebagaimana dipetakan pada gambar
Kotak merah Nomer 1 adalah source code hasil generate STM32CubeIDE, sedangkan nomer 2 merupakan panel tempat programmer melakukan konfigurasi dan inisialisasi (sebagaimana yang dimiliki pada STM32CubeMX). Setelah selesei melakukan konfigurasi, programmer dapat mengklik shortcut icon di nomer 3 untuk mengenarate ulang source code berdasarkan konfigurasi yang telah diatur.
Namun dalam artikel kali ini, tidak ada yang perlu dilakukan perubahan, cukup dengan pengaturan default, sehingga panel nomer 2 bisa di-close. Programmer bisa beranjak ke source code di nomer 1 pada file bernama src/main.c
int main(void) { /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MCU Configuration--------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config(); /* USER CODE BEGIN SysInit */ /* USER CODE END SysInit */ /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_USART2_UART_Init(); /* USER CODE BEGIN 2 */ /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5); HAL_Delay(1000); } /* USER CODE END 3 */ }
Program tersebut secara garis besar membuat LED User yang berlokasi pada PA5 berkedip – kedip. Untuk itu programmer perlu menyisipkan dua baris code di baris 105-106. Keduanya menggunakan fungsi HAL pada STM32CubeF4 yaitu fungsi HAL_GPIO_TogglePin
yang merupakan perintah untuk membalik nilai (toggle) dari nilai semula, sedangkan fungsi HAL_Delay
akan memberikan jeda dalam satuan milisekon.
- Build Project
Sebelum melakukan proses build/compile project, pastikan pengaturan berikut telah dilakukan agar hex file dari source code ikut terbentuk.
- Masuk ke properties project, melalui klik kanan pada direktori Project lalu pilih Properties.
- Pada C/C++ Build > Settings pilih tab Tool Settings. Kemudian pada pengaturan MCU Post Build outputs centang pilihan
Convert to binary file (-O ibinary)
danConvert to Intel Hex file (-O ihex)
Untuk memulai proses build, programmer cukup mengklik icon Hammer pada Command Bar STM32CubeIDE, atau dapat juga dengan klik kanan pada direktori project lalu pilih Build Targets > Build
- Flashing/Download
Jika proses build berjalan lancar tanpa error, programmer akan menemukan file hex dan bin subdirektori Debug
atau Release
. Berikutnya programmer dapat mendowload binary tersebut ke dalam Mikrokontroler STM32F446RE menggunakan ST-LINK Utilty
Anda harus log masuk untuk menerbitkan komentar.