STM32CubeMx Arayüze Giriş -Clock Ayarları-İlk Uygulama #2

Bir önceki yazımız içerisinde genel olarak Stm32CubeMx nedir’i konuşmuştuk. Bugün ise Arayüze giriş yapacağız ve giriş yazımızda belirttiğimiz proje aşamalarını gerçekleştirerek ilk uygulamamızı hazırlayacağız. Tahmin edersiniz ki ilk uygulama blink yani led yakıp söndüreceğiz. Çünkü elektroniğin Hello World’ü led kullanımıdır.Uygulamayı hazırlarken kullanacağım kart bu. Ancak sizin elinizde bu karttan olması zorunlu değil. Hatta şu anda çok yaygın olan stm32f103c8t6 kartını temin ederek çalışmalara başlayabilirsiniz. Belirtmekte fayda var eğer bu kartı alırsanız yanında bir adet programlayıcı almanız da gerekmekte. Çünkü üzerinde bulunan USB portu VCP yani Virtual Com Port (Sanal Port) uygulamaları için.İnternet üzerinde o port kullanılarak .hex uzantılı dosyaların yükleme işlemini yapmanız için gerekli bazı kurumlar mevcut ve onları yaptıktan sonra sizde USB üzerinden kodunuzu yükleyebilirsiniz. Ancak bunun yerine bir programlayıcı almak daha doğru bir seçim olabilir. Yaygın olarak kullanılan bir diğer kart STM32F407VG bunu da internet üzerinden temin edebilirsiniz. Bu kartı almanız durumunda herhangi bir programlayıcıya ihtiyaç duymayacaksınız. Kartın üzerinde dahili olarak ST-LINK bulunmakta. Artık uygulamamız geçebiliriz.

Kullanılacak MCU seçimi

Bunun için daha önceden indirdiğimiz CubeMx uygulamızı açıyoruz açılan sayfada “New Project” diyerek MCU seçimi kısmına geliyoruz. Resimde görmüş olduğunuz gibi 2 ana pencere var bunlardan ilk ‘MCU SELECTOR’ digeri ise ‘BOARD SELECTOR’. Eğer siz , Nucleo, Discovery gibi geliştirme kartlarından almışsanız ‘BOARD SELECTOR’ kısmından ilerlemeniz daha faydalı olacaktır.Bugün kullanacağım kart Discovery ailesine ait olduğu için ‘BOARD SELECTOR’ kısmına geçiş yapacağım.

Kartımızın seçimini yaptıktan sonra dilerseniz kırmızı çembere aldığım kısım yardımıyla kart resmi , kart özelliklerini görebilirsiniz. Kullanacağım kartı seçtikten sonra çift tıklayarak uygulamaya giriş yapıyoruz.

Uygulama da 2 farklı pin yapısı çıkabilir, bu kitin kullandığı MCU’nın kılıf yapısıyla alakalı bir durum olduğu için şu yapılar ile karşılabilirsiniz,

 

Uygulamalar üzerinde çalışırken kartınızın user manuel(kullanıcı kitapçığı) dosyasını internet üzerinden bulmanızda fayda var. Bir çok geliştirme kartından olduğu gibi ST firmasının kartları üzerinde de kullanıcı led ve butonu bulunuyor. Eğer farklı bir kart kullanıyorsanız, led ve buton pinlerini, portlarını kullanıcı kitapçığında bulabilirsiniz.

Uygulama arayüzünde ekranın geniş tarafında uygun kılıf yapısına göre pin dizilimleri geliyor.Bir pinin üzerine gelerek tıkladığınızda o pin ile ilgili hangi çevre birimleri , bu çevre birimlerden hangi seriye ait olduğunu görebiliyorsunuz.Kendi kitim üzerinden örnek vermek gerekirse P  portunun 1.pini ile yapabileceğiniz bazı durumları görebilirsiniz.Aynı zamanda bu pin , kit üzerinde bulunan kullanıcı ledini kontrol ediyor.O yüzden bu pini aşağı doğru uzanan listeden GPIO_Output olarak belirliyorum. Belirledikten sonra çember  rengi YEŞİL olacaktır. Eğer belirlediğiniz bir pini kaldırmak istiyorsanız Reset_State seçeneğini seçmeniz gerekmekte.

 

İhtiyacımız olan Çevre Birimlerin Aktif Edilmesi

Bir pini kullabilmemizi için ona ait bus clockunu aktif etmemiz gerekiyor , bunu yapmak için 2 farklı seçeneğimiz var birincisi dahili(internal) kristal ile çalıştırmak ikinicisi kit üzerinde bulunan  harici(external) kristal ile çalıştırmak. Harici bir kristal ile çalıştıracağımız için arayüzün sağ tarafında bulunan parametrelerden RCC penceresi altında HSE(HIGH SPEED CLOCK) seçeneğini CRYSTAL/CERAMİC Resonator olarak belirliyorum. Yine debug araçlarını kullanabilmek için SYS  pencresi altından Debug->Serial Wire olarak belirliyorum.Saat Sinyalimizin  Konfigürasyonu

Bu aşamalardan sonra Arayüzde sağ yukarı tarafta bulunan Clock Configuration sekmesi geçiş yapıyorum. Bu pencere biraz karışık gelebilir ancak bir sonra ki yazıda bu pencere üzerinde bulunan parametreleri anlatacağımız için şimdilik sadece PLL SOURCE MAX kısmından HSE kutucuğunu işaretleyerek devam edebilirsiniz. Eğer burada hata aldıysanız herhangi bir kutucuk kırmızı ile kaplandıysa o kutucuğun alabileceği maxsimum değer üzerinde bir hata yapmışsınız demektir. Fakat endişelenecek bir durum yok , çünkü arayüz tam bir kullanıcı dostu hatanın çözümünü kendisi yapıyor. Örneğin ekranda gözüken HCLK (Mhz) yerine siz 100Mhz  yazarak çalıştırmak istediğinizde arka planda tüm hesaplamaları kendisi yapıyor ve değerleri güncelliyor. Şimdi ise Configuration penceresine geçiş yapalım.

 

Bu pencede bizi ilgilendiren yer GPIO olduğu için üzerine tıklıyoruz. Ve değiştirebileceğimiz çeşitli parametreler karşımıza çıkıyor uygulamayı çalıştırmak için burada herhangi bir değişiklik yapmamıza gerek yok ancak konuya hakim olmanız açısında çıkan parametreleri inceleyebilir ve anlamlandıramadığınız yerleri yazı altında sorabilirsiniz.

 

Projemiz için uygun derleyici seçmek ve yapımızı generate etmek.

Artık kodumuzu import edebiliriz  , bunun için arayüzde sağ üst tarafta bulunan File menüsü yanında ki Project  sekmesine tıklayalım. Tıkladıktan sonra Settings‘e tıklayalım.Bu pencerede Proje ismi , kaydedeceği yer , oluşturacağı dosya yeri ve hangi IDE  üzerinde çalışacağımızı belirleyebiliyoruz. Gerekli ayarlamaları yaptıktan sonra Ok tuşuna basarak burada ki işlemimizi bitiyoruz ve Project sekmesi altında bulunan Generate Code‘ a tıklıyoruz.

Artık çalışacağımız IDE ile proje dosyamızı açıyoruz.Biz şu anda sadece Led yakmak için gerekli asgari özellikleri sağladık , henüz led yakmak için bir komut yazmadık.Şimdi onu yazacağız. main.c dosyamızın içerisine geliyoruz USER CODE BEGIN 3 kısmını buluyoruz.Eğer main.c dosyasını incelerseniz RCC , GPIO gibi ayarların otomatik olarak belirlediğimiz parametreler doğrultusunda çıktı oluşturduğunu görebilirsiniz.Şimdi USER CODE BEGIN 3 ifadesinin olduğu yere ilgili pin çıkışını logic-1’e çekmek için gerekli kod satırımızı yazıyoruz.

HAL_GPIO_WritePin(GPIOI,GPIO_PIN_1,GPIO_PIN_SET);

Yukarda bulunan fonksiyon 3 farklı parametre alıyor bunlar sırasıyla -> port , pin_numarası, ->Çıkışın durumu (logic-1 logic-0).

GPIO ile ilgili HAL fonksiyonları için stm32f7xx_hal_gpio.c altında bulabilirsiniz.Kitinize göre .c dosyasının adı stm32f4xx_hal_gpio.c gibi de olabilir.

Artık kodumuzu derleyip kite yükleyebiliriz. Projeyi ilk defa derleme işlemi yapıyorsanız 4-5 saniye sürebilir. Uygulamamızı kite yükledikten sonra kit üzerinde bulunan RESET butonuna basmayı ihmal etmeyin , bunu manuel yapmak yerine KEIL üzerinde ayar yapabiliyorsunuz OPTIONS FOR TARGET kısmından.

Bir yazımızın daha sonuna geldik, herkese iyi çalışmalar dilerim. Takıldığınız yerleri yazı altında yorum kısmından bizlerle paylaşmayı ihmal etmeyin.

 

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir