Arduino IDE ile STM32 macerasına başlangıç.

Selam,

Yeni bir başlıkta daha birlikteyiz. İyi eğlenceler...

Bulaşıcı olan STM32 hastalığı bana da bulaştı. Tabii ben tembel biri olarak kolay yollar aradım. Arduino IDE bu konuda kolaylık sağladı. Melih Abi ‘nin hediye ettiği STM32F103C8T6 mcu barındıran modülü ile işe başladım. Öncelikli hedef üzerinde PC13 pinine bağlı bulunan kullanıcı ledini yakmak.

STM32 ROM üzerinde UART önyükleyici barındırıyormuş. Böylece özel donanımlara ihtiyaç duymadan sadece USB-TTL dönüştürücü yeterli olacaktır. Bağlantı seri port üzerinden yapılacak. USB-TTL dönüştürücü ile aşağıdaki bağlantıyı yaptım. Elimdeki dönüştürücü üzerinde 3.3V çıkış bulunmakta ben bu gerilimi kullanarak bağlantıyı sağladım. Haberleşme pinleri de yine şekildeki gibi yapıldı.

Fiziksel işlemlerden sonra IDE kısmını ayarlayalım. Başlangıç olarak; https://github.com/rogerclarkmelbourne/Arduino_STM32 linkinden sıkıştırılmış dosyayı indiriyoruz. Bu dosyayı Arduino IDE çalışma dizini altında “hardware” klasörü içine kopyalıyoruz. Sondaki “master” ekini silebiliriz. Oluşan yol: “~/Arduino/hardware/Arduino_STM32” olacaktır.

Gerekli olan başka bir işlem de Arduino IDE için ARM Cortex M3 eklentilerinin yüklenmesi. Bunun için; “Araçlar>Kart:xxx>Kart Yöneticisi” yolu ile kart eklentilerini yükleyecek bölümü açıyoruz. Arama yerine “SAM” yazarak filtre ediyoruz. “Arduino SAM Boards (32-bits ARM Cortex M3) by Arduinoeklentisini yüklüyoruz.

Artık kart seçebiliriz. “Araçlar>Kart>” menüsünden, Kart “Generic STM32F103C series”, Variant “STM32F103C8 (20k RAM 64k Flash)”, Upload method “Serial”, Port “/dev/ttyUSB0” veya benzeri bir şık seçerek işlemi tamamlıyoruz.

 

Aşağıdaki kodaları aynen kopyalıyoruz IDE içerisine.

//////////////////////////////////////////////////////////////////////////////////////////
#define kartLed PC13

//----------------------------------------------------------------------------------------
//
void setup(void)
{
     Serial.begin(9600);
     pinMode(kartLed, OUTPUT);
     Serial.println("Arduino IDE ile STM32 baslangici");
}

//----------------------------------------------------------------------------------------
//
void loop(void)
{
     digitalWrite(kartLed, HIGH);
     delay(1000);
     digitalWrite(kartLed, LOW);
     delay(1000);
     Serial.println("STM32F103 'den sevgiler...");
}
//----------------------------------------------------------------------------------------

Kart üzerinde iki tane “jumper” bulunmakta. BOOT0 ve BOOT1. BOOT0 jumperini “1” pozisyonuna takıyoruz. RESET butonuna basıp mcu yazılımı alabilmesi için bekletiyoruz. (BOOT0, pinlere yakın olan, RESET butonuna yakın olan ise BOOT1).

“Kontrol Et” veya “Ctrl+R” ile yazıklarımızın doğruluğunu kontrol ediyoruz.

“Çalışmanız programın 9436 bayt (14 %) saklama alanını kullandı. Maksimum 65536 bayt.
Global değişkenler dinamik bellekte 1984 bayt kullanır.”

mesajını aldıktan sonra “Yükle” veya “Ctrl+U” ile derlenmiş dosyayı karta yolluyoruz. Eğer işlemleri düzgün yaptıysak yükleme yapılır ve kullnıcı ledi yanıp sönmeye başlar. “Araçlar>Seri Port Ekranı” veya “Ctrl+Shift+M” ile kartın yolladığı veriyi görebiliriz.

 

Olayın daha en başındayım. İlgili mcu serisini tanımam gerekli. Bir miktar daha çabalayacağım. Melih Abi ’ye teşekkür ederim. Bu yazıyı aşağıdaki linkden yararlanarak hazırladım.

Herkese kolaylıklar...

 

http://www.wifi4things.com/stm32f103c8t6-blue-pill-board-with-arduino-ide-on-linux/