Memprogram STM32 Nucleo dengan STM32CubeIDE Bagian 1: GPIO Input Output dan Blink

Mungkin para pembaca sebelumnya sudah familiar dengan Atmega mikrokontroler, itu tuh yang sering dipake di arduino. Kalian mungkin menyadari ternyata ada beberapa kekurangan atau limitasi yang arduino bisa lakukan seperti di kecepatan sampling ADC yang rendah, frekuensi PWM rendah, enggak adanya fitur DAC (kecuali arduino Due) dan Floating Point Unit (FPU) sehingga mencari MCU yang lebih powerfull dan salahsatunya adalah STM32 Microcontroller.

STM32 merupakan mikrokontroller 32-bit yang didesign oleh STMicroelectronic berdasarkan arsitektur ARM Cortex. Jadi, perusahaan STMicroelectronic ini membeli lisensi design ARM Processor dari ARM Holdings yang kemudian didesign ulang (costum design) oleh STMicroelectronic, untuk lebih jelasnya bisa dilihat di wikipedia atau di website STM32.

Sekarang menuju tujuan utama, yaitu mengendalikan GPIO (General Purpose Input Output) STM32. Penulis disini menggunakan STM32 Nucleo-64 development board, NUCLEO-F446RE yang menggunakan MCU STM32F446RE, tampilan devboard seperti gambar dibawah :

Sedangkan dibawah merupakan gambar pinout dari sisi kanan arduino header

Untuk memprogram mikrokontroller ini penulis menggunakan STM32CubeIDE, software ini bisa didownload disitus resmi disini, kemudian pilih sesuai dengan sistem operasi yang digunakan. Ketika hendak mendownload, kita diharuskan mengisi nama dan email karena link downloadnya akan dikirim lewat email.

Pertama, buat projek baru dengan cara klik File->New->STM32 Project

Pilih tab board selector, cari board yang digunakan lalu klik next seperti gambar dibawah

Pilih nama project, disini penulis memilih nama GPIO, lalu klik Finish

Jika muncul tulisan seperti dibawah pilih Yes. Artinya kita akan menggunakan pengaturan bawaan Nucleo board

Dibawah meru[akan gambar pinout dari STM32, jika dilihat seksama pada pin PA5 atau D13 terhubung sebuah LED, dan pada PC13 terhubung sebuah push button yang berwarna biru, bisi dilihat di board.

Untuk menambahkan input atau output caranya mudah, tinggal klik pada pin yang diinginkan lalu pilih GPIO_Input atau GPIO_Output, disini penulis memilih pin PA8 atau D7 sebagai output seperti gambar dibawah

Setelah selesai, kita harus men-generate code dengan konfigurasi yang telah dibuat dengan mengklik icon gerigi seperti gambar dibawah

Lalu buka file utama tempat menulis program yang bernama main.c, file ini berada pada Project Explorer, GPIO->Core->Src lalu klik 2x file main.c, seperti gambar dbawah ini

Kemudian akan tampil baris program yang di generate tadi.

Sekarang tujuan kita adalah menyalakan LED bawaan Board STM32 yang terhubung ke pin PA5 atau D13, dengan menabahkan kode dibawah pada while super loop

Jika di breakdown lebih dalam GPIOA adalah channel dari pin yang digunakan dan GPIO_PIN_5 adalah nomor pin yang digunakan, sedangkan GPIO_PIN_SET memberikan logika HIGH, GPIO_PIN_SET bisa diganti dengan angka 1, kebalikannya adalah GPIO_PIN_RESET yang memberikan logika LOW, GPIO_PIN_RESET bisa diganti dengan angka 0.

Sekarang kita mencoba menyalakan dan mematikan LED dalam rentang waktu tertentu, atau yang sering disebut program blink. Caranya sama namun dengan tambahan fungsi delay, dapat dilihat sebagai berikut

atau bisa juga menggunakan fungsi TogglePin

Fungsi TogglePin adalah membalik state atau kondisi terakhir dari pin, misal jika pin dalam keadaan SET/HIGH, kemudian fungsi TogglePin dieksekusi akan diganti jadi menjadi RESET/LOW.

Sekarang beralih ke input, kita akan mencoba membaca kondisi dari pin PC13 yang terhubung ke sebuah push button.

Pada STM32 Nucleo, hubungan PC13 dan push button memiliki konfigurasi active low, dimana dalam keadaan push button open (tidak ditekan) pin PC13 menerima sinyal HIGH/1, sedangkan ketika push button close (ditekan) pin PC13 menerima sinyal LOW/0. Untuk rangkaian dari push button dan PC13 dapat dilihat pada gambar dibawah

Terlihat bahwa ketika keadaan semula pin PC13 terhubung ke VDD, sedangkan ketika B1 (Push button) ditekan maka pin PC13 terhubung ke Ground.

Sekarang kita akan mencoba menyalakan LED ketika Push Button ditekan, berikut adalah code nya

Untuk membaca keadaan pin GPIO dapat menggunakan fungsi HAL_GPIO_ReadPin(GPIOx, GPIO_PIN_y)

Sekian pembahasan mengenai GPIO, di tulisan selanjutnya penulis akan membahas topik STM32 lainnya seperti TIMER, ADC, DMA dan lainnya.

6 thoughts on “Memprogram STM32 Nucleo dengan STM32CubeIDE Bagian 1: GPIO Input Output dan Blink

  • 22/04/2021 at 08:56
    Permalink

    I have to show my gratitude for your generosity giving support to all those that should have assistance with this one situation. Your special dedication to passing the message all around came to be pretty invaluable and has truly enabled guys and women much like me to realize their desired goals. This informative tutorial means much to me and somewhat more to my office workers. Thanks a lot; from everyone of us.

    Reply
  • 23/10/2023 at 07:59
    Permalink

    Anaheim, a bustling burgh nestled in the marrow of Orange County, California, is not upright eminent for its world-famous Disneyland Fall back on, but also suited for its divergent communities and loquacious urban landscape. This inconsistency and range are mirrored in its postal technique, with the see being segmented into multiple ZIP codes. Here’s a direct look into Anaheim’s ZIP codes:

    Mean of Multiple ZIP Codes:

    Chiefly cities like Anaheim many times receive multiple ZIP codes to streamline the letters transportation process. Each ZIP encode corresponds to a restricted characteristic of область or neighborhood, ensuring that post and packages are sorted and delivered efficiently.
    ZIP Jus civile ‘civil law’ Range:

    Anaheim boasts a distribute of ZIP codes, starting from the 90620s and successful up to the 92899. This inclusive array of ZIP codes reflects the bishopric’s titanic area and the miscellaneous communities it houses.
    ZIP Code Maps:

    In place of those who are more visually keen, Anaheim ZIP criterion criteria maps are available. These maps minister to a jump over visual declaration of the burg segmented by its postal codes. It’s a handy tool in behalf of businesses, palpable estate professionals, and unvarying residents looking to understand the conurbation’s layout in terms of postal regions.
    Trade and Demographic Variations:

    Weird ZIP codes in Anaheim potency bear diverse monetary and demographic profiles. For exemplification, the ZIP criterion criteria 92805 puissance keep a different demographic makeup compared to 92804. Businesses in many cases have recourse to this data to save targeted marketing and amenities delivery.
    Utility Beyond Mail:

    While the primeval purpose of ZIP codes is post sorting and parturition, they also make light of a decisive role in urban planning, emergency services, and civic administration. For precedent, school districts and voting zones puissance be resolved based on ZIP structure boundaries.
    In conclusion, Anaheim’s ZIP codes are more than just numerical labels as a remedy for mail delivery. They offer insights into the metropolis’s system, demographics, and excrescence patterns. Whether you’re a citizen, a work owner, or a company, armistice these ZIP codes can provide a clearer carbon copy of this vibrant Californian city.
    More details: https://bitinsight.online

    Reply
  • 10/11/2023 at 16:03
    Permalink

    James Jernigan’s YouTube channel provides a unique opportunity to explore the dynamic world of artificial intelligence. With each video, he uncovers AI’s hidden gems, offering viewers a profound understanding of the latest AI developments. If you’re passionate about AI and want to stay informed, his channel is an essential resource.

    Reply
  • 22/01/2024 at 17:41
    Permalink

    Hello, yes this article is really pleasant and I have learned lot of things from it on the topic of blogging.
    thanks.

    Reply
  • 01/02/2024 at 20:26
    Permalink

    Hi there are using WordPress for your blog platform? I’m new
    to the blog world but I’m trying to get started and set up my own. Do you need any html coding expertise to make your own blog?
    Any help would be greatly appreciated!

    Reply
  • 16/02/2024 at 02:53
    Permalink

    Cialis Dosage
    It is a pity, that now I can not express – it is very occupied. I will be released – I will necessarily express the opinion on this question.
    Cialis 5 mg prezzo cialis prezzo cialis 5 mg prezzo

    Reply

Leave a Reply

Your email address will not be published.