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.
![Keil uVision kullanarak STM32F103C8 Programlama 1 ST-LINK-V2-in-Circuit-Debugger-and-Programmer[1]](https://kodmek.com/wp-content/uploads/2018/11/ST-LINK-V2-in-Circuit-Debugger-and-Programmer1.jpg)
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.
![Keil uVision kullanarak STM32F103C8 Programlama 2 Circuit-Diagram-for-Programming-STM32F103C8-using-Keil-uVision-and-STM32CubeMX[1]](https://kodmek.com/wp-content/uploads/2018/11/Circuit-Diagram-for-Programming-STM32F103C8-using-Keil-uVision-and-STM32CubeMX1-1024x401.png)
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 |
![Keil uVision kullanarak STM32F103C8 Programlama 3 Circuit-Hardware-for-Programming-STM32F103C8-using-Keil-uVision-and-STM32CubeMX[1]](https://kodmek.com/wp-content/uploads/2018/11/Circuit-Hardware-for-Programming-STM32F103C8-using-Keil-uVision-and-STM32CubeMX1.jpg)
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
![Keil uVision kullanarak STM32F103C8 Programlama 4 Open-STM32Cube-MX[1]](https://kodmek.com/wp-content/uploads/2018/11/Open20-STM32Cube-MX1.png)
Adım 4: – STM32F103C8’yi seçin
![Keil uVision kullanarak STM32F103C8 Programlama 5 Choose-STM32F103C8-for-Programming[1]](https://kodmek.com/wp-content/uploads/2018/11/Choose-STM32F103C8-for-Programming1.png)
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.
![Keil uVision kullanarak STM32F103C8 Programlama 6 STM32F103C8-Pinout[1]](https://kodmek.com/wp-content/uploads/2018/11/STM32F103C8-Pinout1.png)
Adım 6: – Ayrıca pimi doğrudan tıklatabilirsiniz ve bir liste belirir, şimdi gerekli pin konfigürasyonunu seçin.
![Keil uVision kullanarak STM32F103C8 Programlama 7 Select-Pin-Configuration-for-STM32F103C8-in-STM32CubeMX[1]](https://kodmek.com/wp-content/uploads/2018/11/Select-Pin-Configuration-for-STM32F103C8-in-STM32CubeMX1.png)
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.
![Keil uVision kullanarak STM32F103C8 Programlama 8 Selected-IO-Configuration-for-STM32F103C8-in-STM32CubeMX[1]](https://kodmek.com/wp-content/uploads/2018/11/Selected-IO-Configuration-for-STM32F103C8-in-STM32CubeMX1.png)
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.
![Keil uVision kullanarak STM32F103C8 Programlama 9 Select-the-Selected-Pins-in-Configuration-tab-of-STM32CubeMX[1]](https://kodmek.com/wp-content/uploads/2018/11/Select-the-Selected-Pins-in-Configuration-tab-of-STM32CubeMX1.png)
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.
![Keil uVision kullanarak STM32F103C8 Programlama 10 Configure-User-Label-in-STM32CubeMX[1]](https://kodmek.com/wp-content/uploads/2018/11/Configure-User-Label-in-STM32CubeMX1.png)
Adım 10: – Bundan sonra Proje >> Kodu Oluştur’a tıklayın.
![Keil uVision kullanarak STM32F103C8 Programlama 11 Generate-Code-for-Programming-STM32F103C8-using-STM32CubeMX[1]](https://kodmek.com/wp-content/uploads/2018/11/Generate-Code-for-Programming-STM32F103C8-using-STM32CubeMX1.png)
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.
![Keil uVision kullanarak STM32F103C8 Programlama 12 Select-MDK-ARMv5-a-IDE-in-Keiluvision[1]](https://kodmek.com/wp-content/uploads/2018/11/Select-MDK-ARMv5-a-20IDE-in-Keiluvision1.png)
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.
![Keil uVision kullanarak STM32F103C8 Programlama 13 Copy-necessary-Library-files-for-Programming-STM32F103C8[1]](https://kodmek.com/wp-content/uploads/2018/11/Copy-necessary-Library-files-for-Programming-STM32F103C81.png)
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.
![Keil uVision kullanarak STM32F103C8 Programlama 14 Open-the-Generated-code-for-Programming-STM32F103C8_0[1]](https://kodmek.com/wp-content/uploads/2018/11/Open-the-Generated-code-for-Programming-STM32F103C8_01.png)
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.
![Keil uVision kullanarak STM32F103C8 Programlama 15 Generated-Code-in-Keiluvision-for-Programming-STM32F103C[1]](https://kodmek.com/wp-content/uploads/2018/11/Generated-Code-in-Keiluvision-for-Programming-STM32F103C1.png)
Adım 15: – Led yakma programımız için main.c dosyası açılır ve düzenlenir.
![Keil uVision kullanarak STM32F103C8 Programlama 16 Edit-main-Code-for-Programming-STM32F103C8[1]](https://kodmek.com/wp-content/uploads/2018/11/Edit-main-Code-for-Programming-STM32F103C81.png)
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
}
}
![Keil uVision kullanarak STM32F103C8 Programlama 17 Edit-Code-for-GPIO-pin-of-STM32F103C8[1]](https://kodmek.com/wp-content/uploads/2018/11/Edit-Code-for-GPIO-pin-of-STM32F103C81.png)
Adım 17: – Kodu düzenlemeyi bitirdikten sonra, hata ayıklama sekmesi altındaki ST-LINK Debugger’ı seçin.
![Keil uVision kullanarak STM32F103C8 Programlama 18 Select-ST-Link-Debugger[1]](https://kodmek.com/wp-content/uploads/2018/11/Select-ST-Link-Debugger1.png)
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.
![Keil uVision kullanarak STM32F103C8 Programlama 19 Set-up-for-Programming-STM32F103C8-using-KeiluVision[1]](https://kodmek.com/wp-content/uploads/2018/11/Set-up-for-Programming-STM32F103C8-using-KeiluVision1.png)
Adım 18: – Şimdi tüm hedef dosyaları yeniden oluşturmak için Rebuild simgesine tıklayın.
![Keil uVision kullanarak STM32F103C8 Programlama 20 Rebuild-all-target-files-for-Programming-STM32F103C8[1]](https://kodmek.com/wp-content/uploads/2018/11/Rebuild-all-target-files-for-Programming-STM32F103C81.png)
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.
![Keil uVision kullanarak STM32F103C8 Programlama 21 Flash-STM32F103C8[1]](https://kodmek.com/wp-content/uploads/2018/11/Flash-STM32F103C81.png)
Adım 20: – keil uVision penceresinin altındaki işlemleri görebilirsiniz.
![Keil uVision kullanarak STM32F103C8 Programlama 22 Flashing-STM32F103C8-using-KeiluVision[1]](https://kodmek.com/wp-content/uploads/2018/11/Flashing-STM32F103C8-using-KeiluVision1.png)
![Keil uVision kullanarak STM32F103C8 Programlama 23 Testing-Keil-Programmed-STM32-Board[1]](https://kodmek.com/wp-content/uploads/2018/11/Testing-Keil-Programmed-STM32-Board1.jpg)
