• Buradasın

    STM32 GPIO Yapılandırma Eğitimi

    youtube.com/watch?v=WvWSI4tr414

    Yapay zekadan makale özeti

    • Bu video, bir eğitmen tarafından sunulan STM32 mikrodenetleyicilerinde GPIO (General Purpose Input/Output) yapılandırması hakkında kapsamlı bir eğitim dersidir. Eğitmen, öğrencilere (Ahmet gibi) adım adım GPIO yapılandırma tekniklerini göstermektedir.
    • Video, STM32CubeIDE kullanarak Nükleo STM32G711RB serisi mikrodenetleyicisi için yeni bir proje oluşturma sürecinden başlayarak, GPIO kütüphanesinin nasıl ekleneceği, modüllerin nasıl aktif edileceği ve GPIO init işleminin nasıl yapılacağı konularını ele almaktadır. Eğitmen, GPIO pinlerinin giriş/çıkış modlarının nasıl ayarlanacağını, pull-up/pull-down seçeneklerini, pin hızını ve hata ayıklama tekniklerini detaylı olarak göstermektedir.
    • Eğitim içeriğinde ayrıca mikroişlemcinin yapısı, SFR (Special Function Register) penceresi kullanımı, ARM Cortex ve STM32 gibi mikroişlemcilerin mikroişlemci ve mikrodenetleyici kısımlarından oluşması gibi temel bilgiler de verilmektedir. Eğitmen, manuel yapılandırma işleminin önemini vurgulayarak, ilerleyen derslerde ADC, UART, DMA gibi diğer çevre birimlerinin manuel yapılandırmasını da anlatacağını belirtmektedir.
    GPIO Manuel Yapılandırma Giriş
    • Bu derste Hol kütüphanesini kullanarak GPIO yapılandırmasını manuel olarak nasıl yapacağımız anlatılacak.
    • Manuel yapılandırma, STM Kübidenin arka planda nasıl kod ürettiğini anlamamızı sağlayacak ve projemize doğrudan müdahale etme şansımızı artıracak.
    • STM32 Cube IDE'de yeni bir proje açarak Nükleo STM32 G711RB serisi mikrodenetleyicimizi seçiyoruz.
    02:23Proje Ayarları
    • Nükleo kartımızın işlemci koduna göre seçim yapılıyor: STM32G711RBT6, 6128 KB flash ve 36 KB RAM bellek.
    • Clock konfigürasyonunu otomatik olarak yapacak, GPIO konfigürasyonunu ise manuel olarak gerçekleştireceğiz.
    • İlerleyen zamanlarda kod üretimi sürecini kullanmak yerine, tüm kodlamaları kendimiz yapabileceğiz çünkü kod üretimi zaman alıcı ve sıkıcıdır.
    04:05Proje Hazırlığı
    • Mikrodenetleyicimizin framework perspektifinden sistem konu içerisinde serial wire seçiliyor.
    • Clock konfigürasyonunda high speed internal seçili durumda ve işlemci hızı 64 megahertz olarak ayarlanıyor.
    • Projeyi başlatmadan önce workspace içerisindeki diğer projeleri kapatarak sadece aktif proje üzerinde çalışıyoruz.
    06:55GPIO Kütüphanesi Kontrolü
    • GPIO'yu kullanacağımız için, projemize GPIO kütüphanesinin eklenmiş olup olmadığını kontrol etmemiz gerekiyor.
    • GPIO kütüphanesinin hem .c hem de .h dosyalarının projede olduğundan emin olmak önemli.
    • GPIO kütüphanesi, çevre biriminin kütüphane dosyalarının bulunduğu yerdir ve hem başlık dosyası hem de kod dosyası içerir.
    09:51Modül Aktivasyonu
    • GPIO Hole Config h dosyasında modüllerin enable edildiğini veya etkinleştirilmediğini görebiliriz.
    • Enable edilmeyen modüller açıklama satırına dönüştürülmüş olup, ADC, CYC, COMP, CRC, DAC, I2C, I2S gibi modüller aktif hale getirilmemiş.
    • Bir modül eklemek için açıklama satırını kaldırıp, repository'den ilgili .c ve .h dosyalarını getirip projeye kopyalamamız gerekiyor.
    13:03GPIO Init İşlemi
    • GPIO init işlemi, kullanacağımız GPIO portların ve pinlerin başlangıç yapılandırmasının yapıldığı yerdir.
    • GPIO init işlemi sırasında hangi portu kullanacağımız, portun saat aktivasyonu ve pinlerin nasıl tanımlanacağı belirlenir.
    13:42GPIO Kütüphanesi ve Outline Kullanımı
    • GPIO kütüphanesinin başlık dosyası (gpio.h) içinde outline bölümü çok sık kullanılacak bir bölüm olup, proje içerisindeki makro tanımlamaları, veri yapısı tanımlamaları ve fonksiyon tanımlamalarını içerir.
    • Outline bölümünde makro tanımlamaları (# işareti ile başlayanlar), enum (veri yapısı tanımlamaları), ve fonksiyonlar bulunur.
    • GPIO kütüphanesinde STM tarafından hazır olarak yapılmış gpio_init, gpio_read, gpio_writepin, gpio_togglepin, gpio_lockpin gibi fonksiyonlar bulunmaktadır.
    16:56GPIO Yapılandırması
    • MX_GPIO_Init fonksiyonu GPIO portlarını aktif hale getirir ve RCC (Reset and Clock Control) kütüphanesinden clock enable fonksiyonlarını çağırır.
    • GPIO yapılandırması için gpio_init_type_definition veri yapısı kullanılır ve bu yapının içi sıfırlanır.
    • GPIO portlarının pinlerini sıfıra çekmek (resetlemek) için gpio_writepin fonksiyonu kullanılır.
    22:23GPIO Pin Yapılandırması
    • GPIO pin yapılandırması için mod, pin, pull-up/pull-down ve speed gibi parametreler belirlenir.
    • Mod parametresi için GPIO kütüphanesinde tanımlı input, output, analog, interrupt gibi 12 farklı değer seçilebilir.
    • Pin parametresi için GPIO_PIN_0'dan GPIO_PIN_15'e kadar 16 farklı pin seçilebilir.
    27:33Register Değişikliği
    • Yapılan GPIO yapılandırması henüz register üzerinde değişiklik yapmamıştır.
    • Register üzerinde değişiklik yapabilmek için yapılandırılan değerleri registerlara yazacak bir fonksiyona ihtiyaç vardır.
    28:09GPIO Pin Yapılandırması
    • GPIO pin yapılandırması için init fonksiyonu kullanılıyor ve pin yapılandırma yapısı bu fonksiyona ekleniyor.
    • Fonksiyonun başında yıldız işareti olduğu için, değişkenin adresini göstermek için ampersand işareti kullanılıyor.
    • GPIO modu push pull yerine input olarak değiştiriliyor ve pin 13 numaralı pin input olarak ayarlanıyor.
    31:41GPIO Alternatif Yapılandırma
    • GPIO alternatif yapılandırma (alternate) için gerekli dosya GPU içerisinde bulunuyor ve çevre birimlerinde kullanılıyor.
    • Pin yapılandırmasında input olarak ayarlanan pin için alternatif yapılandırma gerekli değil.
    • GPIO pin yapılandırması tamamlandıktan sonra ana fonksiyon içerisinde LED blink ve input okuma işlemleri yapılacak.
    34:41LED Blink İşlemi
    • LED blink işlemi için GPIO toggle pin fonksiyonu kullanılıyor.
    • Toggle pin fonksiyonu, belirtilen pinde bir kez açık bir kez kapalı durumunu değiştiriyor.
    • Program derlendikten sonra run configuration ayarları yapılarak kartın içerisine yükleme gerçekleştiriliyor.
    37:15Input Okuma ve LED Kontrolü
    • GPIO kütüphanesinden readpin fonksiyonu kullanılarak pin durumu okunuyor.
    • Okunan pin durumuna göre LED kontrolü yapılıyor: pin reset ise LED açılıyor, set ise LED kapatılıyor.
    • Başlangıçta pin durumunu öğrenmek için hata ayıklama (debug) yapmak gerekiyor.
    41:03SFR Penceresi ve İşlemci Yapısı
    • SFR (Special Function Register) penceresi, mikroişlemcinin bayrakları ve register'ların durumlarını gösteren bir penceredir.
    • Her işlemci iki parçadan oluşur: mikroişlemci kısmının kesmeleri ve mimarisi ile mikrodenetleyici kısmının çevre birimlerinin entegre olduğu bölümü.
    • ARM Cortex ve STM32 gibi farklı mikroişlemcilerde de bu yapı bulunmaktadır.
    42:32GPIO Register'ları ve Giriş Çıkış İşlemleri
    • GPIO register'larında Type, Speed, Mode, Pull-Up/Pull-Down gibi ayarlar bulunmaktadır.
    • Giriş register'ları (Input Register) ve çıkış register'ları (Output Register) bulunmaktadır.
    • GPIO C13 giriş olarak kullanıldığı için IDR (Input Data Register) okunmaktadır.
    45:58Debug ve GPIO İşlemleri
    • Debug işlemi yapılarak GPIO while döngüsüne giriş yapılmış ve C13 pininin durumu gözlemlenmiştir.
    • Butona basıldığında C13 pininin değeri sıfıra düşmektedir.
    • Reset butonuna basıldığında çıkış (LED) yakmak için kod yazılmış ve butona basıldığında LED yanmaktadır.
    49:25Manuel Yapılandırma ve Öneriler
    • Yapılan yapılandırma manuel ve elle yapılan bir yapılandırmadır ve zaman alsa da kritik bir yapıdır.
    • Her proje bu GPIO yapılandırması üzerine devam edecektir.
    • Deney setup'lerinde farklı pinler ve portlar kullanılabilir, reset veya st çekerek giriş okuma yapılabilir.

    Yanıtı değerlendir

  • Yazeka sinir ağı makaleleri veya videoları özetliyor