Merhaba,
Bu yazımızda ilk projemize hızlı bir giriş yapıyoruz. Programlama öğrenirken yazdığınız ilk programı hatırlar mısınız? Çıkış konsoluna “Hello World” yazarak başladınız değil mi? Elimizdeki mikroişlemciye bir çeşit bilgisayar gözüyle baktığımızda, bilgisayar üzerinde yaptığınız ilk uygulamalarda olduğu gibi, giriş-çıkış metotlarından başlamak mikroişlemci dünyasına “Merhaba!” (LED Blink) demekle eş değerdir. Aldığımız mikroişlemci kitini kabaca incelediğinizde belirli sayıda pinleri olduğunu göreceksiniz. Pin sayısı kullandığınız mikroişlemciden bir diğerine değişiklik gösterecektir. Önceki yazımızda Nucleo tipi STM32 geliştirme kartlarından kısaca bahsetmiştik. Bu kartların kısa bir Google araştırması yapıp dokümanlarını incelediğinizde “Nucleo-32”, “Nucleo-64”, “Nucleo-144” gibi ifadelere rastlayacaksınız. İşte buradaki 32,64 ve 144 mikroişlemciye ait pin sayısını belirtmektedir. Yapacağınız uygulamalarda mutlaka ne kadar pine ya da çevresel birime (UART, ADC, DAC, Timer) ihtiyacınız olduğunu önceden belirlemeniz önemli bir adım olacaktır.
Yakın dostumuz google’a kullandığımız mikroişlemcinin adını yazarak (Örneğin STM32F767ZI Nucleo, ya da datasheet için STM32F767ZI Nucleo Reference Manual) pinlerin yerleşimi ve bağlı oldukları portları (Örneğin A potu) görebilirsiniz. Pin demek yerine bu noktadan sonra, GPIO olarak ifade etmemizin bir sakıncası olmayacaktır. GPIO yani “General Purpose Input Output”, giriş-çıkış pinlerinize verilen teknik bir isimdir. Peki neden genel amaçlı? Çünkü daha önce de değindiğimiz gibi kullandığınız bir pin birden fazla fonksiyona sahip olabilir. Siz aktifleştirdiğiniz sürece ADC, PWM vb. fonksiyonlarla çalışabilir. Tabi aynı anda hepsiyle değil!
Şimdi elinizde bulunan geliştirme kitini biraz yakından incelemeye çalışalım. Örneğin STM32F767ZI ile giriş-çıkış uygulaması yapacaksınız. İlk adımımız yakın dostumuza danışıp kite ait bilgi dokümanına erişmek.
![](https://i1.wp.com/karamelek.tech/wp-content/uploads/site1.png?w=696&ssl=1)
İlk uygulamamızda bir pini kontrol etmeyi planlıyoruz. Dilerseniz seçtiğiniz herhangi bir pine LED bağlayabilir, ya da kartın üzerinde bulunan kullanıcı LED’lerini kullanabilirsiniz. Kullanıcı LED’ lerine ait bilgiye ulaşabilmeniz için henüz edinmiş olduğunuz dokümanın “LEDs” başlığına göz atabilirsiniz. STM32F767ZI için kullanıcı LED’ lerinin üç adet G,B,R olduğunu ve sırasıyla PA5, PB7 ve PB14 olarak tanımlandığını görmekteyiz.
![](https://i2.wp.com/karamelek.tech/wp-content/uploads/site1-1.png?w=696&ssl=1)
Yapacağımız uygulama için kısaca bu basit problemi toparlayalım. Bir adet pinin (GPIO) durumunu kontrol etmeyi amaçlıyoruz. Yazacağımız programın çalıştığını görmek adına kontrol etmek istediğimiz pini kullanıcı LED’ lerinden birine bağlı olacak şekilde belirliyoruz (Örneğin PB14). Bu aşamadan sonra CubeMX üzerinden gerekli konfigürasyonları yapıp, konfigürasyonların C kodunu üretip, Keil üzerinde amacımıza yönelik düzenlemeler yapacağız. Bir sonraki yazımızda doğrudan uygulamaya başlamak üzere hoşça kalın.