STM32H7 serisi, mikrodenetleyici dünyasında bir güç merkezidir. Yüksek performansı ile tanınan bu seri, geliştiriciler arasında en çok tercih edilenler arasındadır.
Bu mikrodenetleyiciler, yarı iletken endüstrisinin lideri olan STMicroelectronics tarafından tasarlanmıştır. Etkileyici işlem hızları ve gelişmiş özellikler sunarlar.
STM32H7 geliştirme kartları, gerçek zamanlı performans ve yüksek hesaplama gücü gerektiren projeler için mükemmeldir. Çok çeşitli uygulamalara hitap ederler.
İster mühendis ister hobi amaçlı kullanıcı olun, STM32H7 kartları ihtiyacınız olan araçları sağlar. Çok yönlüdürler ve çeşitli proje gereksinimlerine uyarlanabilirler.
Bu kılavuzda, STM32H7 serisini ayrıntılı olarak inceleyeceğiz. Özelliklerden programlamaya kadar, başlamak için ihtiyacınız olan her şeyi öğreneceksiniz.
STM32H7 Mikrodenetleyici Serisi nedir?
STM32H7 serisi, yüksek performanslı mikrodenetleyiciler arasında en çok tercih edilen seçeneklerden biri olarak öne çıkıyor. Bu yongalar, etkileyici işlem kapasiteleriyle dikkat çekiyor ve bu da onları zorlu görevler için ideal bir çözüm haline getiriyor.
ARM Cortex-M7 çekirdeği ile çalışan bu yongalar, 480 MHz'e kadar hızlara ulaşabilir. Bu da onları, önemli ölçüde hesaplama gücü ve verimlilik gerektiren uygulamalar için ideal hale getirir.
STM32H7 serisinin temel özellikleri şunlardır:
- 2 MB'a kadar Flash bellek ve 1 MB RA
- Ethernet, USB ve CAN gibi gelişmiş bağlantı seçenekleri
- FreeRTOS ve diğer gerçek zamanlı işletim sistemleri için destek

Bu mikrodenetleyiciler, endüstriyel otomasyon, tüketici elektroniği ve otomotiv sistemleri dahil olmak üzere çeşitli uygulamalara yöneliktir. Sağlam tasarımları, birçok sektörde hayati önem taşıyan uzun vadeli güvenilirliği destekler.
Sağlam güvenlik özelliklerine sahip STM32H7 mikrodenetleyiciler, veri bütünlüğünü ve güvenliğini sağlar. Donanım kriptografisi ve güvenli önyükleme gibi özellikler, bu mikrodenetleyicileri güvenli uygulamalar için uygun hale getirir.
Özetle, STM32H7 serisi çok yönlülük, performans ve güvenilirlik sunar. Verimli ve güvenli gömülü sistemler oluşturmayı hedefleyen geliştiriciler için mükemmel bir seçimdir.
Popüler STM32H7 Geliştirme Kartları
STM32H7 serisi, her biri farklı proje gereksinimlerini karşılayan çeşitli geliştirme kartları sunar. Bu kartlar, farklı boyut ve yapılandırmalarda sunulur; bu da onları çok sayıda uygulama için çok yönlü hale getirir.
STM32H743ZI Çekirdek kartı
Dikkat çeken seçeneklerden biri STM32H743ZI Nucleo kartıdır. Kullanıcı dostu tasarımı ve kapsamlı çevre birimi desteği sayesinde geliştiriciler arasında popülerdir. Bu kart, motor kontrolü ve endüstriyel otomasyon projeleri için idealdir. Arduino ekosistemiyle uyumluluğu, prototip oluşturma konusunda esnekliğini artırmaktadır.

STM32H750B-DK Keşif Kiti
Bir diğer popüler kart ise STM32H750B-DK Discovery kiti. Bu kart, gelişmiş grafik ve dokunmatik arayüz gerektiren uygulamalar için özel olarak tasarlanmıştır. LCD ekrana sahip olması sayesinde insan-makine arayüzü (HMI) uygulamaları için idealdir.

STM32H7S78-DK Keşif Kiti
STM32H7S78-DK Discovery kiti, yüksek performanslı uygulamalar için güçlü bir platform olarak öne çıkmaktadır. Gelişmiş grafik özellikleri ve yüksek çözünürlüklü ekranıyla donatılmış olan bu kit, sofistike kullanıcı arayüzleri ve zengin multimedya deneyimleri geliştirmek için idealdir. Ayrıca sağlam bağlantı seçenekleri ve kapsamlı bir çevre birimleri seti sunan bu kit, hem işlem gücü hem de gelişmiş görsel çıktı gerektiren zorlu gömülü projeler için son derece çok yönlüdür.

STM32H7 ve ESP32: Ayrıntılı Bir Karşılaştırma
Bir mikrodenetleyici seçerken, STM32H7 ile ESP32'yi karşılaştırmak çok önemlidir. Her ikisi de kendine özgü güçlü yönlere sahiptir ve farklı ihtiyaçları karşılar.
STM32H7, olağanüstü işlem gücüyle öne çıkar. 480 MHz'e kadar hız sunarak yoğun hesaplamalar için uygundur. Buna karşılık, ESP32 orta düzeyde işlem gücü sunar ancak Wi-Fi ve Bluetooth'u entegre eder, bu da onu IoT için popüler bir seçim haline getirir.
Geliştiriciler, genellikle kapsamlı çevre birimi ve arayüz desteği nedeniyle STM32H7'yi tercih eder. I2C, SPI ve UART gibi birden fazla iletişim protokolü gerektiren uygulamalar için idealdir. Öte yandan, ESP32 kablosuz bağlantı konusunda öne çıkar. Sağlam Wi-Fi ve
Bluetooth özellikleri, akıllı cihazlar ve ev otomasyonu için uygundur.
İşte özelliklerin hızlı bir karşılaştırması:
STM32H7
CPU: Arm Cortex-M7 (Single or Dual Core, up to 600 MHz)
RAM: Up to 1.4 MB SRAM, plus other RAM
Flash Memory: Up to 2 MB embedded Flash
Connectivity: Ethernet, USB, SPI, I2C, UART, CAN, etc.
Peripherals: ADC, DAC, Timers, PWM, RNG, LCD Controller, etc.
Power Consumption: As low as 32 µA in Stop mode, total current consumption as low as 4µA
Main Applications: High-performance industrial control, graphical interfaces, real-time processing, complex embedded systems
Ecosystem: Extensive STM32 ecosystem, including STM32CubeMX, HAL libraries, etc.
Price: Typically higher
ESP32
CPU: Xtensa LX6 Dual-Core (up to 240 MHz)
RAM: 520 KB SRAM
Flash Memory: 448 KB ROM (built-in), external Flash expandable
Connectivity: Wi-Fi (802.11 b/g/n), Bluetooth (v4.2 BR/EDR & BLE), SPI, I2S, I2C, UART, SD/SDIO, etc.
Peripherals: ADC, DAC, Touch Sensors, PWM, IR Remote, Pulse Counter, etc.
Power Consumption: Deep sleep current 5 µA
Main Applications: Internet of Things (IoT), wireless communication, smart home, low-power applications
Ecosystem: ESP-IDF, Arduino IDE, MicroPython, etc.
Price: Typically lower
Summary:
The **STM32H7** series are high-performance microcontrollers designed for applications requiring significant processing power, rich peripherals, and real-time capabilities, such as advanced industrial control, graphical user interfaces, and complex embedded systems. They generally feature more memory and higher clock frequencies.
The **ESP32** series, on the other hand, is a microcontroller with integrated Wi-Fi and Bluetooth, making it ideal for Internet of Things (IoT) applications, wireless communication, and scenarios requiring low-power connectivity. Its strengths lie in its wireless connectivity features and more accessible price point.
The choice between these microcontrollers depends on your specific project needs, including performance requirements, power budget, connectivity demands, and cost considerations.
STM32H7 Programlamaya Başlangıç
STM32H7 programlamasına giriş yapmak hem heyecan verici hem de tatmin edici olabilir. Bu seri, yüksek işlem gücü sunarak karmaşık uygulamalar için en çok tercih edilen seçeneklerden biri haline gelmiştir. Bu mikrodenetleyicilerin programlanma şeklini anlamak, onların tam potansiyelinden yararlanmak için hayati önem taşır.
STM32CubeIDE, STM32H7 programlama için birincil geliştirme ortamıdır. Uygulamaların kodlanması, hata ayıklanması ve dağıtımı için entegre bir araç seti sunar. Bu IDE, C ve C++ dahil olmak üzere birçok programlama dilini destekler ve çeşitli geliştirici tercihlerine hitap eder.
STM32H7, FreeRTOS dahil olmak üzere çeşitli gerçek zamanlı işletim sistemlerini (RTOS) destekler. Bir RTOS, geliştiricilerin gerçek zamanlı sistemler için hayati önem taşıyan hassas kontrol zamanlamasına sahip uygulamalar oluşturmasına olanak tanır. Bir RTOS'u entegre etmek, STM32H7 projelerinizin performansını önemli ölçüde artırabilir.
Başlamak için şu adımları izleyin:
- STM32CubeIDE'yi yükleyin: IDE'yi indirin ve kurun.
- Araç zincirini kurun: Derleyicileri ve gerekli eklentileri yapılandırın.
- Temel Bilgileri Öğrenin: STM32CubeIDE arayüzünü ve özelliklerini keşfedin.
- Örnek Projeler: İş akışını anlamak için sağlanan şablonlarla başlayın.
- Kütüphaneleri keşfedin: Orta katman yazılımı ve çevresel kütüphaneleri kullanın.
Programlama Örneği - LED'i Yanıp Sönmek
Bu kılavuzda, bir LED'i yanıp sönmesi için temel bir projeyi nasıl kuracağınızı öğreneceksiniz. Gömülü sistem programlamasının bu temel "Hello World" örneği, size GPIO (Genel Amaçlı Giriş/Çıkış) kontrolünü, STM32CubeIDE geliştirme ortamını ve STM32H7 kartınızı yapılandırma, kodlama, derleme ve programlamanın temel adımlarını tanıtacaktır.
Bu kılavuzun sonunda, geliştirme kartınızdaki bir LED'i başarıyla yanıp sönmeye başlatmış olacak ve daha karmaşık projeler için sağlam bir temel atmış olacaksınız.
Donanım Gereksinimleri
Başlamadan önce, aşağıdaki donanımların hazır olduğundan emin olun:
- STM32H7 Geliştirme Kartı:
- Herhangi bir STM32H7 Discovery Kiti (ör. STM32H750B-DK, STM32H7S78-DK)
- Veya bir STM32H7 Nucleo Kartı (ör. STM32H743ZI Nucleo)
- (Bu kartların çoğunda, genellikle PC13, PB0, PB1 veya PE1 gibi bir GPIO pinine bağlı, en az bir adet kullanıcı tarafından programlanabilir LED bulunur)
- USB Tip-A – Mikro-B/Tip-C Kablosu: Kartı çalıştırmak ve programlama/hata ayıklama için bilgisayarınıza bağlamak için.
- Kişisel Bilgisayar: Windows, macOS veya Linux işletim sistemine sahip.
Yazılım Gereksinimleri
Bilgisayarınızda aşağıdaki yazılımların yüklü olması gerekir:
- STM32CubeIDE: Bu, GCC derleyicisi, hata ayıklayıcı ve STM32CubeMX grafik yapılandırma aracını içeren STMicroelectronics'in resmi Entegre Geliştirme Ortamıdır. Ücretsizdir ve şiddetle tavsiye edilir.
- İndirme adresi: https://www.st.com/en/development-tools/stm32cubeide.html
Adım Adım Kılavuz
1. Bölüm: STM32CubeIDE Proje Kurulumu
STM32CubeIDE'yi başlatın: Uygulamayı açın. İlk kez kullanıyorsanız, çalışma alanı konumu sorulabilir. Uygun bir dizin seçin.

- Yeni bir STM32 Projesi Oluştur:
Şuraya gidin File > New > STM32 Project.

Sistem STM32 hedef seçicisini başlattıktan sonra, "Hedef Seçimi" penceresinde tam olarak hangi STM32H7 mikrodenetleyicisini kullanacağınızı belirtebilirsiniz.

"Parça Numarası" arama çubuğunu kullanabilirsiniz. Örneğin:
- STM32H743ZI Nucleo'nuz varsa, şunu yazın
STM32H743ZI. - STM32H750B-DK'niz varsa, şunu yazın
STM32H750VB. - STM32H7S78-DK'niz varsa, şunu yazın
STM32H7S78.
- STM32H743ZI Nucleo'nuz varsa, şunu yazın
Listeden cihazınızı seçin ve tıklayın Next.

- Proje Adı ve Ayarları:
- Proje Adı: Açıklayıcı bir ad girin, örneğin,
H7_LED_Blink. - Hedeflenen Proje Türü:
Empty. - Tıklayın
Finish. - Tüm çevre birimlerini varsayılan modda başlatmanız istenirse,
Yes'e tıklayın. Bu, STM32CubeMX yapılandırma arayüzünü açacaktır.
- Proje Adı: Açıklayıcı bir ad girin, örneğin,

2. Bölüm: STM32CubeMX Yapılandırması (STM32CubeIDE içinde)
Proje oluşturulduktan sonra, .ioc dosyası (STM32CubeMX yapılandırma dosyası) açılacaktır. Mikrodenetleyicinizi grafiksel olarak yapılandıracağınız yer burasıdır.
Pin Çıkışı ve Yapılandırma:
LED Pini Belirleme: Geliştirme kartınızın kullanım kılavuzuna bakarak, kart üzerindeki kullanıcı LED'inin hangi GPIO pinine bağlı olduğunu bulun. Yaygın pinler arasında
PC13(Nucleo-144 kartları için),PB0,PB1veyaPE1.GPIO Pini Yapılandırma:
Çip şemasında veya "Pin Çıkışı Görünümü"nde (ör.
PC13).Pine sol tıklayın ve
GPIO_Outputseçin. Pin yeşile dönerek çıkış olarak yapılandırıldığını gösterir.İsteğe bağlı – Kullanıcı Etiketi: Pimlerinizi etiketlemek iyi bir uygulamadır. Pime sağ tıklayıp
Enter User Labelseçebilirsiniz.Onboard_LED(veya benzer açıklayıcı bir ad) yazın.

- GPIO Ayarlarını Yapılandırın:
- "Pinout & Configuration" sekmesinde,
System Core > GPIO. - Yapılandırdığınız LED pinine karşılık gelen satırı bulun (örneğin,
PC13). - "GPIO çıkış seviyesi" sütununda, bunu
Low. (LED'in KAPALI olarak başlamasını istiyoruz). - "GPIO mode" seçeneğinin
Output Push Pull. - Bu temel örnek için diğer ayarları (Pull-up/Pull-down, Maksimum çıkış hızı) varsayılan olarak bırakın.
- "Pinout & Configuration" sekmesinde,
- GPIO Ayarlarını Yapılandırın:

- Sistem Çekirdeği -> SYS Yapılandırması:
- "Pin Çıkışı ve Yapılandırma" sekmesinde,
System Core > SYS. - "Yapılandırma" altında,
DebugseçeneğiniSerial Wire. Bu, hata ayıklama ve yazma işlemleri için çok önemlidir.
- "Pin Çıkışı ve Yapılandırma" sekmesinde,
- Saat Ayarları:
- Şu sekmeye gidin
Clock Configurationsekmesine gidin. - Basit bir LED yanıp sönmesi için, CubeIDE tarafından oluşturulan varsayılan saat ayarları genellikle yeterlidir. Çok özel saat hızlarına ihtiyaç duymadığınız sürece, burada genellikle herhangi bir değişiklik yapmanız gerekmez.
- Şu sekmeye gidin
- Proje Yöneticisi ve Kod Oluşturma:
- Şu
Project Managersekmesine gidin. - Doğrulayın
Project NameveToolchain/IDE(şu şekilde olmalıdırSTM32CubeIDE). - Kod Oluştur:
Generate Codedüğmesine tıklayın (dişli simgesi veyaProject > Generate Code). - Değişiklikleri kaydetmeniz istenirse,
Yes. - Bu işlem, CubeMX yapılandırmanıza göre projeniz için gerekli tüm başlatma kodunu oluşturacaktır.
- Şu

3. Bölüm: Kod Uygulaması
Temel proje yapısı ve çevre birimi ayarları tamamlandığına göre, şimdi asıl yanıp sönme mantığını yazacağız.
main.c'e gidin:Proje Gezgini panelinde (STM32CubeIDE'nin sol tarafında), şuraya gidin:
H7_LED_Blink(proje adınız)> Core > Src > main.cÇift tıklayın
main.cdubble tıklayın.
while(1)Döngüsünü bulun:Aşağı kaydırın
main.caşağı kaydırın/* USER CODE BEGIN 3 */ve/* USER CODE END 3 */içindekiwhile(1). Uygulama kodunuzu buraya ekleyeceksiniz.
Yanıp Sönme Mantığını Ekleyin:
döngü
while(1)içine aşağıdaki iki satır kodu ekleyin:
/* USER CODE BEGIN 3 */
HAL_GPIO_TogglePin(Onboard_LED_GPIO_Port, Onboard_LED_Pin); // Toggle the LED state
HAL_Delay(500); // Wait for 500 milliseconds (0.5 seconds)
/* USER CODE END 3 */
Kod açıklaması:
HAL_GPIO_TogglePin(): Bu, STM32Cube HAL (Donanım Soyutlama Katmanı) kütüphanesinden bir işlevdir. Belirtilen GPIO pininin durumunu yüksekten düşüğe veya düşükten yükseğe değiştirir.Onboard_LED_GPIO_Port: Bu, CubeMX tarafından otomatik olarak oluşturulan ve GPIO bağlantı noktasını temsil eden bir makrodur (örneğin,GPIOCLED'iniz PC13'teyse).Onboard_LED_Pin: Bu, CubeMX tarafından otomatik olarak oluşturulan ve belirli pin numarasını temsil eden bir makrodur (örneğin,GPIO_PIN_13LED'iniz PC13'teyse).
HAL_Delay(500): Bu HAL işlevi, belirtilen milisaniye sayısı kadar bir engelleme gecikmesi oluşturur. Burada, yürütmeyi 500 ms (yarım saniye) süreyle duraklatır.
4. Bölüm: Derleme, Yazma ve Doğrulama
Son olarak, kodunuzu derleyelim, kartınıza yükleyelim ve LED'in yanıp sönmesini izleyelim!
Kartınızı Bağlayın:
USB kablonuzun bir ucunu STM32H7 geliştirme kartınızdaki uygun USB bağlantı noktasına takın (genellikle "USB ST-LINK" veya "USB USER" olarak etiketlenmiştir).
Diğer ucunu bilgisayarınızdaki bir USB bağlantı noktasına takın. Bilgisayarınız kartı tanımalıdır.
Projeyi Derleyin:
Şuraya gidin
Project > Build Projectadresine gidin veya araç çubuğundaki çekiç simgesine tıklayın."Konsol" görünümünde herhangi bir hata veya uyarı olup olmadığını kontrol edin. Derleme başarılı olursa "Derleme Tamamlandı" mesajı görüntülenir ve hata olmadığı belirtilir.
Programı Kartta Yükleyin:
Şuraya gidin
Run > Debugadresine gidin veya Hata Ayıklama simgesine (yeşil böcek) tıklayın.STM32CubeIDE, hata ayıklama ayarlarını (ST-LINK) otomatik olarak yapılandıracaktır.
"
OKveyaSwitch'e tıklayın.Program derlenecek (henüz derlenmemişse), STM32H7 kartınızın flash belleğine indirilecek ve hata ayıklayıcı başlayacaktır.
LED'in yanıp sönmesini gözlemleyin:
Yanıp sönme işlemi tamamlandığında ve program çalışmaya başladığında, STM32H7 geliştirme kartınızdaki kullanıcı LED'inin yarım saniye aralıklarla yanıp sönmeye başladığını görmelisiniz.
Hata ayıklamadan çıkın:
Hata ayıklayıcıyı durdurmak ve programın serbestçe çalışmasını sağlamak için, Hata Ayıklama perspektifindeki kırmızı kare "Sonlandır" düğmesine tıklayın, ardından "Çalıştır" (yeşil oynat) düğmesine tıklayın. Alternatif olarak, USB kablosunu çıkarın ve yeniden takın (program zaten flash bellekte bulunmaktadır).
C/C++ perspektifine geri dönmek için,
Window > Perspective > Open Perspective > C/C++.
5. Bölüm: Sonuç ve Sonraki Adımlar
Tebrikler! İlk STM32H7 gömülü programlama projenizi başarıyla tamamladınız. Şunları öğrendiniz:
STM32CubeIDE'de yeni bir proje oluşturmak.
STM32CubeMX kullanarak GPIO pinlerini yapılandırmak.
HAL işlevlerini kullanarak temel C kodu yazmak.
Programınızı derlemek, flashlamak ve STM32H7 kartında çalıştırmak.
Sonraki Adımlar:
Delay ile deneme yapın:
HAL_Delay()değerini değiştirerek LED'in daha hızlı veya daha yavaş yanıp sönmesini sağlayın.Birden Fazla LED'i Kontrol Etme: Başka bir GPIO pinini çıkış olarak yapılandırın ve birden fazla LED'in aynı anda veya sırayla yanıp sönmesini sağlayın.
Düğme Girişi: Bir GPIO pinini giriş olarak yapılandırarak kullanıcı düğmesinin durumunu okuyun ve düğmeye basılmalarına göre LED'i kontrol edin.
Daha Fazla Aygıt Keşfedin: Seri iletişim için UART, hassas zamanlama için Zamanlayıcılar veya analog okumalar için ADC kullanmayı inceleyin.
STM32H7 programlama, STMicroelectronics tarafından sağlanan kapsamlı kütüphaneler ve ara yazılımdan yararlanır. Bu kaynaklar, uygulamalarınıza karmaşık işlevler ekleme sürecini kolaylaştırır. Güçlü topluluk desteği ve ayrıntılı belgeler sayesinde, STM32H7 programlamaya başlamak sorunsuz ve kolaydır.
STM32H7 Geliştirme için Temel Araçlar ve Yazılımlar
STM32H7 geliştirme çalışmalarına başlamak için bir dizi temel araç ve yazılıma ihtiyaç vardır. Bu kaynaklar, verimli bir iş akışı ve kapsamlı bir proje yönetimi sağlar. Doğru araçların seçilmesi, geliştirme sürecini büyük ölçüde kolaylaştırır.
İlk adım, uyumlu bir Entegre Geliştirme Ortamı (IDE) seçmektir. STM32CubeIDE, STM32H7 programlama için idealdir. Birden fazla işlevi entegre ederek tek bir platformda kodlama, derleme ve hata ayıklama yetenekleri sunar. Bu kolaylık, geliştiriciler için eşsizdir.
STM32CubeIDE'ye ek olarak, STM32CubeMX'i kullanmayı da düşünün. Bu grafik araç, mikrodenetleyici ayarlarının yapılandırılmasını basitleştirir. Aksesuarların ve pin yapılandırmalarının kolay yönetilmesini sağlayarak projenizin kurulum aşamasını kolaylaştırır.
STM32H7 geliştirme için gerekli araçların listesi şöyledir:
- STM32CubeIDE: Kapsamlı geliştirme ortamı.
- STM32CubeMX: Çevre birimlerinin yapılandırmasını basitleştirir.
- Hata Ayıklama/Programlama Araçları: Yonga üzerinde hata ayıklama için ST-LINK/V2.
- Kütüphaneler ve Orta Katman Yazılımı: Uygulama işlevselliğini geliştirir.
ST-LINK/V2, devre içi hata ayıklama ve programlama için hayati öneme sahiptir. Bu araç, geliştiricilerin STM32H7 geliştirme kartlarını bilgisayarlara sorunsuz bir şekilde bağlamalarını sağlayarak, sorun giderme sürecinde ayrıntılı bilgi ve kontrol imkanı sunar. Bu araçları kullanmak, STM32H7 geliştirme çalışmalarınızın hem verimli hem de keyifli geçmesini sağlar.
Sonuç
STM32H7 serisi, benzersiz bir performans ve çok yönlülük sunar. Güçlü işlem gücü ve hassas kontrol gerektiren projeler için sağlam bir tercihtir. Geniş özellik yelpazesiyle çeşitli sektörlere ve uygulamalara hitap eder.
STM32H7'yi seçmeden önce, projenizin özel gereksinimlerini değerlendirin. İşlem hızı, bağlantı ve bütçe gibi faktörleri göz önünde bulundurun. Yüksek performans ve gelişmiş özellikler öncelikliyse, STM32H7 ihtiyaçlarınızı karşılamak için muhtemelen çok uygundur.




