Keil uVision kullanarak STM32F103C8 Programlama

ARM Cortex M mimarisini kullanan STM32 Mikrodenetleyiciler artık yaygınlaşıyor özelliği, maliyeti ve performansı nedeniyle birçok uygulamada kullanılıyor. Önceki derslerimizde Arduino IDE kullanarak STM32F103C8’i programladık. Arduino IDE ile programlama STM32 basittir, çünkü herhangi bir görevi yerine getirmek için çeşitli sensörler için birçok kütüphane mevcut olduğundan, sadece bu kütüphaneleri programa eklememiz yetiyordu. Bu kolay bir işlemdir ve ARM işlemcileri hakkında derinlemesine öğrenmenizi engelliyecektir. Şimdi, ARM programlama adı verilen bir sonraki programlama seviyesine geçiyoruz. Bununla sadece kod yapımızı geliştirmekle kalmaz, aynı zamanda gereksiz kütüphaneleri kullanmadan da hafıza alanını koruyabiliriz.

Bu yazımızda, STM32F103C8’i, Keil uVision & STM32CubeMX kullanarak basit bir led örneğini nasıl programlayacağımızı öğreneceğiz. Kodu STM32Cube MX kullanarak oluşturacağız ve daha sonra kodu Keil uVision kullanarak STM32F103C8’e düzenleyip yükleyeceğiz.

ST-LINK V2

ST-LINK / V2, STM8 ve STM32 mikrodenetleyici aileler için bir debugger ve programcıdır. Bu ST-LINK kullanarak STM32F103C8 ve diğer STM8 & STM32 mikrodenetleyicilere kod yükleyebiliriz. STM32 uygulamaları Atollic, IAR, Keil veya TASKING entegre geliştirme ortamları ile iletişim kurmak için USB arabirimini kullandıklarından, bu donanımı STM 8 ve STM32 mikro denetleyicileri programlamak için kullanabiliriz.

ST-LINK-V2-in-Circuit-Debugger-and-Programmer[1]

STM32CubeMX

STM32CubeMX aracı, STMicroelectronics STMCube’un bir parçasıdır. Bu yazılım aracı, kodlamayı ve zamanı azaltarak kolaylaştırır. STM32Cube, grafik sihirbazlarını kullanarak C başlatma kodunun oluşturulmasını sağlayan grafiksel bir yazılım yapılandırma aracı olan STM32CubeMX’i içerir. Bu kod, keil uVision, GCC, IAR gibi çeşitli geliştirme ortamlarında kullanılabilir. Bu aracı linkten indirebilirsiniz.

Devre Şeması ve Bağlantıları

Aşağıda, bir buton kullanılarak STM32 kartlı bir LED’in bağlanması için devre şeması verilmiştir.

Circuit-Diagram-for-Programming-STM32F103C8-using-Keil-uVision-and-STM32CubeMX[1]

Burada STM32 Blue Pill board, bilgisayarın USB portuna bağlı ST-LINK’den güç alır. Bu yüzden STM32’ye ayrı ayrı güç vermemize gerek yok. 

STM32F103C8

ST-Link V2

GND

GND

SWCLK

SWCLK

SWDIO

SWDIO

3V3

3.3V

 

Circuit-Hardware-for-Programming-STM32F103C8-using-Keil-uVision-and-STM32CubeMX[1]

Keil uVision ve ST-Link kullanarak STM32’ye bir program oluşturma ve yükleme

Adım 1:  Önce ST-LINK V2 için tüm aygıt sürücülerini, STM32Cube MX & Keil uVision yazılım araçlarını kurun ve STM32F103C8 için gerekli paketleri kurun.

Adım 2: İkinci adım >> STM32Cube MX çalıştırın

Adım 3: Sonra Yeni Projeye tıklayın

Open-STM32Cube-MX[1]

Adım 4: – STM32F103C8’yi seçin

Choose-STM32F103C8-for-Programming[1]

Adım 5: – Şimdi STM32F103C8’in pin-out çizimi belirir, burada pin konfigürasyonlarını ayarlayabiliriz. Projelerimize göre çevre birimlerimizdeki pimlerimizi de seçebiliriz.

STM32F103C8-Pinout[1]

Adım 6: – Ayrıca pimi doğrudan tıklatabilirsiniz ve bir liste belirir, şimdi gerekli pin konfigürasyonunu seçin.

Select-Pin-Configuration-for-STM32F103C8-in-STM32CubeMX[1]

Adım 7: – Projemiz için PA1’i GPIO GİRİŞİ olarak, PC13’ü SERİ olarak GPIO ÇIKIŞI ve SYS hata ayıklaması olarak seçtik, burada sadece ST-LINK SWCLK & SWDIO pinlerini bağlarız. Seçilen ve yapılandırılmış pimler YEŞİL renkte görünür. Aşağıdaki resimde görülebilir.

Selected-IO-Configuration-for-STM32F103C8-in-STM32CubeMX[1]

Adım 8: – Konfigürasyon sekmesi altında, seçtiğiniz pinler için GPIO pin konfigürasyonlarını ayarlamak için GPIO’yu seçin.

Select-the-Selected-Pins-in-Configuration-tab-of-STM32CubeMX[1]

Adım 9: – Bu pin yapılandırma kutusunda, kullanıcı etiketini kullandığımız pimler için, yani kullanıcı tanımlı pin isimleri için yapılandırabiliriz.

Configure-User-Label-in-STM32CubeMX[1]

Adım 10: – Bundan sonra Proje >> Kodu Oluştur’a tıklayın.

Generate-Code-for-Programming-STM32F103C8-using-STM32CubeMX[1]

Adım 11: – Şimdi proje ayarları iletişim kutusu belirir. Bu kutuda proje adınızı ve yerinizi seçin ve geliştirme ortamını seçin. Keil’i kullanıyoruz, bu yüzden IDE olarak MDK-ARMv5’i seçin.

Select-MDK-ARMv5-a-IDE-in-Keiluvision[1]

Adım 12: – Kod Oluşturucu sekmesi altında İleri’yi, yalnızca gerekli kitaplık dosyalarını kopyala’yı ve ardından Tamam’ı tıklatın.

Copy-necessary-Library-files-for-Programming-STM32F103C8[1]

Adım 13: – Şimdi kod oluşturma iletişim kutusu belirir. Keil uvsion’da oluşturulan kodu otomatik olarak açmak için Projeyi Aç’ı seçin.

Open-the-Generated-code-for-Programming-STM32F103C8_0[1]

Adım 14: – Şimdi Keil uVision aracı, STM32CubeMx’te oluşturduğumuz kod ile, seçilen proje için yapılandırılmış gerekli kütüphane ve kodlarla aynı proje adı ile açılır.

Generated-Code-in-Keiluvision-for-Programming-STM32F103C[1]

Adım 15: – Led yakma programımız için main.c dosyası açılır ve düzenlenir.

Edit-main-Code-for-Programming-STM32F103C8[1]

Adım 16: – Şimdi while (1) döngüsüne kodu ekleyin, kodu sürekli olarak çalıştırmak için o bölümün altını çizdiğim aşağıdaki resme bakın.

while (1)
{
  if(HAL_GPIO_ReadPin(BUTN_GPIO_Port,BUTN_Pin)==0) //=> DETECTS Button is Pressed
{          
    HAL_GPIO_WritePin(LEDOUT_GPIO_Port,LEDOUT_Pin,1); //To make output high when button pressesd
}

else
{
    HAL_GPIO_WritePin(LEDOUT_GPIO_Port,LEDOUT_Pin,0); //To make output Low when button de pressed
}
}

Edit-Code-for-GPIO-pin-of-STM32F103C8[1]

Adım 17: – Kodu düzenlemeyi bitirdikten sonra, hata ayıklama sekmesi altındaki ST-LINK Debugger’ı seçin.

Select-ST-Link-Debugger[1]

Ayrıca, Ayarlar düğmesini tıklayın ve ardından Flash İndirme sekmesinin altında Sıfırla ve Çalıştır onay kutusunu işaretleyin ve ‘ok’ seçeneğini tıklayın.

Set-up-for-Programming-STM32F103C8-using-KeiluVision[1]

Adım 18: – Şimdi tüm hedef dosyaları yeniden oluşturmak için Rebuild simgesine tıklayın.

Rebuild-all-target-files-for-Programming-STM32F103C8[1]

Adım 19: – Şimdi ST-LINK’ı devre bağlantılarını hazır olarak bilgisayara bağlayabilir ve Yükleme simgesine tıklayabilir veya STM32F103C8’i oluşturduğunuz ve düzenlediğiniz kodları yükleyebilirsiniz.

Flash-STM32F103C8[1]

Adım 20: – keil uVision penceresinin altındaki işlemleri görebilirsiniz.

Flashing-STM32F103C8-using-KeiluVision[1]

Testing-Keil-Programmed-STM32-Board[1]

 

 

Read More