STM32F4-DISCOVERY kod çalışmıyor

Başlatan MCansız, 22 Aralık 2012, 14:48:03

MCansız

arkadaşlar kartım yeni geldi usb ile çalıştırdığımda ve içinde yüklü olan led uygulaması çalıştı kartta problem yok

keil kullanarak z hocanın konusunu okudum

https://www.picproje.org/index.php/topic,39243.15.html linkteki hata ile karşılaştım ve araştırarak sorunu bir şekilde çözdüm artık hata almadan
program yükleyebiliyorum ilk program z hocanın verdiği Ledleri flash eden program yüklediğimde içindeki led uygulaması silindi  ve yükediğim uygulamalar çalışmıyor sitedeki birçok uygulamayı yükledim ama hiçbir tepki yok ayrıca videoyada çektim programlama ve keil kısmında hata yaptığımı zannetmiyorum

video:

Your movie title

ayrıca proram yüklemeyi hex elde ederek STM ST-LINK UTILITY programı ilede denedim işlemci hafızasının okuduğumda dolu gözüküyor yani yazılım yükleniyor ama işlemci yazılımı çalıştırmıyor


video

Your movie title


işlemci kod


serhat1990

Yüklediğin programlar SystemInit() fonksiyonu mevcutmu ? yüklediğin yazılımlar debug mod için olabilirmi .


MCansız

#include "STM32F4xx.h"

void SystemInit()
{
//  Yukarıdaki örnek programdaki kodların aynısı
}

void Delay()
{
unsigned int i;
 
     for(i=0;i<0x800000;i++); 
}

int main()
{
    while(1)
      {
         GPIOD->ODR= 0x0000F000;     // Ledler yansin
         Delay();
         GPIOD->ODR= 0x00000000;     // Ledler sonsun
         Delay();
      } 
}
// Programın sonu.


kullandığım main.c dosyası

SystemInit()

bu kısım boş durumda kalır ise sorun çıkartırmı bilmiyorum

serhat1990

#3
O fonksiyonu bunun ile değiştirirmisin . Sistem ayarları yükleniyor . Bunu yükle düzelecektir .

İyi çalışmalar .

void SystemInit()                
{
unsigned int i;                  

    for (i=0;i<0x00100000;i++);          // OSC oturtma ve kurtarma rutini
    RCC->CFGR |= 0x00009400;         // AHB ve APB hizlarini max degerlere set edelim
    RCC->CR |= 0x00010000;            // HSE Xtal osc calismaya baslasin        
    while (!(RCC->CR & 0x00020000));// Xtal osc stabil hale gelsin
    RCC->PLLCFGR = 0x07405408;      // PLL katsayilarini M=8, N=336, P=2 ve Q=7 yapalim
//  RCC->PLLCFGR = 0x07402A04;     // PLL katsayilarini M=4, N=168, P=2 ve Q=7 yapalim
    RCC->CR |= 0x01000000;            // PLL calismaya baslasin  (Rehber Sayfa 95)
    while(!(RCC->CR & 0x02000000)); // Pll hazir oluncaya kadar bekle
//  FLASH->ACR = 0x00000705;        // Flash ROM icin 5 Wait state secelim ve ART yi aktif edelim (Rehber Sayfa 55)
    FLASH->ACR = 0x00000605;        // Flash ROM icin 5 Wait state secelim ve ART yi aktif edelim (Rehber Sayfa 55)
    RCC->CFGR |= 0x00000002;        // Sistem Clk u PLL uzerinden besleyelim
    while ((RCC->CFGR & 0x0000000F) != 0x0000000A); // Besleninceye kadar bekle
  //------------------------------------------------------------------------------------------  
   RCC->AHB1ENR |= 0x0000000F;    // GPIO A,B,C,D clock'u aktif edelim 
    GPIOD->MODER = 0x55000000;     // GPIOD nin 15, 14, 13, 12 pinleri çıkış ledler bu pinlerde baglı
    GPIOD->OSPEEDR= 0xFFFFFFFF;   // GPIOD nin tum cikislari en yuksek hizda kullanacagiz 
}

MCansız

Alıntı yapılan: serhat1990 - 22 Aralık 2012, 15:02:50
O fonksiyonu bunun ile değiştirirmisin . Sistem ayarları yükleniyor . Bunu yükle düzelecektir .

İyi çalışmalar .

void SystemInit()                
{
unsigned int i;                  

    for (i=0;i<0x00100000;i++);          // OSC oturtma ve kurtarma rutini
    RCC->CFGR |= 0x00009400;         // AHB ve APB hizlarini max degerlere set edelim
    RCC->CR |= 0x00010000;            // HSE Xtal osc calismaya baslasin        
    while (!(RCC->CR & 0x00020000));// Xtal osc stabil hale gelsin
    RCC->PLLCFGR = 0x07405408;      // PLL katsayilarini M=8, N=336, P=2 ve Q=7 yapalim
//  RCC->PLLCFGR = 0x07402A04;     // PLL katsayilarini M=4, N=168, P=2 ve Q=7 yapalim
    RCC->CR |= 0x01000000;            // PLL calismaya baslasin  (Rehber Sayfa 95)
    while(!(RCC->CR & 0x02000000)); // Pll hazir oluncaya kadar bekle
//  FLASH->ACR = 0x00000705;        // Flash ROM icin 5 Wait state secelim ve ART yi aktif edelim (Rehber Sayfa 55)
    FLASH->ACR = 0x00000605;        // Flash ROM icin 5 Wait state secelim ve ART yi aktif edelim (Rehber Sayfa 55)
    RCC->CFGR |= 0x00000002;        // Sistem Clk u PLL uzerinden besleyelim
    while ((RCC->CFGR & 0x0000000F) != 0x0000000A); // Besleninceye kadar bekle
  //------------------------------------------------------------------------------------------  
   RCC->AHB1ENR |= 0x0000000F;    // GPIO A,B,C,D clock'u aktif edelim 
    GPIOD->MODER = 0x55000000;     // GPIOD nin 15, 14, 13, 12 pinleri çıkış ledler bu pinlerde baglı
    GPIOD->OSPEEDR= 0xFFFFFFFF;   // GPIOD nin tum cikislari en yuksek hizda kullanacagiz 
}


bunu denedim olmadı tepki yok

sonunda keilin kendi örnek kodlarını yükleyerek çalıştırmayı başardım ledler yanıp sönüyor  ;D


ama z hocanın verdiği projeleri çalıştıramıyorum daha doğrusu kendim proje oluşturduğum zaman nerede hata yapıyorum bilmiyorum ama çalışmıyor

serhat1990

Benim kodlarda gördüğüm SystemInit() fonksiyonu yoktu . Osilatör vs ayarları gözükmüyordu . Bülent Hocanın örnekleri çalışıyor . Proje oluşturmada sıkıntın olabilir ...

z

Çok uzun zamandır STM32F4 le ilgilenmiyorum. Forumda örnekleri çalıştıramıyorum şeklinde benzer sorular oluyor.
Örneklerde açıklamayı unuttuğum bir yer varsa ders bölümüne bunu ekleyelim.

Neden örnekleri çalıştıramayan arkadaşlar oluyor? Nerede sorun var?
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

MCansız

hocam led buton ve Kartın eğimiyle orantılı olarak ledleri yakmak projelerini kartta çalıştırmayı başardım sıkıntı options bölümünde ayarların yanlış olduğundanmış bende keilin kendi örneklerindeki ayarlar ile kendi örneğimin ayarlarını karşılaştırdım (karta yükleme işlemide bu şekilde düzeldi)

son olarak ses sentez örneğinizi derlerken

Build target 'Target 1'
linking...
Deneme.axf: error: L6047U: The size of this image (85068 bytes) exceeds the maximum allowed for this version of the linker
Target not created


bu hatayı alıyorum

z

Bir zamanlar Kırık Keil kullanıyordum. Kırık olanında çipe yüklenecek programda sınır olmadığından sorun olmamıştır.

Siz deneme versiyonunu kullanıyorsanız 32K limitiniz olacaktır. ,

Gerçi 32K nın içinde kalacak örnekler yapmaya çalışıyordum bu örnekte buna dikkat etmemiş olabilirim.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

serhat1990

Bülent Hocam , bende 32K limitli versiyonu kullanıyorum . Örneklerde denemelerde bir sıkıntı yaşamadım hiç . Option target bölümündeki hatalardan kaynaklı olabilir bazı arkadaşlarda sorun .

MCansız

sorunu keili crack yaparak çözdüm

şimdi hata vermeden derleniyor  ;D

z hocam programı karta yükledim 4 adet led sürekli yanıyor ama kulaklıktan ses çıkışı yok

z

Neden bahsettiğini anlamadım. Kulaklık çıkışını kullanan herhangi bir örnek yapmadık hiç. DAC örneğinden bahsediyorsan DAC pininden bir amplifikatöre bağlantı yapman gerekir. (Araya 100nF kuplaj kapasitörü eklemeyi ihmal etme)

Kulaklık önünde duran çipi kullanmak için ya hazır kütüphane kullanacaksın ya da dokumanıyla hoş saatler geçireceksin.
Basit bir çip olmadığından bu çiple çalışmaya niyetlenmedim.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

MCansız

anlaşıldı hocam olayın şimdi farkına vardım hakkaten baya karışıkmış

Deli_Nedym

İşlemcinin kendi kulaklık çıkışından ses almam gerekiyor bir sürü araştırmaya da girdim ama bi şey elde edemedim neler yapmam gerek proje gereği muhakkak sesi ordan almam lazım amplifikatörle yaptım ama ses seviyesi oldukça düşük çift hoparlörle zor duyuluyor kendi ses çıkış jakından alabilsem sesi daha farklı olur sanırım  ???

pisayisi

Ses çıkışını doğrudan kullanarak yapılan örnekler st kütüphanesinde mevcut aşağıdaki linkteki uygulamaya bakabilirsin. Bu arada ses kuvveti ne kadar düşük olursa olsun öyle bir anfi tasarlanabilir ki, karıncanın nefesi ile dünyayı bile sallayabilirsin ;D

https://www.picproje.org/index.php/topic,44287.msg324960.html#msg324960
Murat