Keil-stm32f4 discovery kit bağlantı sorunu

Başlatan Gökhan BEKEN, 10 Ocak 2014, 18:01:10

Gökhan BEKEN

Ne güzel program atıyordum, denemeler yaparken şöyle hata vermeye başladı, eskiden çalışan örnek uygulamaları da yükleyemiyorum.



En son yüklediğim program:
#include "STM32F4xx.h"
 
void SystemInit()
{
                (*((int*)0xE000ED88))|=0x0F00000;  // Floating Point donanimini aktiflestir. !!! Basimizin derdi !!!
    
		RCC->AHB1ENR |= 0x00000009; //PortA ve PortD üzerindeki clock açilir.
	
               GPIOD->MODER = 0x55000000;         // GPIOD nin 15, 14, 13, 12 pinleri cikis tanimlandi (Ledler bu pinlerde)
               GPIOD->OSPEEDR= 0xFFFFFFFF;        // GPIOD nin tum cikislari en yuksek hizda kullanacagiz
		
		GPIOA->MODER = 0x00000000; 
}


void delay_ms(unsigned int sayac); //prototip tanimladim

int main()
{
	
	
  	        volatile int toggle=0;
		volatile int control=0;
 
		while(1)
		{
			if(GPIOA->IDR & 0x000000001)//butona basildi mi
			{
				control=1; //ilk basista ledler yanmaya baslayacak
				while(GPIOA->IDR & 0x00000001) continue; //butondan elimizi çekene kadar bekle
				toggle=~toggle;
			}
			if(control)
			{
				if (toggle)
					GPIOD->ODR= 0x00003000;// turuncu ve sari ledler yansin
				else
					GPIOD->ODR= 0x0000C000;// Mavi kirmizi ledler yansin
			}
		}

}

void delay_ms(unsigned int sayac)
{
		unsigned int i=0;
                while(sayac--){
			for(i=0;i<2500;i++);
		}
}
Özel mesaj okumuyorum, lütfen göndermeyin.

ercan_t

merhaba,

eğer kablolamada problem yoksa;

bu problemle bende karşılaşmıştım tek fark bende ncp lpc1768 du
seriporttan hex kodu atınca düzeldi bunu deneyebilirsin.


z

#2
GPIOA->MODER = 0x00000000; komutu ile Discovery'nin canına okumuşsun.

PA13,14 ve 15 pinleri JTAG/SWD için kullanılıyor. Bahse konu C satırı bu pinleri input moduna aldığı için çipin JTAG bağlantısını kopartıyor.

Sorunu nasıl çözeceksin?

Öncelikle o satırı kaldır. Program derleme menüsünde programı derle. Reset butonuna bas ve bu konumda debug tuşuna bas. Parmağını resetten çek.

Bir iki denemede yeni programı atabilmen lazım.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Gökhan BEKEN

Teşekkürler hocam,
Dediğiniz gibi bir kaç denemede çözüldü.
Reset butonuna basılı tutup, keil'daki yükleme butona basınca elimi çekince oldu.
GPIOA->MODER = 0x00000000;  kısmını normalde kullanmaya gerek kalmıyor direkt input oluyor diye öyle düşünmüştüm, demekki stm kütüphanesi sonradan değiştiriyor o kısmı.
GPIOA->MODER |= 0x00000000; şeklinde yapsam sorun olmazdı.

Özel mesaj okumuyorum, lütfen göndermeyin.

engineer42

aynı sorun benimde başımda.. resete basarak debug da yaptım ama hala aynı hataları veriyor. program z hocanın anlatımlarındaki led programı. ilk başta iyiydi ama daha sonra bu hatayı vermeye başladı. st-link utility de kartı görüyor ama keil hata veriyor.

muhittin_kaplan


engineer42

#6
@muhittin kaplan maalesef.. keili de çok iyi bilmediğim için sorunun neden kaynaklı olduğunu bilmiyorum. işin kötü tarafı keille çalışmak zorundayım. başka bi çözüm var mı bildiğiniz?


mesaj birleştirme:: 24 Ocak 2014, 23:04:52

sorunu çözdüm. galiba st-link programı açıkken keilden load yapamıyoruz karta. cahillik çok kötü birşey  :-[