- Nucleo64 Kartları için Gerekli Geliştirme Platformlarını Seçme ve İndirme
- Devre Şeması ve Donanım kurulumu
- STM32 Nucleo64 Geliştirme Kartları için STM32CubeMX'e başlarken
- TrueSTUDIO kullanarak STM32 Nucleo64 Geliştirme Kartını Programlama
- STM32 Nucleo64 Programı, Düğmeyi Kullanarak LED'i Kontrol Etmek
- TrueSTUDIO kullanarak STM32 Necleo64 Geliştirme Kartında Hata Ayıklama ve Kod Yükleme
Birçoğumuz Arduino, Raspberry Pi, ESP8266, NoduMCU, 8051 gibi popüler mikrodenetleyiciler ve geliştirme kartlarına aşina olmalıyız. Aslında çoğu insan için Arduino ilk geliştirme kartı olacaktı, ancak derinlere inip başladığımızda profesyonel tasarımlar, yakında Arduino'nun sınırlamalarını (maliyet, çok yönlülük, kararlılık, hız vb.) anlayacağız ve PIC, STM, Renesas gibi daha yerel bir Mikroişlemci platformuna geçme ihtiyacını anlayacağız.
Yeni başlayanlara PIC mikrodenetleyicilerini öğrenmek için rehberlik eden bir dizi PIC Mikroişlemci öğreticisini zaten ele aldık. Benzer şekilde, bu makaleden başlayarak, yeni başlayanların STM32 Platformunu kullanarak öğrenmelerine ve geliştirmelerine yardımcı olabilecek bir dizi STM32 Nucleo64 Geliştirme Kurulu Eğitimleri planlayacağız. Nucleo64 Geliştirme Kartları, profesyonel geliştiriciler ve amatörler için düşük maliyetli ve kullanımı kolay bir platformdur. STM32 Nucleo64 Geliştirme Kurullarında tamamen yeniyseniz, ilerlemeden önce bu panonun temellerini anlamak için bu Nucleo64 İnceleme videosuna göz atın. Videoda ayrıca STM32'nin ARM Mbed Platformu kullanılarak nasıl programlanacağı da gösteriliyor ancak bu eğitim için, ST Microelectronics'ten TrueSTUDIO adlı başka bir ücretsiz kullanım platformu kullanacağız.
Not: STM32 Nucleo64 Geliştirme Kartlarının birçok sürümü vardır, bu eğitimde kullanılan özel kart NUCLEO-F030R8'dir. Bu kartı düşük maliyeti nedeniyle seçtik. Farklı bir sürümünüz olsa bile, eğitimde tartışılan çoğu şey başlamanız için yeterli olacaktır.
Nucleo64 Kartları için Gerekli Geliştirme Platformlarını Seçme ve İndirme
Herhangi bir mikrodenetleyiciye başlamak, Arduino panoları için Arduino IDE, AVR mikrodenetleyici için Atmel Studio, PIC için MP Lab vb. Gibi bir programlama IDE'sine ihtiyaç duyacaktır. Bu yüzden burada programlama ve hata ayıklama gerçekleştirmek için STM32 Nucleo64 Kartlarımız için bir IDE'ye ihtiyacımız var. STM32 ailesi, aşağıdaki IDE'leri ve araç zincirlerini destekleyen 32 bit Mikroişlemcilerden oluşur:
- ARM® için IAR Gömülü Workbench® (EWARM).
- MDK-ARM Keil
- TrueSTUDIO
- STM32 için Sistem Tezgahı
Burada öğreticilerimiz için TrueSTUDIO, kod yazmak, derlemek ve hata ayıklamak için kullanılacaktır çünkü herhangi bir lisans gerekmeden ticari projeler için bile indirmek ve kullanmak ücretsizdir. Daha sonra STM32CubeMX, programlamayı kolaylaştırmak için STM32 panoları için çevre birimi sürücüleri oluşturmak için kullanılacaktır. Programımızı (onaltılık dosya) geliştirme panomuza yüklemek için, insanlar normalde STM32 ST-LINK Utility aracını kullanır, ancak bunun yerine, bunu yapmak için TrueSTUDIO'nun kendisini kullanacağız. TrueSTUDIO, programcıların hex dosyasını doğrudan STM32 kartına yüklemelerine izin veren bir hata ayıklama moduna sahiptir. Hem TrueSTUIO hem de STM32CubeMX'i indirmek kolaydır, sadece aşağıdaki bağlantıyı takip edin, kaydolun ve kurulumu indirin. Ardından bunları Dizüstü Bilgisayarınıza kurun.
- STM32Cube MX'i indirin
- TrueSTUDIO'yu indirin
Devre Şeması ve Donanım kurulumu
Yazılım bölümüne ve kodlamaya geçmeden önce panomuzu bu proje için hazırlayalım. Bu makalenin önceki bölümlerinde bahsedildiği gibi, bir LED'i bir düğme kullanarak kontrol edeceğiz. Şimdi, yukarıda bağlantılı videoyu gördüyseniz, STM32 Geliştirme Kartınızın her iki tarafında ST Morpho pinleri adı verilen iki set konektör pini olduğunu bilmelisiniz. Aşağıdaki devre şemasında gösterildiği gibi bu pinlere bir buton ve bir LED bağladık.
Bu proje için devre bağlantıları kolaydır, GND'ye göre PORTA'nın PA5'ine bir LED ve PORTC'nin PC13'üne bir anahtar bağlamamız gerekir. Bağlantılar yapıldıktan sonra test kurulumum şöyle görünüyordu.
Alternatif olarak, kart üzerindeki dahili LED ve basma düğmesini de kullanabiliriz. Bu dahili LED'ler ve basma düğmesi de devre şemasında gösterildiği gibi aynı pime bağlanır. Harici bileşenleri yalnızca uygulama için ekledik. STM32 Geliştirme Kartının aşağıdaki pin diyagramı, her bir morfo pininin yerleşik olarak nereye bağlandığını bilmek için kullanışlı olacaktır.
STM32 Nucleo64 Geliştirme Kartları için STM32CubeMX'e başlarken
Adım 1: Kurulumdan sonra, STM32CubeMX'i başlatın, ardından STM32 kartını seçmek için erişim kartı seçiciyi seçin.
Adım 2: Şimdi NUCLEO-F030R8 gibi STM32 kart adınıza göre panoyu arayın ve resimde gösterilen tahtaya tıklayın. Farklı bir panonuz varsa, ilgili adını arayın. Yazılım, ST Microelectronics'in tüm STM32 geliştirme kartlarını destekleyecektir.
Adım 3: Şimdi tüm çevre birimlerini varsayılan modlarında başlatmak için aşağıdaki resimde gösterildiği gibi evet seçeneğine tıklayın. Projemiz gereği gerekli olanları daha sonra değiştirebiliriz.
'Evet'i tıkladıktan sonra, ekran aşağıdaki resme benzer ve yeşil renkli iğne varsayılan olarak başlatıldıklarını belirtir.
Adım 4: Artık kullanıcılar kategorilerden istenen ayarı seçebilir. Bu eğitimde, bir basma düğmesi kullanarak bir LED'i değiştireceğiz. Bu yüzden led pinini output ve switch pinini INPUT yapmamız gerekiyor.
Herhangi pimi seçebilir, ama ben seçiyorum PA5 onun durumunu ve değişen GPIO_Output aşağıdaki resimde gösterildiği gibi bir çıkış pimi olarak çalışması için.
Benzer şekilde, PC13'ü GPIO_Input olarak seçiyorum, böylece butonumun durumunu okuyabiliyorum.
Alternatif olarak, aşağıda gösterildiği gibi pin çıkışı ve yapılandırma sekmesinden de pinleri yapılandırabiliriz.
Adım 5: Bir sonraki adımda, kullanıcı harici ve dahili osilatöre göre mikrodenetleyici ve pinler için istenen frekansı ayarlayabilir. Varsayılan olarak, dahili bir 8 MHz kristal osilatör seçilir ve PLL kullanılarak bu 8, 48 MHz'e dönüştürülür. Varsayılan olarak anlamı STM32 kartı veya mikrodenetleyici ve Pinler 48MHz'de çalışacaktır.
Adım 6: Şimdi proje yöneticisine gidin ve projenize, proje konumunuza bir isim verin ve araç zinciri veya IDE'yi seçin. Burada TrueSTUDIO kullanıyoruz, bu yüzden aşağıda gösterilenin aynısını seçtim.
Adım 7: Şimdi aşağıdaki resimde bulunan kırmızı dairenin yanındaki Kod Oluştur işaretine tıklayın.
Adım 8: Şimdi verilen bir açılır pencere göreceksiniz ve ardından projeyi aç'a tıklayın. Ancak, bu adımdan önce TrueSTUDIO'yu kurduğunuzdan emin olun.
TrueSTUDIO kullanarak STM32 Nucleo64 Geliştirme Kartını Programlama
Artık TrueSTUDIO çalışma alanı konumunu sorarsa kodunuz veya projeniz otomatik olarak TrueSTUDIO'da açılacak ve ardından bir çalışma alanı konumu sunacak veya varsayılan konuma gidecek.
Kullanıcı aşağıda verilen ekranı görecek ve ardından kırmızı renkli köşe işaretine tıklaması gerekecektir.
Ve şimdi TreuSTUDIO IDE'mizde kodu görebiliriz. Sol tarafta 'src' klasörünün altında bizim için STM32Cube'den oluşturulmuş diğer program dosyalarını (.c uzantılı) görebiliriz. Sadece main.c dosyasını programlamamız gerekiyor. Main.c dosyasında bile, CubeMX tarafından bizim için önceden ayarlanmış birkaç şeyimiz olacak, sadece programımıza uyacak şekilde düzenlememiz gerekiyor. Main.c dosyasının içindeki kodun tamamı bu sayfanın alt kısmında verilmiştir.
STM32 Nucleo64 Programı, Düğmeyi Kullanarak LED'i Kontrol Etmek
Gerekli tüm sürücü ve kod STM32CubeMX tarafından oluşturulduğundan, yalnızca çıkış olarak bir LED pini ve Giriş olarak bir basma düğmesi yapılandırmamız gerekir. Düğmeyi kullanarak led'i kontrol etme programı main.c dosyasına yazılmalıdır. Programın tamamı bu sayfanın alt kısmında bulunabilir. Bunun açıklaması aşağıdaki gibidir
Sadece LED'i basmalı düğmeyi kullanarak değiştirmek için kod yazdık. Bunu başarmak için önce LED ve butonlar için pimler tanımlıyoruz. Burada PORTA'nın Pin 5 numarasında bir LED tanımladık.
#define LED_PORT GPIOA #define LED_PIN GPIO_PIN_5
Ve anahtarı PORTC'nin 13 Numaralı Pininde tanımlayın.
#define SW_PORT GPIOC #define SW_PIN GPIO_PIN_13
Daha sonra ana işlevde, kullanılan tüm çevre birimlerini başlattık.
/ * Yapılandırılmış tüm çevre birimlerini başlat * / MX_GPIO_Init (); MX_USART2_Init ();
Ve sonra if ifadesini kullanarak basma düğmesini okuyun ve düğme bulunursa (DÜŞÜK) düğmesine basın, ardından LED durumunu değiştirecektir.
(1) {/ * KULLANICI KODU SON WHILE * / If (! HAL_GPIO_ReadPin (SW_PORT, SW_PIN)) {HAL_GPIO_TogglePin (SW_PORT, LED_PIN); HAL_Gecikme (200); } / * KULLANICI KODU BEGIN 3 * /}
Burada HAL_GPIO_ReadPin (SW_PORT, SW_PIN) fonksiyonunun iki argümanı vardır, biri PORT ve diğeri anahtarın bağlı olduğu bir pindir ve bu pin STM32CubeMX'te çevre birimi yapılandırılırken INPUT olarak yapılandırılır.
TrueSTUDIO kullanarak STM32 Necleo64 Geliştirme Kartında Hata Ayıklama ve Kod Yükleme
Şimdi programlayıcı kablosunu kullanarak kartınızı bilgisayara bağlayın. Bir kez bağladığınızda, pano için gerekli sürücü otomatik olarak indirilmelidir, bunu cihaz yöneticisini kullanarak kontrol edebilirsiniz.
Ardından, programı derlemek ve hata ayıklama moduna girmek için aşağıdaki resimde kırmızı daire ile işaretlenmiş hata ayıklama simgesine basın.
Hata ayıklama modunda, kod otomatik olarak yüklenecektir. Şimdi kodu 'Devam Et' veya F8'e (aşağıdaki resimde kırmızı devrede işaretlenmiştir) basarak çalıştırmamız gerekiyor.
Artık düğmeye basarak LED'in kontrolünü test edebiliriz. Koda göre, düğmeye her bastığınızda LED durumunu değiştirmelidir. Tam çalışma, bu sayfanın alt kısmında bağlantısı verilen videoda da bulunabilir.
Test ettikten sonra, aşağıdaki resimde kırmızı daire ile işaretlenmiş olan sonlandırma simgesine basarak da programı sonlandırabiliriz.